Commit Graph

2015 Commits

Author SHA1 Message Date
Wes Kocher
7548b216ca Backed out changeset ee8d28602bc2 (bug 1191647) for build bustage CLOSED TREE 2015-08-19 15:55:05 -07:00
dimi
04c040ba8d Bug 1191647 - Listen to clear-origin-data in ServiceWorkerManager.cpp. r=bkelly
--HG--
extra : rebase_source : 9401b09e0d6708fa8455d8629a321569a6e6abe9
2015-08-19 14:46:53 +08:00
Andrea Marchesini
d8e7c636ae Bug 1192350 - XMLHttpRequest::Open() should check if mProxy has been already released in a nested ::Open() calls, r=khuey 2015-08-19 18:26:13 +01:00
Bill McCloskey
c2ac89de85 Bug 1163735 - Ensure that we don't hand out a destroyed TabChild from WorkerPrivate::InterfaceRequestor (r=khuey)
If the actor we hand out has been __delete__d, then we'll crash when
Necko tries to send the actor to the parent to open connections.
2015-08-19 09:40:55 -07:00
Nikhil Marathe
b5681e95be Bug 1193911 - Ensure synthetic Responses gets a valid channel info. r=ehsan
Right now, synthetic Responses did not have a valid channel info. When these
were saved in the Cache, and then restored, the restored Response did have
a ChannelInfo, but that ChannelInfo did not have a valid security info.
Passing this to respondWith() then caused the interception to fail.

This patch modifies Response::Constructor() to initialize its ChannelInfo from
the global. ChannelInfo can now initialize itself from a nsIDocument. All
workers now store their ChannelInfo on the WorkerLoadInfo.

--HG--
extra : commitid : L1wltwPICd8
extra : rebase_source : 8dab4c414eb50e02a00dd2cb3ee848b811060e70
2015-08-17 15:08:58 -07:00
Jinank Jain
f67a04e158 Bug 1162333 - Add stronger assertions to PromiseWorkerProxy in debug builds. r=catalinb
--HG--
extra : commitid : 2jVPtywuF92
extra : rebase_source : 85d8854a7f3eec8c1fd31ed0e57f33d3b83a2d04
2015-06-11 00:35:18 +02:00
Hiroyuki Ikezoe
07f62b2d0a Bug 1165796 - Part 2: Implement PerformanceObserver.r=baku
--HG--
extra : rebase_source : 9ccd3f9c8932841aed6a13986a4466fac0197902
2015-08-17 15:13:20 -07:00
Catalin Badea
04bb71d075 Bug 1193133 - Throw when calling postMessage from a Service Worker dom object with no global. r=bkelly 2015-08-17 10:38:34 -07:00
Catalin Badea
678a410089 Bug 1193133 - Drop the document and window references from ServiceWorker. r=bkelly 2015-08-17 10:38:34 -07:00
Ryan VanderMeulen
61f091d8c5 Backed out changesets 2381f29f63c2 and 9f2469ea7f01 (bug 1193133) for frequent w-p-t crashes/asserts. a=me 2015-08-14 09:00:59 -04:00
Catalin Badea
7de33f8307 Bug 1193133 - Throw when calling postMessage from a Service Worker dom object with no global. r=bkelly 2015-08-13 13:35:10 -07:00
Catalin Badea
d6eb43737c Bug 1193133 - Drop the document and window references from ServiceWorker. r=bkelly 2015-08-13 13:35:10 -07:00
Ryan VanderMeulen
1e86901d36 Backed out changeset 4a8f45990368 (bug 1185640) for causing serviceworker w-p-t permacrashes.
CLOSED TREE
2015-08-13 10:13:55 -04:00
Andrea Marchesini
2792224a7f Bug 1185640 - Passing a scope or scriptURL to register() with escaped '/' or '\' should fail, r=bkelly 2015-08-13 11:34:52 +01:00
Andrea Marchesini
5a264a19df Bug 1187470 - ServiceWorker scripts should not be treated parser warnings as errors, r=bkelly
--HG--
rename : dom/workers/test/serviceworkers/strict_mode_error.js => dom/workers/test/serviceworkers/strict_mode_warning.js
rename : dom/workers/test/serviceworkers/test_strict_mode_error.html => dom/workers/test/serviceworkers/test_strict_mode_warning.html
2015-08-13 10:52:15 +01:00
Albert Crespell
8e93c098d1 Bug 1182120 - Test XMLDocument.load() with fetch interception. r=bkelly 2015-08-12 06:43:27 +02:00
Andrea Marchesini
a2c5d2836e Bug 1193414 - Telemetry for SharedWorker spawning. r=bkelly 2015-08-12 06:00:00 -04:00
Aryeh Gregor
5aeef0231d Bug 874842 - Return Event instead of nsIDOMEvent 2015-08-12 14:39:31 +03:00
Seth Fowler
3c08b48c3a Bug 1193125 - Avoid corrupting image data in test_fetch_event.html. r=bkelly 2015-08-11 23:50:28 -07: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
Ben Kelly
5c5cefb2b2 Bug 1192986 Also mark Cache/CacheStorage as release interfaces on workers. r=ehsan a=bustage 2015-08-10 19:49:22 -07:00
Andrea Marchesini
f7220514cc Bug 1186307 - part 2 - Compilation failures fixed, CLOSED TREE 2015-08-10 17:28:43 +01:00
Andrea Marchesini
b4c30ecaf9 Bug 1186307 - part 1 - Unify the StructuredCloneCallbacks in WorkerPrivate.cpp, r=smaug 2015-08-10 16:33:23 +01:00
Ben Kelly
c7e4c1b91c Bug 983301 Add a test for FetchEvent.respondWith(5). r=bz 2015-08-06 18:12:14 -07:00
Nikhil Marathe
970731b146 Bug 1153499 - Enable push and sw prefs. r=dougt,ehsan
--HG--
extra : commitid : GQaiqrErWLz
extra : rebase_source : 3f01566803616b221b883b51ab079d8868e8e502
extra : source : 06a05093fc417449b9458fa88105e863acddef8d
2015-07-15 13:12:44 -07:00
Nikhil Marathe
25e263af21 Bug 1144660 - client.focus() adds window interaction checks and directly uses DOMServiceWorkerFocusClient to focus window. r=ehsan,dao
client.focus() now directly uses the DOMServiceWorkerFocusClient event. The
platform popup checking is not available on service workers. Instead each
worker maintains a counter of if it is allowed to interact with windows. This
counter is currently only incremented by the notificationclick event and
dropped after the event has been dispatched.

Since acquiring a client is an async operation most service workers will
perform in notificationclick, an additional extension is granted after the event
during which the service worker may focus a client. This extension is only granted
if the script invokes NotificationEvent.waitUntil() at which point the timer begins.
The extension is terminated when the Promise passed to waitUntil() is fulfilled, or
the timer expires, whichever comes first.

--HG--
extra : commitid : 5wavKTRZWcy
extra : rebase_source : fc8ab4ef6c9bf384b5525b0bc979b3cedc4e1d6c
2015-07-23 08:30:27 -07:00
Nikhil Marathe
744a8d6f14 Bug 1144660 - Make KeepAliveHandler threadsafe refcounted. r=ehsan
This works because KeepAliveHandler only holds nsMainThreadPtrHolder<> which is
itself thread safe.  It has assertions that the PromiseNativeHandler overrides
are only called on the worker and these assertions are satisfied.

--HG--
extra : commitid : Kqgfb87dkFH
extra : rebase_source : 56371d2993c681d99814535a4b5289330763f9c3
2015-08-05 20:58:10 -07:00
Carsten "Tomcat" Book
2df123b59f Backed out 1 changesets (bug 1153499) for test failures in browser_force_refresh.js
Backed out changeset 252814d5e628 (bug 1153499)
2015-08-06 09:47:38 +02:00
Nikhil Marathe
ea58277c0d Bug 1153499 - Enable push and sw prefs. r=dougt,ehsan
--HG--
extra : commitid : GLh29700Ofi
extra : rebase_source : 850c4534d62d9db98b890a5239c8f5c647baa8ef
extra : source : 06a05093fc417449b9458fa88105e863acddef8d
2015-07-15 13:12:44 -07:00
Wes Kocher
5e90ccec17 Backed out 3 changesets (bug 1191495, bug 1153499, bug 1144660) for mochitest-push crashes
Backed out changeset 8917e7323399 (bug 1191495)
Backed out changeset 13ed6f60d3f9 (bug 1144660)
Backed out changeset 95bd6642e4b1 (bug 1153499)
2015-08-05 15:18:05 -07:00
Nikhil Marathe
0d07229d06 Bug 1190703 - Relax scope resolution assertion in ServiceWorkerContainer::Register. r=bkelly
--HG--
extra : commitid : 2VyBa3KOyIV
extra : rebase_source : 81940c62d45ce34df1ce60f33ac90f762acee937
extra : amend_source : d0c955ca481b3a473d698176fea9aed407443ff4
2015-08-05 14:33:50 -07:00
Nikhil Marathe
9c77fa0bcd Bug 1144660 - client.focus() adds window interaction checks and directly uses DOMServiceWorkerFocusClient to focus window. r=ehsan,dao
client.focus() now directly uses the DOMServiceWorkerFocusClient event. The
platform popup checking is not available on service workers. Instead each
worker maintains a counter of if it is allowed to interact with windows. This
counter is currently only incremented by the notificationclick event and
dropped after the event has been dispatched.

Since acquiring a client is an async operation most service workers will
perform in notificationclick, an additional extension is granted after the event
during which the service worker may focus a client. This extension is only granted
if the script invokes NotificationEvent.waitUntil() at which point the timer begins.
The extension is terminated when the Promise passed to waitUntil() is fulfilled, or
the timer expires, whichever comes first.

--HG--
extra : commitid : 5DUAOg4j41K
extra : rebase_source : 775d36e41c3d3b62e5189b032220fa2469ac237d
extra : source : 8300859f8e9751ca663f96fae3375dfda8b2ad13
2015-07-23 08:30:27 -07:00
Nikhil Marathe
4d3d992a72 Bug 1153499 - Enable push and sw prefs. r=dougt,ehsan
--HG--
extra : commitid : JbPfHDqXUbo
extra : rebase_source : c1114f39f003e9109da73ab49e30b73826ef8f04
extra : source : 06a05093fc417449b9458fa88105e863acddef8d
2015-07-15 13:12:44 -07:00
Nikhil Marathe
7fe3f37d58 Bug 1190478 - Hide PushEvent.data until we ship message encryption. r=mt,jst
--HG--
extra : commitid : 6i4eexsw50U
extra : rebase_source : 9147a2f5e3996d104ff40e32da3e82ca1cc3917d
2015-08-03 11:04:41 -07:00
Fernando Jimenez
5d630742c6 Bug 1180148 - Clear service workers registered for a site when clearing the cookies and stored data is not working in b2g. r=baku 2015-08-03 22:51:07 +02:00
Nikhil Marathe
839a3bc3fb Bug 1183954 - Fix Notification.data structured cloning on workers. r=robertbindar,mccr8
Rather than store a non-thread-safe refcounted nsIStructuredCloneContainer, store the base64 representation.
Caches a jsval the first time an attempt to access data is made from content script.

--HG--
extra : commitid : Ijd82LTJaYo
extra : rebase_source : f82e837842037ea02efae3a0fc9b2b35c2a0d7d0
2015-07-30 12:44:14 -07:00
Boris Zbarsky
dba569f117 Bug 983301 part 2. Change Promise to not be distinguishable from any other type. r=peterv 2015-07-31 13:30:55 -04:00
Kaku Kuo
9f9f5a83d7 Bug 1044102 - Part 3 - Support StructuredClone. r=baku
--HG--
extra : rebase_source : 714950441e109436a9d70a24a8ab4efb269024c5
2015-07-30 20:50:00 +02:00
Kaku Kuo
9c3f995e43 Bug 1044102 - Part 1 - Implement ImageBitmap. r=roc, sr=smaug
--HG--
extra : rebase_source : c26f327064125a6d5690b03571f25ea0e25347eb
2015-07-30 20:47:00 +02:00
Kaku Kuo
b6da468928 Bug 1044102 - Part 0 - Test cases. r=smaug.
--HG--
extra : rebase_source : 59e9690e7c5b029cab5f35b544151366025876bf
2015-07-30 20:45:00 +02:00
Andrea Marchesini
d0d22b2a08 Bug 1188265 - No manual JS_ClearPendingException when StructuredCloneHelper is used, r=smaug 2015-07-31 01:38:00 +01:00
Wes Kocher
98e5242831 Backed out changeset 2bdaed564656 (bug 1125961) for b2g emulator mochitest-21 failures starting in test_fetch_event_client_postmessage.html 2015-07-30 14:53:38 -07:00
Josh Matthews
77fd3928cf Bug 1125961 - Allow sending null PBrowser actors when there's a triggering principal which can be used for security checks. r=bkelly,ddamjano 2015-06-03 15:07:42 -04:00
Ehsan Akhgari
aeacbc159a Bug 1188062 - Unship Request.context; r=baku 2015-07-30 08:14:00 -04:00
Ehsan Akhgari
547404788d 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
Andrea Marchesini
7655790d94 Bug 1185820 - XMLHttpRequest::Open() in worker should count the recursion using a uint32_t and not a boolean. r=khuey 2015-07-29 16:10:15 -04:00
Bobby Holley
97b9240b34 Bug 1188696 - Hoist nsRefPtr.h into MFBT. r=froydnj 2015-07-29 10:44:59 -07:00
Kyle Huey
c5c0116764 Bug 1158031: Don't return empty arrays from MultiPartBlobImpl::GetSubBlobImpls(). r=baku 2015-07-28 15:59:56 -07:00
Kyle Huey
512e1a6d95 Bug 1188141: Make Worker error events not bubble. r=baku 2015-07-28 15:59:55 -07:00
Kyle Huey
b4476f96d4 Bug 1188115: Expose IDBCursorWithValue in workers. r=baku 2015-07-28 15:59:55 -07:00