Commit Graph

637 Commits

Author SHA1 Message Date
Boris Zbarsky
d3d83e1bef Bug 1250963 part 1. Change NotifyRunnable::Dispatch to not require a JSContext. r=khuey
The only reason NotifyRunnable::Dispatch needs a JSContext is so that it can call
ModifyBusyCount in Pre/PostDispatch.  The only reason that needs a JSContext is
to call Cancel(), which only needs it to call Notify(), which only needs it to
call NotifyPrivate, which only needs it to dispatch a NotifyRunnable.
2016-02-25 16:05:39 -05:00
Wes Kocher
5381e51b24 Backed out 2 changesets (bug 1250963) for build bustage CLOSED TREE
Backed out changeset 257324c2ae17 (bug 1250963)
Backed out changeset 0e868ee89abc (bug 1250963)
2016-02-25 13:41:42 -08:00
Wes Kocher
0a08f00f7c Backed out changeset bb404647f14c (bug 1250975) for build bustage CLOSED TREE 2016-02-25 13:41:09 -08:00
Boris Zbarsky
c9a6e0f1c3 Bug 1250975. Stop passing a JSContext argument to WorkerRunnable::PreDispatch and its overrides. r=khuey 2016-02-25 16:05:39 -05:00
Boris Zbarsky
1112844e6f Bug 1250963 part 1. Change NotifyRunnable::Dispatch to not require a JSContext. r=khuey
The only reason NotifyRunnable::Dispatch needs a JSContext is so that it can call
ModifyBusyCount in Pre/PostDispatch.  The only reason that needs a JSContext is
to call Cancel(), which only needs it to call Notify(), which only needs it to
call NotifyPrivate, which only needs it to dispatch a NotifyRunnable.
2016-02-25 16:05:39 -05:00
Joel Maher
d9052d1ab5 Bug 1250630 - remove PBackgroundTest and ifdef ENABLE_TEST blocks. r=khuey
MozReview-Commit-ID: 8LKHyjKWrkd
2016-02-23 11:55:50 -08:00
Daniel Holbert
d92966c73f backout c42ff6847631 (bug 1250572) for causing aborts during startup 2016-02-24 11:54:35 -08:00
Andrea Marchesini
568175f002 Bug 1250572 - Force a parent object in MessagePort/Channel and in StructuredCloneHolder, r=smaug 2016-02-24 20:04:37 +01:00
Boris Zbarsky
9860ecf4b9 Bug 1248719. Fix things so that taking ownership of error reporting on an AutoJSAPI on a worker is OK even if that AutoJSAPI was initialized without an explicit global. r=bholley 2016-02-17 22:56:36 -05:00
Kyle Huey
f14b772a73 Bug 1247117: De-namespace much of IndexedDB. r=baku 2016-02-16 13:46:08 -08:00
Andrea Marchesini
649eecd0f2 Bug 1247122 - Propagate the NS_ERROR_OUT_OF_MEMORY from CycleCollectedJSRuntime CTOR, r=khuey 2016-02-14 13:30:25 +00:00
Eddy Bruel
e5037c8d2a Bug 1212333 - WorkerDebuggerManager should live on the main thread;r=khuey 2016-02-10 10:45:02 +01:00
Carsten "Tomcat" Book
06ed5a0e73 Backed out changeset a6bc2efcdf26 (bug 1212333) for bustage 2016-02-05 16:09:28 +01:00
Eddy Bruel
4b1c9496aa Bug 1212333 - WorkerDebuggerManager should live on the main thread;r=khuey 2016-02-04 22:04:25 +01:00
Birunthan Mohanathas
bfee0fb40c Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Phil Ringnalda
d871b9515f Back out 7 changesets (bug 1235261) for cpptest failures in TestTArray
CLOSED TREE

Backed out changeset d66c3f19a210 (bug 1235261)
Backed out changeset 467d945426bb (bug 1235261)
Backed out changeset 32b61df13142 (bug 1235261)
Backed out changeset c50bb8ed4196 (bug 1235261)
Backed out changeset 0ff0fa6fe81f (bug 1235261)
Backed out changeset df70e89669da (bug 1235261)
Backed out changeset 064969357fc9 (bug 1235261)
2016-01-31 10:10:57 -08:00
Birunthan Mohanathas
245cd6a02f Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Kyle Huey
e95edb30a9 Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
Luke Wagner
786af33c6f Bug 1239601 - improve the UniquePtr situation (r=jandem) 2016-01-15 18:26:20 -06:00
Lars T Hansen
189baf3965 Bug 1231333 - part 2, DOM: only allow futexWait in workers. r=khuey 2015-12-23 13:44:00 +01:00
Jeff Walden
4f31020ada Bug 1235615 - Split JS::CompartmentOptions into JS::CompartmentCreationOptions that are immutable characteristics of a compartment, and JS::CompartmentBehaviors that may be changed after the compartment's been created. r=terrence 2015-12-28 16:15:52 -06:00
Nicholas Nethercote
9f0046ac95 No bug. Remove a stray debugging printf of mine. r=me.
DONTBUILD because trivial.
2015-11-09 17:25:33 -08:00
Nicholas Nethercote
c00db9350e Bug 1186810 (part 8) - Replace nsBaseHashtable::Enumerate() calls in dom/workers/ with iterators. r=khuey. 2015-10-26 17:09:44 -07:00
Nicholas Nethercote
a07635f83e Bug 1186810 (part 7) - Replace nsBaseHashtable::EnumerateRead() calls in dom/workers/ with iterators. r=khuey. 2015-10-26 16:41:55 -07:00
Nicholas Nethercote
7a7f3f4248 Bug 1186810 (part 6) - Replace nsBaseHashtable::EnumerateRead() calls in dom/workers/ with iterators. r=khuey. 2015-10-26 16:07:45 -07:00
Ehsan Akhgari
9dce161a73 Bug 1218119 - Simplify defining worker prefs; r=baku 2015-10-26 14:06:28 -04:00
Olli Pettay
b2f9b7d4cd Bug 1218190 - Add a pref to enable Clients.openWindow, r=catalinb 2015-10-25 22:36:27 +02:00
Ehsan Akhgari
b9a4138990 Bug 1216697 - Unship Request.cache until the implementation is finished; r=bzbarsky 2015-10-23 15:38:47 -04:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Morris Tseng
6429de4191 Bug 709490 - Part 10: Using mechanism in RuntimeService to get pref in worker thread instead of gfxPref. r=baku 2015-10-12 11:21:04 +08:00
Eddy Bruel
4744d0a8f3 Bug 1178721 - Implement SuspendWorkersForWindow;r=khuey 2015-10-07 12:20:59 +02:00
Wes Kocher
bbd458236d Backed out 11 changesets (bug 709490) for webgl-color-test.html failures a=backout
Backed out changeset fc04c5d43550 (bug 709490)
Backed out changeset cd8f9410d335 (bug 709490)
Backed out changeset 6e687c9143c1 (bug 709490)
Backed out changeset 9b20f2c833c4 (bug 709490)
Backed out changeset f9d130aea88e (bug 709490)
Backed out changeset fc513b410949 (bug 709490)
Backed out changeset acf6220b431a (bug 709490)
Backed out changeset 9bceaf913791 (bug 709490)
Backed out changeset 37fba20111e2 (bug 709490)
Backed out changeset 2285ce1596b8 (bug 709490)
Backed out changeset fb4e09920569 (bug 709490)
2015-10-05 08:28:25 -07:00
Morris Tseng
f58b975847 Bug 709490 - Part 10: Using mechanism in RuntimeService to get pref in worker thread instead of gfxPref. r=baku 2015-10-05 10:50:17 +08:00
Catalin Badea
8ef63a5daa Bug 1188545 - Cosmetic changes regarding workerPrivate properties shared between shared workers and service workers. r=nsm 2015-09-30 19:11:03 -04:00
Catalin Badea
6240391214 Bug 1188545 - Disentangle service workers from shared workers and refactor event dispatching code into a separate class. r=nsm,mrbkap 2015-09-30 19:11:03 -04:00
Wes Kocher
4731d2ad0a Backed out 12 changesets (bug 1188545) for test_fetch_cors failures CLOSED TREE
Backed out changeset e04738ee72a3 (bug 1188545)
Backed out changeset 1989893b59de (bug 1188545)
Backed out changeset 11ff29cc25d8 (bug 1188545)
Backed out changeset 4b6bdf859845 (bug 1188545)
Backed out changeset 76eb7ffeca2a (bug 1188545)
Backed out changeset 4473e036b52e (bug 1188545)
Backed out changeset 2a28cb794b23 (bug 1188545)
Backed out changeset 1fa2f55727f3 (bug 1188545)
Backed out changeset 032f4c24fc34 (bug 1188545)
Backed out changeset 4be675dc1b37 (bug 1188545)
Backed out changeset d5d05def5b17 (bug 1188545)
Backed out changeset e94f12b0bcf3 (bug 1188545)
2015-09-30 11:11:47 -07:00
Catalin Badea
dcf48af36c Bug 1188545 - Cosmetic changes regarding workerPrivate properties shared between shared workers and service workers. r=nsm 2015-09-30 10:14:33 -04:00
Catalin Badea
43b165568f Bug 1188545 - Disentangle service workers from shared workers and refactor event dispatching code into a separate class. r=nsm,mrbkap 2015-09-30 10:14:33 -04:00
Wes Kocher
20f2b1dd4d Backed out 13 changesets (bug 709490) for android webgl-color-test.html failures
Backed out changeset 5be7514914b6 (bug 709490)
Backed out changeset 04b6f94fbe8a (bug 709490)
Backed out changeset 00c0e85dd8cd (bug 709490)
Backed out changeset 221385b7b81a (bug 709490)
Backed out changeset ecc38c18734f (bug 709490)
Backed out changeset 22878c936384 (bug 709490)
Backed out changeset 0edcbb60eee3 (bug 709490)
Backed out changeset 5feceec2014b (bug 709490)
Backed out changeset 835b655cb873 (bug 709490)
Backed out changeset 6fbb4a3f8cf7 (bug 709490)
Backed out changeset a5f8646fa156 (bug 709490)
Backed out changeset 2ae1386916b3 (bug 709490)
Backed out changeset 6b29a2a0a8fb (bug 709490)
2015-09-29 08:57:36 -07:00
Benjamin Bouvier
5b7b870f3e Bug 1206520: Add about:config prefs to enable throwing on asm.js validation failures; r=bz 2015-09-28 12:40:03 +02:00
Morris Tseng
b60592f411 Bug 709490 - Part 10: Using mechanism in RuntimeService to get pref in worker thread instead of gfxPref, r=baku 2015-09-29 11:51:25 +01:00
Andrea Marchesini
944df6dbb8 Bug 1193414 - SharedWorkers thread should be kept alive also when the SharedWorker object is CCed, r=khuey 2015-09-23 06:54:29 +01:00
Mike Hommey
f64c5cadc8 Bug 1203840 - Trigger dirty pages purge after CC. r=njn,r=smaug,r=mccr8
Jemalloc 4 purges dirty pages regularly during free() when the ratio of dirty
pages compared to active pages is higher than 1 << lg_dirty_mult.  We set
lg_dirty_mult in jemalloc_config to limit RSS usage, but it also has an impact
on performance.

So instead of enforcing a high ratio to force more pages being purged, we keep
jemalloc's default ratio of 8, and force a regular purge of all dirty pages,
after cycle collection.

Keeping jemalloc's default ratio avoids cycle-collection-triggered purge to
have to go through really all dirty pages when there are a lot, in which case
the normal jemalloc purge during free() will already have kicked in. It also
takes care of everything that doesn't run the cycle collector still having
a level of purge, like plugins in the plugin-container.

At the same time, since jemalloc_purge_freed_pages does nothing with jemalloc 4,
repurpose the MEMORY_FREE_PURGED_PAGES_MS telemetry probe to track the time
spent in this cycle-collector-triggered purge.
2015-09-20 17:43:43 +09:00
Nikhil Marathe
28782afa19 Bug 1203324 - disable notifications on serviceworkers. r=ehsan,wchen
Per the product discussion, the Notification API should be disabled in
ServiceWorker in release builds for 42 since the UX isn't great [1].

The aim is to release in 44.

Apologies for the code duplication for pref checking in Notification and
ServiceWorkerRegistration. There isn't a easy way to get
ServiceWorkerRegistration's generated binding to include Notification.h without
having an attribute/method that uses Notification.

[1]: https://mana.mozilla.org/wiki/x/TgAJAw
2015-09-15 12:58:32 -07:00
Andrea Marchesini
8ffb255cfa Bug 1204775 - SharedWorker.port should be a 'real' MessagePort, r=khuey 2015-09-16 11:27:56 +08:00
Wes Kocher
b5d1789b6c Backed out changeset ccfddcbccdac (bug 1204775) for sharedworker bustage 2015-09-15 11:08:09 -07:00
Andrea Marchesini
6fc6f7c041 Bug 1204775 - SharedWorker.port should be a 'real' MessagePort, r=khuey 2015-09-16 00:47:19 +08:00
Andrea Marchesini
c964daa6d7 Bug 1193414 - Telemetry for SharedWorker spawning. r=bkelly 2015-08-12 06:00:00 -04: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
Ehsan Akhgari
1375abcab8 Bug 1188062 - Unship Request.context; r=baku 2015-07-30 08:14:00 -04:00