Commit Graph

493 Commits

Author SHA1 Message Date
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
Ehsan Akhgari
bac8dddb71 Bug 1188091 - Fix the exposure of Push interfaces; r=dougt,bzbarsky,nsm
Currently we don't check the dom.push.enabled pref in some cases for
some of these interfaces.  This patch unifies how all of these
interfaces are exposed to Window, Worker, and ServiceWorker.
2015-07-30 01:06:38 -04:00
Francisco Jordano
6920f15534 Bug 1186880 - Performance timing api in workers should output entries if preference is enabled. r=baku 2015-07-28 17:33:37 +01:00
Ryan VanderMeulen
5a65a53c72 Backed out changeset c88d1138bc38 (bug 1188091) for Mulet test_serviceworker_interfaces.html failures.
CLOSED TREE
2015-07-28 13:28:39 -04:00
Ehsan Akhgari
34f6032f9e Bug 1188091 - Fix the exposure of Push interfaces; r=dougt,bzbarsky
Currently we don't check the dom.push.enabled pref in some cases for
some of these interfaces.  This patch unifies how all of these
interfaces are exposed to Window, Worker, and ServiceWorker.
2015-07-28 12:28:53 -04:00
Randell Jesup
9212636903 Bug 1155059: Patch 1&2 - Convert Dispatch() and friends to already_AddRefed<> r=froydnj
Modify Dispatch IDL and code to deal with MSVC issues with overloaded templates r=froydnj
2015-07-09 23:21:46 -04:00
Dragana Damjanovic
f5e3e71a6d Bug 905127 - Part 2 - remove unnecessary nsNetUtil.h includes r=jduell 2015-07-06 07:55:00 +02:00
Ben Kelly
361cd7b23a Bug 1167808 P1 Add dom.serviceWorkers.interception.opaque.enabled pref. r=ehsan 2015-07-02 20:09:20 -07:00
Ehsan Akhgari
eb34e8f9c1 Bug 1179489 - Don't count service workers towards an origin's max worker quota; r=nsm
This is a follow-up to bug 1178339.
2015-07-02 18:48:48 -04:00
Wes Kocher
e90d537295 Backed out 4 changesets (bug 1167808) for mulet mochitest-4 permafail in test_fetch_cors_sw_reroute.html
Backed out changeset 1c9c72d93973 (bug 1167808)
Backed out changeset 9c94c759a0fb (bug 1167808)
Backed out changeset e8ac89eafb1d (bug 1167808)
Backed out changeset 48abf470ef5b (bug 1167808)
2015-07-02 15:30:29 -07:00
Ben Kelly
7dc8df75e9 Bug 1167808 P1 Add dom.serviceWorkers.interception.opaque.enabled pref. r=ehsan 2015-07-02 14:34:00 -07:00
Ehsan Akhgari
a4ca04fce8 Bug 1178339 - Account for service workers separately in WorkerDomainInfo; r=nsm 2015-07-01 20:37:40 -04:00
Wes Kocher
466a8469c6 Backed out changeset c0cfb1a32d09 (bug 1178339) for being the likely causes of a spike in serviceworker intermittent failures 2015-07-01 17:18:17 -07:00
Ehsan Akhgari
816d72297c Bug 1178339 - Account for service workers separately in WorkerDomainInfo; r=nsm 2015-07-01 16:12:43 -04:00
Ehsan Akhgari
091092faac Bug 1148935 - Correctly reflect worker and sharedworker RequestContext values; r=smaug 2015-06-30 18:52:42 -04:00
Ryan VanderMeulen
63ceae91b7 Backed out changeset 07bf31cca660 (bug 1148935) for Werror bustage.
CLOSED TREE
2015-06-30 15:53:43 -04:00
Ehsan Akhgari
0b1720ebbd Bug 1148935 - Correctly reflect worker and sharedworker RequestContext values; r=smaug 2015-06-30 15:30:08 -04:00
Birunthan Mohanathas
9c3dc60faf Bug 1174803 - Simplify RuntimeService::WorkerPrefChanged. r=bent 2015-06-30 11:16:03 -07:00
Ben Kelly
b09733bd09 Bug 1175138 P2 Expose dom.serviceWorkers.testing.enabled to workers. r=ehsan 2015-06-27 23:19:24 -04:00
Ben Kelly
f19593e92a Bug 1175138 P1 Make the dom.caches.testing.enabled pref available in workers. r=ehsan 2015-06-27 23:19:23 -04:00
Nikhil Marathe
cd760dad5b Bug 916893 - Patch 1 - Notification on workers. r=khuey,wchen
Does not implement the Service Worker API - https://notifications.spec.whatwg.org/#service-worker-api
***
Folded:
Bug 916893 - Better ownership model. r=khuey
Fix for bug found by ASan where we were touching the NotificationFeature after releasing it.
2015-06-25 18:53:02 -07:00
Andrea Marchesini
bce6c64a90 Bug 1177621 - SharedWorkers should not be shared between a private and a non-private documents, r=nsm 2015-06-26 11:18:18 -07:00
Ryan VanderMeulen
965e1e9b30 Backed out 11 changesets (bug 916893, bug 1114554) for various mochitest and Gij failures.
Backed out changeset 247ca4bf258e (bug 1114554)
Backed out changeset 5578d5c280a6 (bug 1114554)
Backed out changeset 404830c1ecf7 (bug 1114554)
Backed out changeset 15bdf9c78e6e (bug 1114554)
Backed out changeset f92abe5ec784 (bug 1114554)
Backed out changeset 75324b6862a8 (bug 1114554)
Backed out changeset ce8a768782f2 (bug 1114554)
Backed out changeset 0d860fd12534 (bug 1114554)
Backed out changeset 7dc2448065a9 (bug 916893)
Backed out changeset c3b07f0d1a60 (bug 916893)
Backed out changeset 61c3f24cc908 (bug 916893)

CLOSED TREE
2015-06-25 19:52:40 -04:00
Nikhil Marathe
02f8317c80 Bug 916893 - Patch 1 - Notification on workers. r=khuey,wchen
Does not implement the Service Worker API - https://notifications.spec.whatwg.org/#service-worker-api
***
Folded:
Bug 916893 - Better ownership model. r=khuey
Fix for bug found by ASan where we were touching the NotificationFeature after releasing it.
2015-06-25 11:36:53 -07:00
Nikhil Marathe
1852b841ac Bug 1173389 - Disable ServiceWorker network interception by default. r=ehsan 2015-06-12 16:28:13 -07:00
Paolo Amadini
87d960802e Bug 1158133 - Add a way to disable async stacks, and disable by default on mobile platforms. r=bent,jimb 2015-06-09 11:17:09 +02:00
Jose Antonio Olivera Ortega
afca6bd24a Bug 1115820 - Add telemetry to ServiceWorkers. r=nsm, r=vladan 2015-06-05 08:11:18 +02:00
Eddy Bruël
1762922920 Bug 1166847 - Implement OpaqueCrossCompartmentWrapper;r=evilpies 2015-06-02 16:54:54 +02:00
Catalin Badea
62c1d7dc08 Bug 1130684 - Implement Service Worker clients.claim. r=nsm,ehsan 2015-05-14 12:41:42 -07:00
Ben Turner
5c1e61be92 Bug 1162218 - Make worker idle thread timeouts more strict, r=baku. 2015-05-07 10:35:57 -07:00
Andrew McCreight
92010d3e4c Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Boris Zbarsky
49b2986e0b Bug 1157898 part 3. Fix the remaining consumers of rv.ErrorCode() in NS_ENSURE_* expressions to not do that. r=peterv 2015-04-27 09:18:52 -04:00
Nikhil Marathe
eb6364731b Bug 1131327 - Patch 2 - Expose to workers. r=baku
This patch exposes ServiceWorkerRegistration (and ServiceWorker to satisfy constraints) to workers.

For now, a null registration is returned in the worker.
2015-04-03 22:46:07 -07:00
Ben Turner
5a13f9c974 Bug 1151646 - Fix static analysis bustage. 2015-04-08 18:49:38 -07:00
Ben Turner
0362c82f44 Bug 1151646 - Cleanup, r=khuey. 2015-04-08 15:21:26 -07:00
Ben Turner
8e79d6b036 Bug 1151646 - Spin the event loop one extra time to clean up all CC'd objects before worker shutdown, r=khuey. 2015-04-08 15:20:59 -07:00
Nikhil Marathe
2b639b0da8 Bug 931249 - Patch 9 - Use ServiceWorker cache name as part of it's unique name. r=khuey
When a SW script is updated (it gets a new cache), if there was already an existing running worker with the same scope and script, that would be reused and the update wouldn't happen.
2015-03-19 16:40:52 -07:00
Eddy Bruël
f14ffa1930 Bug 1092102 - Rename Suspend/Resume to Freeze/Thaw;r=khuey 2015-04-01 11:00:19 +02:00
Eddy Bruël
52320c8f3f Bug 1092102 - Implement WorkerDebuggerGlobalScope.createSandbox;r=khuey 2015-03-31 12:22:40 +02:00
Carsten "Tomcat" Book
87caf9c566 Backed out changeset 71abbf190d53 (bug 1092102) for static analysis build bustage on a CLOSED TREE 2015-03-31 11:14:46 +02:00
Eddy Bruël
407399aad3 Bug 1092102 - Implement WorkerDebuggerGlobalScope.createSandbox;r=khuey 2015-03-31 10:19:04 +02:00
Jose Antonio Olivera Ortega
8ed2dc4e48 Bug 1139513 - Warn and gather data if ServiceWorker hits max workers per domain limit. r=bent, r=rvitillo 2015-03-25 13:17:00 -04: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
Eddy Bruël
2cc96733c3 Bug 1092102 - Implement WorkerDebugger.initialize;r=khuey 2015-03-17 11:15:19 +01:00
Ehsan Akhgari
3c5d37726d Bug 1141274 - Allocate shared workers and service workers from separate namespaces; r=nsm
This patch makes sure that we never reuse a WorkerPrivate belonging
to a shared worker for a service worker and vice versa.
2015-03-10 22:52:22 -04:00