Commit Graph

71 Commits

Author SHA1 Message Date
Kyle Huey
2dbf288158 Bug 1269056: Part 3 - Consolidate XPCOM and chromium event queues for the main thread. r=froydnj 2016-05-12 15:15:43 -07:00
Kyle Huey
856038c513 Bug 1269056: Part 2 - Consolidate XPCOM and chromium event queues for non-main nsThreads. r=froydnj 2016-05-12 15:15:43 -07:00
Kyle Huey
2ea141d742 Bug 1268160: Assert that PostIdleTask is only used on the main thread. r=jld 2016-05-12 15:15:43 -07:00
Kyle Huey
1f6993705a Bug 1263311: Part 3 - s/nsCancelableRunnable/CancelableRunnable/g. r=froydnj 2016-04-11 11:40:06 -07:00
Kyle Huey
a256ae1a91 Bug 1263311: Part 1 - Change the nsICancelableRunnable interface. r=froydnj 2016-04-11 11:40:06 -07:00
Wes Kocher
dd9b334d33 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
7a575c886c Bug 1263311: Part 3 - s/nsCancelableRunnable/CancelableRunnable/g. r=froydnj 2016-04-11 11:40:06 -07:00
Kyle Huey
41c353f8e9 Bug 1263311: Part 1 - Change the nsICancelableRunnable interface. r=froydnj 2016-04-11 11:40:06 -07:00
Kartikaya Gupta
e8f7f2642f 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
d206969ad9 Bug 1222101 - Reorder some thread code (r=jld) a=kwierso
MozReview-Commit-ID: Alg40mu9aU3
2016-03-30 12:20:20 -07:00
Kyle Huey
20d0dc7286 Bug 1259294: Part 2 - Use MOZ_ALWAYS_SUCCEEDS. r=froydnj 2016-03-28 10:28:15 -07:00
Jonathan Watt
70d50b8222 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
28c89c7b6f 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
862b128345 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
3a3f2d881d Bug 1157908 - Give Gecko thread Looper low priority; r=snorp 2015-04-27 20:52:52 -04:00
Ryan VanderMeulen
177d63cb25 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
f9b6a21453 Bug 1157908 - Give Gecko thread Looper low priority; r=snorp 2015-04-24 14:40:55 -04:00
Andrea Marchesini
ad97ae68b8 Bug 1148527 - Indentation fix after bug 1145631, r=ehsan 2015-03-27 18:52:19 +00:00
Ehsan Akhgari
ea41d8de48 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
60b2a7d4b1 Bug 1116589 - Use templated JNI classes in generated bindings; r=snorp 2015-01-09 19:33:57 -05:00
Jim Mathies
52b1b1d1d8 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
16c19a6627 Bug 1060997 - Fix more bad implicit constructors in IPC; r=smaug 2014-08-31 21:12:55 -04:00
Ben Kelly
154d3da275 Bug 1013571 Reland support for PBackground on workers. r=bent 2014-07-09 17:39:18 -04:00
Wes Kocher
bb5d63c1f6 Backed out changeset 725b7db309c3 (bug 1013571) for causing the failures in 1032783 2014-07-08 14:43:46 -07:00
Ben Kelly
f99120cd1b Bug 1013571 Reland support for PBackground on workers. r=bent 2014-07-08 14:57:16 -04:00
Ben Kelly
96334e50af Backout 303027a0da95 (bug 1013571) due to persistent oranges (bug 1032011, bug 1032605, bug 1032783) 2014-07-04 00:31:59 -04:00
Ben Kelly
0f50e43a27 Bug 1013571 Support PBackground on workers. r=bent 2014-06-27 13:36:25 -07:00
Kyle Huey
643d853aa4 Bug 996133: Remove unnecessary NS_DISPATCH_NORMAL arguments to NS_DispatchToMainThread. r=ehsan 2014-05-23 12:53:17 -07:00
Birunthan Mohanathas
eeb9aaaa94 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
724d084f99 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
fcb11cd82c 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
86af8bac61 Backed out changeset 6f05267b4afc (bug 798033) for Android bustage. 2014-03-05 09:55:52 -05:00
snigdha
238d3a6bf5 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
c41d2e45c6 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
45ff3ac5ef Bug 939182 - Prevent mock timers from interfering with the message pump machinery, r=bsmedberg. 2013-12-09 11:57:29 -08:00
Ben Turner
497e7d1d71 Bug 939182 - Integrate the chromium MessageLoop into nsThread, r=bsmedberg. 2013-10-23 05:01:24 -07:00
Ben Turner
32d7cebe21 Bug 939182 - Clean up message loop code, r=bsmedberg. 2013-10-23 01:28:24 -07:00
Chris Kitching
69fdb42135 Bug 913985: Part 5 - Refactor the Bridge to use the generated code. r=kats 2013-11-12 10:41:01 -08:00
Ryan VanderMeulen
4501219603 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)
2013-11-19 10:56:09 -05:00
Chris Kitching
e115439e46 Bug 913985 - Part 5: refactor the Bridge to use the generated code. r=kats 2013-11-12 10:41:01 -08:00
Thinker Lee
e20ee38569 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
65092b3af5 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)
2013-09-27 17:02:09 -04:00
Chris Kitching
7f31c5a3c8 Bug 913985: Part 5 - Refactor the Bridge to use the generated code. r=kats 2013-09-27 10:10:37 -04:00
Kartikaya Gupta
83239003af Back out d9bdfdfda06e to dd17e0758a00 (bug 913985) due to incorrect author on some of the patches. r=backout 2013-09-27 10:25:23 -04:00
Chris Kitching
96965f19d5 Bug 913985: Part 5 - Refactor the Bridge to use the generated code. r=kats 2013-09-27 10:10:37 -04:00
Ehsan Akhgari
c110a2c9ac 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
7c918cdd89 Bug 884061 - Part 3m: Use NS_DECL_THREADSAFE_ISUPPORTS in ipc/, r=bent 2013-07-18 21:23:32 -05:00
Brian R. Bondy
90b13c1d03 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
98ef2b6ef8 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
f5ccb95563 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