Commit Graph

2040 Commits

Author SHA1 Message Date
Nigel Babu
d5f46aaf6c Backed out a19daae11647 (Bug 1186307) for W8 and W4 bustage on CLOSED TREE 2015-08-27 15:04:25 +05:30
Andrea Marchesini
b68734b7da Bug 1186307 - StructuredCloneHelper in workers.postMessage(), r=smaug 2015-08-27 09:06:09 +01:00
Phil Ringnalda
700dfcd3d1 Back out f9edb5fe8fb9 (bug 1198982) for webplatform registration.https.html failures
CLOSED TREE
2015-08-26 21:36:40 -07:00
Kyle Huey
517ebc93c6 Bug 1198982: Don't fail the SW load for an importScripts failure. r=bkelly 2015-08-26 19:21:03 -07:00
Nikhil Marathe
fe819ad8d7 Bug 1180861 - Various ServiceWorker registration fixes to get test passing. r=bkelly,jgraham.
This commit implements the following changes to get registration.https.html working.
1) Fail with NS_ERROR_DOM_SECURITY_ERR where the spec requires it.
2) Propagate JSExnType to ServiceWorkerManager::HandleError() so that a JS
   exception object with the correct .name can be created.
3) Fail with security error on redirect failure.
4) Check fetched script's mimetype.
5) Add missing python server files for web-platform-tests.
6) Update web-platform-tests expected data.
7) Several tests have been changed to use TypeError or more appropriate JS
   errors based on my reading of the spec.

--HG--
extra : commitid : IxWo2IVUweU
extra : rebase_source : c3c1ead153027bf84e7f239fd7125224fe25c3c0
2015-08-19 16:21:25 -07:00
Andrea Marchesini
24bd2e4412 Bug 1185640 - serviceworker register() should not accept escaped slashes. r=bkelly
--HG--
extra : commitid : 7XFc06lyJkq
extra : rebase_source : 4be886456a92e53e69ac35afd5213d7b7751cb7c
2015-08-19 13:23:58 -07:00
Kyle Huey
0b8e80b981 Bug 1164834: MessageEvents coming from postMessage should not be cancelable. r=Ms2ger 2015-08-25 13:30:19 -07:00
Nikhil Marathe
c04b01b1ed Bug 1189675 - Make all ServiceWorker events non cancelable. r=catalinb
Update web-platform-tests expected data

--HG--
extra : commitid : 5HEP46MV77P
extra : rebase_source : 5234b551a4e9cf2bf014f4ee0396d9dcdd9f6dac
2015-08-21 17:38:18 -07:00
Nikhil Marathe
b540329bb9 Bug 1189644 - Update waitUntil() and activation to spec. r=catalinb
waitUntil() has been updated to accept multiple calls and concatenate them into Promise.all().
activation does not fail any more even if the promise(s) passed to waitUntil() reject.

Update web-platform-tests expected data

--HG--
extra : commitid : IawOgxEfc79
extra : rebase_source : e6fcc47c873fd9f71f51a67303a6566bf0c0dd21
extra : amend_source : 787990406129722a3c58ff78782d778823daf2bf
2015-08-24 14:42:14 -07:00
Ryan VanderMeulen
ad4abd6428 Backed out 7 changesets (bug 1189678, bug 1193128, bug 1189661, bug 1189644, bug 1189675) for various serviceworker mochitest and wpt failures.
Backed out changeset 696463139720 (bug 1189661)
Backed out changeset 7babb5b9d74a (bug 1189644)
Backed out changeset d4fa5cfc4b86 (bug 1189678)
Backed out changeset a7c27770b861 (bug 1189675)
Backed out changeset 471a45b97ce2 (bug 1189644)
Backed out changeset 4d96f2d48077 (bug 1193128)
Backed out changeset a9d5366288ff (bug 1189661)

CLOSED TREE
2015-08-24 18:09:47 -04:00
Nikhil Marathe
680d1fe469 Bug 1189644 - Follow up to fix test. a=bustage
CLOSED TREE

--HG--
extra : commitid : 5MFDWqWODAV
extra : amend_source : 9ea1f0c0ea7f99ff4267f435454895fd9522d43b
2015-08-24 13:54:25 -07:00
Jose Antonio Olivera Ortega
3ff1bb96f6 Bug 1182103 - Test EventSource scenarios with fetch interception. r=bkelly 2015-08-24 06:32:00 -04:00
Nikhil Marathe
d812469212 Bug 1189675 - Make all ServiceWorker events non cancelable. r=catalinb
Update web-platform-tests expected data

--HG--
extra : commitid : 61GwTtITUOa
extra : rebase_source : e5b0dfe482d4104cdab97c511e09c4b346f0eacd
2015-08-21 17:38:18 -07:00
Nikhil Marathe
0a089b35b0 Bug 1189644 - Update waitUntil() and activation to spec. r=catalinb
waitUntil() has been updated to accept multiple calls and concatenate them into Promise.all().
activation does not fail any more even if the promise(s) passed to waitUntil() reject.

Update web-platform-tests expected data

--HG--
extra : commitid : 1jnUWlyw4zQ
extra : rebase_source : 3e2ac14a2f1ebc6fbfc322bb1914feb47f261349
2015-08-21 16:13:54 -07:00
dimi
888dac0c00 Bug 1187766 - Test loading plugins scenarios with fetch interception. r=bkelly 2015-08-21 15:09:46 +08:00
Nikhil Marathe
1c3ca8257a Bug 1194562 - Pass wide strings to ThrowTypeError. r=mccr8 2015-08-18 12:59:44 -07:00
dimi
04198b30cb Bug 1189235 - Use originAttribute for ServiceWorkerRegistrar. r=baku 2015-08-20 18:20:19 +08:00
Nikhil Marathe
0047229d92 Bug 1187350 - update() should return a Promise. r=ehsan,catalinb
--HG--
extra : commitid : 2SkKnobC9jo
extra : rebase_source : 5f5d5c3ca57237fb63044c66a48861a1a4bf19f3
extra : amend_source : 5ea042fc5cc2be52594eca1fd6cda2f36057b3eb
2015-08-14 15:06:00 -07:00
Nikhil Marathe
0756a03abe Bug 1181056 - waitUntil() should throw if called when event is not dispatching. r=smaug
--HG--
extra : commitid : 5Caz3xiFQQe
extra : rebase_source : ef708cda07cbaf897ec3201e19defcf02d85e06f
2015-08-18 16:28:04 -07:00
Nikhil Marathe
5cf1847cde Bug 1181037 - Use entry settings object's base URL. r=ehsan
The second test, which checks for NetworkError is incorrect.
[[Update]] step 12 states:
"If response is a network error or response's status is not in the range 200 to 299, then:
  1. Reject p with a TypeError."

which specifically converts the NetworkError (due to 404) to a TypeError.

Also fixes controller-on-reload.https.html

Update web-platform-tests expected data

--HG--
extra : commitid : LUdPR44iiv2
extra : rebase_source : 6774faa1417ce585161750f14bf233d7382bea68
2015-08-20 13:56:37 -07:00
Salvador de la Puente
ba23b80bbc Bug 1196157 - Marks left by performance marks should print the domain of the application and not the complete URL. r=baku 2015-08-20 14:34:22 -07:00
dimi
758be55430 Bug 1191647 - Listen to clear-origin-data in ServiceWorkerManager.cpp. r=bkelly
--HG--
extra : source : ee8d28602bc21f5d5c32c66e3bb7e3e78d18ad4f
2015-08-19 14:46:53 +08:00
Nigel Babu
d78ab7197e Backed out changeset f447f7b8190b (bug 1185640) for W8 failures on CLOSED TREE
--HG--
extra : amend_source : 1fca18be89fda404fb71c3f0c8550011ded2d7de
2015-08-20 16:12:00 +05:30
Andrea Marchesini
c59e2e345a Bug 1185640 - ServiceWorkers - Passing a scope or scriptURL to register() with escaped '/' or '\' should fail, r=bkelly 2015-08-20 08:46:01 +01:00
Andrea Marchesini
ce594e8b18 Bug 1196514 - remove dom.messagechannel.enabled pref, r=smaug 2015-08-20 08:34:38 +01:00
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