Граф коммитов

69 Коммитов

Автор SHA1 Сообщение Дата
Kyle Huey d3cc4b02b6 Bug 1268160: Assert that PostIdleTask is only used on the main thread. r=jld 2016-05-12 15:15:43 -07:00
Kyle Huey 2709afd167 Bug 1263311: Part 3 - s/nsCancelableRunnable/CancelableRunnable/g. r=froydnj 2016-04-11 11:40:06 -07:00
Kyle Huey 1cc02aa8c6 Bug 1263311: Part 1 - Change the nsICancelableRunnable interface. r=froydnj 2016-04-11 11:40:06 -07:00
Wes Kocher 7d2cebe912 Backed out 3 changesets (bug 1263311) for Windows build failures in ServiceWorkerPrivate.cpp CLOSED TREE
Backed out changeset 0434a548e1fe (bug 1263311)
Backed out changeset 60b1be29446c (bug 1263311)
Backed out changeset 18132498bc40 (bug 1263311)

MozReview-Commit-ID: LPEa05QobdQ
2016-04-11 12:50:56 -07:00
Kyle Huey d200ed89d0 Bug 1263311: Part 3 - s/nsCancelableRunnable/CancelableRunnable/g. r=froydnj 2016-04-11 11:40:06 -07:00
Kyle Huey f13a6fc866 Bug 1263311: Part 1 - Change the nsICancelableRunnable interface. r=froydnj 2016-04-11 11:40:06 -07:00
Kartikaya Gupta f6b5ae39ac Bug 1257862 - Allow running things from the delayed work queue during a nested event loop. r=khuey,dvander
MozReview-Commit-ID: BmLM6j9yFEK
2016-04-01 08:25:40 -04:00
Bill McCloskey f29390f263 Bug 1222101 - Reorder some thread code (r=jld) a=kwierso
MozReview-Commit-ID: Alg40mu9aU3
2016-03-30 12:20:20 -07:00
Kyle Huey d9265a3eaf Bug 1259294: Part 2 - Use MOZ_ALWAYS_SUCCEEDS. r=froydnj 2016-03-28 10:28:15 -07:00
Jonathan Watt 3d09b32ad7 Bug 1253094, part 3 - Stop using DebugOnly for class/struct members in ipc/. r=billm
MozReview-Commit-ID: L16CD7xtn3V
2016-02-26 15:52:07 +00:00
Nathan Froyd 90918b40e9 Bug 1243430 - remove stray carriage returns from MessagePump.cpp; r=me
DONTBUILD because whitespace-only changes are trivial.
2016-01-26 11:30:03 -05:00
Kyle Huey 76e3009ab8 Bug 1179909: Refactor stable state handling. r=smaug
This is motivated by three separate but related problems:

1. Our concept of recursion depth is broken for things that run from AfterProcessNextEvent observers (e.g. Promises). We decrement the recursionDepth counter before firing observers, so a Promise callback running at the lowest event loop depth has a recursion depth of 0 (whereas a regular nsIRunnable would be 1). This is a problem because it's impossible to distinguish a Promise running after a sync XHR's onreadystatechange handler from a top-level event (since the former runs with depth 2 - 1 = 1, and the latter runs with just 1).

2. The nsIThreadObserver mechanism that is used by a lot of code to run "after" the current event is a poor fit for anything that runs script. First, the order the observers fire in is the order they were added, not anything fixed by spec. Additionally, running script can cause the event loop to spin, which is a big source of pain here (bholley has some nasty bug caused by this).

3. We run Promises from different points in the code for workers and main thread. The latter runs from XPConnect's nsIThreadObserver callbacks, while the former runs from a hardcoded call to run Promises in the worker event loop. What workers do is particularly problematic because it means we can't get the right recursion depth no matter what we do to nsThread.

The solve this, this patch does the following:

1. Consolidate some handling of microtasks and all handling of stable state from appshell and WorkerPrivate into CycleCollectedJSRuntime.
2. Make the recursionDepth counter only available to CycleCollectedJSRuntime (and its consumers) and remove it from the nsIThreadInternal and nsIThreadObserver APIs.
3. Adjust the recursionDepth counter so that microtasks run with the recursionDepth of the task they are associated with.
4. Introduce the concept of metastable state to replace appshell's RunBeforeNextEvent. Metastable state is reached after every microtask or task is completed. This provides the semantics that bent and I want for IndexedDB, where transactions autocommit at the end of a microtask and do not "spill" from one microtask into a subsequent microtask. This differs from appshell's RunBeforeNextEvent in two ways:
a) It fires between microtasks, which was the motivation for starting this.
b) It no longer ensures that we're at the same event loop depth in the native event queue. bent decided we don't care about this.
5. Reorder stable state to happen after microtasks such as Promises, per HTML. Right now we call the regular thread observers, including appshell, before the main thread observer (XPConnect), so stable state tasks happen before microtasks.
2015-08-11 06:10:46 -07:00
Jim Chen 23ba47d9f1 Bug 1157908 - Give Gecko thread Looper low priority; r=snorp 2015-04-27 20:52:52 -04:00
Ryan VanderMeulen b350674885 Backed out changesets a486dcc9c233 and 7164a2488b28 (bug 1157908) for various Android test failures.
CLOSED TREE
2015-04-24 16:01:17 -04:00
Jim Chen 5864b21201 Bug 1157908 - Give Gecko thread Looper low priority; r=snorp 2015-04-24 14:40:55 -04:00
Andrea Marchesini e6f385fb3d Bug 1148527 - Indentation fix after bug 1145631, r=ehsan 2015-03-27 18:52:19 +00:00
Ehsan Akhgari 883849ee32 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Jim Chen db34c64f29 Bug 1116589 - Use templated JNI classes in generated bindings; r=snorp 2015-01-09 19:33:57 -05:00
Jim Mathies 9d266c73b6 Bug 1060738 - Implement MessagePumpForNonMainUIThreads for Windows, a xpcom compatible subclass of chromium's MessagePumpForUI. r=tabraldes 2014-09-12 09:49:38 -05:00
Ehsan Akhgari 8e138d4419 Bug 1060997 - Fix more bad implicit constructors in IPC; r=smaug 2014-08-31 21:12:55 -04:00
Ben Kelly 9538652bf1 Bug 1013571 Reland support for PBackground on workers. r=bent 2014-07-09 17:39:18 -04:00
Wes Kocher 25c80c8653 Backed out changeset 725b7db309c3 (bug 1013571) for causing the failures in 1032783 2014-07-08 14:43:46 -07:00
Ben Kelly 273b405632 Bug 1013571 Reland support for PBackground on workers. r=bent 2014-07-08 14:57:16 -04:00
Ben Kelly 442902ef98 Backout 303027a0da95 (bug 1013571) due to persistent oranges (bug 1032011, bug 1032605, bug 1032783) 2014-07-04 00:31:59 -04:00
Ben Kelly af266f98f6 Bug 1013571 Support PBackground on workers. r=bent 2014-06-27 13:36:25 -07:00
Kyle Huey 8c5cca136c Bug 996133: Remove unnecessary NS_DISPATCH_NORMAL arguments to NS_DispatchToMainThread. r=ehsan 2014-05-23 12:53:17 -07:00
Birunthan Mohanathas 5f1fde8824 Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
snigdha 9cc482da68 Bug 798033 - Headers should generally not do "using namespace" at file scope. r=jib, r=jmathies, r=rjesup, r=ekr, r=ncameron, r=blassey 2014-04-01 08:29:25 -04:00
Josh Aas 5e8b893a0b Bug 987923: Add autorelease pool locally in GetTempDir on OS X, and also to non-main-thread event loop. r=smichaud,bent 2014-03-25 15:27:12 -05:00
Ryan VanderMeulen 0d7b59001e Backed out changeset 6f05267b4afc (bug 798033) for Android bustage. 2014-03-05 09:55:52 -05:00
snigdha a441998156 Bug 798033 - Headers should generally not do "using namespace" at file scope. r=jib, r=jmathies, r=rjesup, r=ekr, r=ncameron, r=blassey 2014-03-05 08:47:45 -05:00
Jim Chen 9a3802b401 Bug 959237 - Add AndroidBridge::HasEnv checks; r=blassey
For certain tests, the AndroidBridge is not initialized, but some GeckoAppShell functions are still called indirectly. For now, this patch adds checks to skip these calls if there's no AndroidBridge. However, in the future, most of the affected code should be refactored to not require these checks.
2014-01-17 23:32:24 -06:00
Ben Turner ae412f7c08 Bug 939182 - Prevent mock timers from interfering with the message pump machinery, r=bsmedberg.
--HG--
extra : transplant_source : %2AEm%1D%2C%0Abd%83%B6%BEO%96%D4%BB%13%29%82%9D4
2013-12-09 11:57:29 -08:00
Ben Turner 057f369312 Bug 939182 - Integrate the chromium MessageLoop into nsThread, r=bsmedberg.
--HG--
extra : transplant_source : %82%D3%C5%E1%A4%E5%00%1C%C3%82%97v%7F%BA%20Ja%AA%C7%E5
2013-10-23 05:01:24 -07:00
Ben Turner 436bc9d8e6 Bug 939182 - Clean up message loop code, r=bsmedberg.
--HG--
extra : transplant_source : -v1T%0A%B7%FC%B3q%CE//%D7%EB%3C%2C1%B4%F8%F1
2013-10-23 01:28:24 -07:00
Chris Kitching 36c7d139c0 Bug 913985: Part 5 - Refactor the Bridge to use the generated code. r=kats 2013-11-12 10:41:01 -08:00
Ryan VanderMeulen 2c440594a5 Backed out 7 changesets (bug 913985) for intermittent Android crashes.
Backed out changeset 53513a959cf0 (bug 913985)
Backed out changeset d23d1e678417 (bug 913985)
Backed out changeset a9c9187b4f4a (bug 913985)
Backed out changeset c6b02e4a3e35 (bug 913985)
Backed out changeset 895dae322e3c (bug 913985)
Backed out changeset 3d97e6a53313 (bug 913985)
Backed out changeset 892bb017f8ba (bug 913985)

--HG--
rename : build/annotationProcessors/AnnotationInfo.java => build/annotationProcessors/MethodWithAnnotationInfo.java
rename : build/annotationProcessors/utils/AlphabeticAnnotatableEntityComparator.java => build/annotationProcessors/utils/AlphabeticMethodComparator.java
rename : build/annotationProcessors/utils/GeneratableElementIterator.java => build/annotationProcessors/utils/GeneratableEntryPointIterator.java
rename : mobile/android/base/mozglue/generatorannotations/WrapElementForJNI.java => mobile/android/base/mozglue/GeneratableAndroidBridgeTarget.java
rename : mobile/android/base/mozglue/generatorannotations/OptionalGeneratedParameter.java => mobile/android/base/mozglue/OptionalGeneratedParameter.java
2013-11-19 10:56:09 -05:00
Chris Kitching c4e86cb63e Bug 913985 - Part 5: refactor the Bridge to use the generated code. r=kats 2013-11-12 10:41:01 -08:00
Thinker Lee ext:(%2C%20Cervantes%20Yu%20%3Ccyu%40mozilla.com%3E) ba5a1bd24c Bug 771765 - Support template content process, part 7: Don't schedule timer in the message pump if template process is ready. r=khuey 2013-06-03 18:14:44 +08:00
Ryan VanderMeulen 4875847fa7 Backed out 6 changesets (bug 913985) for suspicion of causing intermittent Android crashes on a CLOSED TREE.
Backed out changeset de21920d2b8e (bug 913985)
Backed out changeset f0f5497d65bb (bug 913985)
Backed out changeset 1e16ca4ad801 (bug 913985)
Backed out changeset 9c069a0820ea (bug 913985)
Backed out changeset 274df3abc991 (bug 913985)
Backed out changeset 05fe8b17516a (bug 913985)

--HG--
rename : build/annotationProcessors/AnnotationInfo.java => build/annotationProcessors/MethodWithAnnotationInfo.java
rename : build/annotationProcessors/utils/AlphabeticAnnotatableEntityComparator.java => build/annotationProcessors/utils/AlphabeticMethodComparator.java
rename : build/annotationProcessors/utils/GeneratableElementIterator.java => build/annotationProcessors/utils/GeneratableEntryPointIterator.java
rename : mobile/android/base/mozglue/generatorannotations/WrapElementForJNI.java => mobile/android/base/mozglue/GeneratableAndroidBridgeTarget.java
rename : mobile/android/base/mozglue/generatorannotations/OptionalGeneratedParameter.java => mobile/android/base/mozglue/OptionalGeneratedParameter.java
2013-09-27 17:02:09 -04:00
Chris Kitching 939077cb0b Bug 913985: Part 5 - Refactor the Bridge to use the generated code. r=kats 2013-09-27 10:10:37 -04:00
Kartikaya Gupta 6b7e07f87d Back out d9bdfdfda06e to dd17e0758a00 (bug 913985) due to incorrect author on some of the patches. r=backout
--HG--
rename : build/annotationProcessors/AnnotationInfo.java => build/annotationProcessors/MethodWithAnnotationInfo.java
rename : build/annotationProcessors/utils/AlphabeticAnnotatableEntityComparator.java => build/annotationProcessors/utils/AlphabeticMethodComparator.java
rename : build/annotationProcessors/utils/GeneratableElementIterator.java => build/annotationProcessors/utils/GeneratableEntryPointIterator.java
rename : mobile/android/base/mozglue/generatorannotations/WrapElementForJNI.java => mobile/android/base/mozglue/GeneratableAndroidBridgeTarget.java
rename : mobile/android/base/mozglue/generatorannotations/OptionalGeneratedParameter.java => mobile/android/base/mozglue/OptionalGeneratedParameter.java
2013-09-27 10:25:23 -04:00
Chris Kitching 602a2edbcb Bug 913985: Part 5 - Refactor the Bridge to use the generated code. r=kats 2013-09-27 10:10:37 -04:00
Ehsan Akhgari 7233ba7103 Bug 918923 - Part 2: Switch to #including nsString.h in code using the internal strings API; r=bsmedberg 2013-09-23 13:25:00 -04:00
Joshua Cranmer fd7dc9022e Bug 884061 - Part 3m: Use NS_DECL_THREADSAFE_ISUPPORTS in ipc/, r=bent
--HG--
extra : rebase_source : 77f707d086624cc908a4e39935aa2a03f16543fb
2013-07-18 21:23:32 -05:00
Brian R. Bondy 4122c73005 Bug 890362 - Delayed tasks posted to the mozilla UI message loop stop working after sleep/wake. r=bsmedberg 2013-07-10 12:39:09 -04:00
Trevor Saunders 2af42ae713 bug 887854 - remove most useage of pratom.h r=mounir, mcmanus, jrmuizel 2013-06-16 03:09:07 -04:00
jar@chromium.org, L. David Baron 8876f7e142 Bug 842550: Switch to using TimeTicks rather than Time in message loops. rs=cjones
The ipc/chromium/src/base/ changes here (except those mentioned below)
are the majority of the base/ changes (excluding those that patch code
that does not exist yet in our copy) in:
> From: jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
> Date: Sat, 6 Nov 2010 22:23:29 +0000 (+0000)
> Subject: Switch to using TimeTicks rather than Time in message loops
> X-Git-Url: http://git.chromium.org/gitweb/?p=chromium.git;a=commitdiff_plain;h=f592c218c18bd1f8308489aaef2e329244ced330
>
> Switch to using TimeTicks rather than Time in message loops
>
> Switch to using TimeTicks rather than Time so that we
> are not dependent on changes in the system clock.
>
> r=mbelshe,darin
> Review URL: http://codereview.chromium.org/3884001
>
> git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65322 0039d316-1c4b-4281-b951-d872f2087c98

The ipc/glue changes, and the message_pump_android.* and
message_pump_qt.* changes in ipc/chromium/src/base/, change signatures
to match.
2013-02-21 18:10:59 -08:00
Brad Lassey 846c9ef9ee bug 761503 - return a bool from PumpMessageLoop to indicate if work was performed r=snorp 2012-06-05 01:14:12 -04:00
Chris Jones 2de67e31af Bug 784647: Ensure that Tasks and XPCOM events are dispatched with the same priority. r=bent 2012-08-25 01:25:08 -07:00