Diff
Modified: trunk/LayoutTests/ChangeLog (225565 => 225566)
--- trunk/LayoutTests/ChangeLog 2017-12-06 03:54:51 UTC (rev 225565)
+++ trunk/LayoutTests/ChangeLog 2017-12-06 04:47:00 UTC (rev 225566)
@@ -1,3 +1,13 @@
+2017-12-05 Chris Dumez <[email protected]>
+
+ ServiceWorkerGlobalScope prototype chain should be immutable
+ https://bugs.webkit.org/show_bug.cgi?id=180450
+
+ Reviewed by Youenn Fablet.
+
+ * TestExpectations:
+ Unskip test that no longer times out.
+
2017-12-05 Brent Fulgham <[email protected]>
Limit user agent versioning to an upper bound
Modified: trunk/LayoutTests/TestExpectations (225565 => 225566)
--- trunk/LayoutTests/TestExpectations 2017-12-06 03:54:51 UTC (rev 225565)
+++ trunk/LayoutTests/TestExpectations 2017-12-06 04:47:00 UTC (rev 225566)
@@ -149,7 +149,6 @@
imported/w3c/web-platform-tests/service-workers/service-worker/extendable-event-waituntil.https.html [ Skip ]
imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-partial-stream.https.html [ Skip ]
imported/w3c/web-platform-tests/service-workers/service-worker/http-to-https-redirect-and-register.https.html [ Skip ]
-imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https.html [ Skip ]
imported/w3c/web-platform-tests/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https.html [ Skip ]
imported/w3c/web-platform-tests/service-workers/service-worker/navigation-preload/chunked-encoding.https.html [ Skip ]
imported/w3c/web-platform-tests/service-workers/service-worker/navigation-preload/get-state.https.html [ Skip ]
Added: trunk/LayoutTests/fast/workers/DedicatedWorkerGlobalScope-immutable-prototype-expected.txt (0 => 225566)
--- trunk/LayoutTests/fast/workers/DedicatedWorkerGlobalScope-immutable-prototype-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/workers/DedicatedWorkerGlobalScope-immutable-prototype-expected.txt 2017-12-06 04:47:00 UTC (rev 225566)
@@ -0,0 +1,10 @@
+Tests that DedicatedWorkerGlobalScope's prototype is immutable
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Object.setPrototypeOf(self, { }): TypeError: Cannot set prototype of immutable prototype object
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/fast/workers/DedicatedWorkerGlobalScope-immutable-prototype.html (0 => 225566)
--- trunk/LayoutTests/fast/workers/DedicatedWorkerGlobalScope-immutable-prototype.html (rev 0)
+++ trunk/LayoutTests/fast/workers/DedicatedWorkerGlobalScope-immutable-prototype.html 2017-12-06 04:47:00 UTC (rev 225566)
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<script src=""
+<script src=""
+<script>
+
+var jsTestIsAsync = true;
+
+description('Tests that DedicatedWorkerGlobalScope\'s prototype is immutable');
+
+var worker = createWorker();
+worker.postMessage("eval Object.setPrototypeOf(self, { })");
+worker.postMessage("eval DONE");
+
+worker._onmessage_ = function(evt) {
+ if (!/DONE/.test(evt.data))
+ debug(evt.data.replace(new RegExp("/.*LayoutTests"), "<...>"));
+ else
+ finishJSTest();
+};
+
+</script>
+<script src=""
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (225565 => 225566)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2017-12-06 03:54:51 UTC (rev 225565)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2017-12-06 04:47:00 UTC (rev 225566)
@@ -1,3 +1,14 @@
+2017-12-05 Chris Dumez <[email protected]>
+
+ ServiceWorkerGlobalScope prototype chain should be immutable
+ https://bugs.webkit.org/show_bug.cgi?id=180450
+
+ Reviewed by Youenn Fablet.
+
+ Rebaseline test that no longer times out.
+
+ * web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt:
+
2017-12-05 Javier Fernandez <[email protected]>
[css-grid] Update imported Web Platform Tests
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt (225565 => 225566)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt 2017-12-06 03:54:51 UTC (rev 225565)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt 2017-12-06 04:47:00 UTC (rev 225566)
@@ -1,8 +1,6 @@
-Harness Error (TIMEOUT), message = null
-
PASS Interfaces and attributes in ServiceWorkerGlobalScope
-TIMEOUT test setup (cache creation) Test timed out
+PASS test setup (cache creation)
FAIL Event constructors assert_equals: Default FetchEvent.clientId should be null expected (object) null but got (string) ""
PASS xhr is not exposed
PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
@@ -9,5 +7,179 @@
PASS ServiceWorkerGlobalScope interface object length
PASS ServiceWorkerGlobalScope interface object name
PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object
-TIMEOUT ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError Test timed out
+PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError
+PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError
+PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false
+PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw
+PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw
+PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true
+PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property
+FAIL ServiceWorkerGlobalScope interface: attribute clients The ServiceWorkerGlobalScope.clients getter can only be used on instances of ServiceWorkerGlobalScope
+FAIL ServiceWorkerGlobalScope interface: attribute registration The ServiceWorkerGlobalScope.registration getter can only be used on instances of ServiceWorkerGlobalScope
+PASS ServiceWorkerGlobalScope interface: operation skipWaiting()
+FAIL ServiceWorkerGlobalScope interface: attribute oninstall The ServiceWorkerGlobalScope.oninstall getter can only be used on instances of ServiceWorkerGlobalScope
+FAIL ServiceWorkerGlobalScope interface: attribute onactivate The ServiceWorkerGlobalScope.onactivate getter can only be used on instances of ServiceWorkerGlobalScope
+FAIL ServiceWorkerGlobalScope interface: attribute onfetch The ServiceWorkerGlobalScope.onfetch getter can only be used on instances of ServiceWorkerGlobalScope
+FAIL ServiceWorkerGlobalScope interface: attribute onmessage The ServiceWorkerGlobalScope.onmessage getter can only be used on instances of ServiceWorkerGlobalScope
+FAIL ServiceWorkerGlobalScope interface: attribute onmessageerror The ServiceWorkerGlobalScope.onmessageerror getter can only be used on instances of ServiceWorkerGlobalScope
+PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError
+PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError
+PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false
+PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw
+PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw
+PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true
+PASS ServiceWorkerGlobalScope must be primary interface of self
+PASS Stringification of self
+PASS ServiceWorkerGlobalScope interface: self must inherit property "clients" with the proper type
+PASS ServiceWorkerGlobalScope interface: self must inherit property "registration" with the proper type
+PASS ServiceWorkerGlobalScope interface: self must inherit property "skipWaiting()" with the proper type
+PASS ServiceWorkerGlobalScope interface: self must inherit property "oninstall" with the proper type
+PASS ServiceWorkerGlobalScope interface: self must inherit property "onactivate" with the proper type
+PASS ServiceWorkerGlobalScope interface: self must inherit property "onfetch" with the proper type
+PASS ServiceWorkerGlobalScope interface: self must inherit property "onmessage" with the proper type
+PASS ServiceWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type
+PASS Client interface: existence and properties of interface object
+PASS Client interface object length
+PASS Client interface object name
+PASS Client interface: existence and properties of interface prototype object
+PASS Client interface: existence and properties of interface prototype object's "constructor" property
+PASS Client interface: attribute url
+PASS Client interface: attribute id
+PASS Client interface: attribute type
+FAIL Client interface: attribute reserved assert_true: The prototype object must have a property "reserved" expected true got false
+PASS Client interface: operation postMessage(any, [object Object])
+PASS WindowClient interface: existence and properties of interface object
+PASS WindowClient interface object length
+PASS WindowClient interface object name
+PASS WindowClient interface: existence and properties of interface prototype object
+PASS WindowClient interface: existence and properties of interface prototype object's "constructor" property
+PASS WindowClient interface: attribute visibilityState
+PASS WindowClient interface: attribute focused
+FAIL WindowClient interface: attribute ancestorOrigins assert_true: The prototype object must have a property "ancestorOrigins" expected true got false
+PASS WindowClient interface: operation focus()
+PASS WindowClient interface: operation navigate(USVString)
+PASS Clients interface: existence and properties of interface object
+PASS Clients interface object length
+PASS Clients interface object name
+PASS Clients interface: existence and properties of interface prototype object
+PASS Clients interface: existence and properties of interface prototype object's "constructor" property
+PASS Clients interface: operation get(DOMString)
+PASS Clients interface: operation matchAll(ClientQueryOptions)
+PASS Clients interface: operation openWindow(USVString)
+PASS Clients interface: operation claim()
+PASS Clients must be primary interface of self.clients
+PASS Stringification of self.clients
+PASS Clients interface: self.clients must inherit property "get(DOMString)" with the proper type
+PASS Clients interface: calling get(DOMString) on self.clients with too few arguments must throw TypeError
+PASS Clients interface: self.clients must inherit property "matchAll(ClientQueryOptions)" with the proper type
+PASS Clients interface: calling matchAll(ClientQueryOptions) on self.clients with too few arguments must throw TypeError
+PASS Clients interface: self.clients must inherit property "openWindow(USVString)" with the proper type
+PASS Clients interface: calling openWindow(USVString) on self.clients with too few arguments must throw TypeError
+PASS Clients interface: self.clients must inherit property "claim()" with the proper type
+PASS ServiceWorker interface: existence and properties of interface object
+PASS ServiceWorker interface object length
+PASS ServiceWorker interface object name
+PASS ServiceWorker interface: existence and properties of interface prototype object
+PASS ServiceWorker interface: existence and properties of interface prototype object's "constructor" property
+PASS ServiceWorker interface: attribute scriptURL
+PASS ServiceWorker interface: attribute state
+PASS ServiceWorker interface: operation postMessage(any, [object Object])
+PASS ServiceWorker interface: attribute onstatechange
+PASS ServiceWorkerRegistration interface: existence and properties of interface object
+PASS ServiceWorkerRegistration interface object length
+PASS ServiceWorkerRegistration interface object name
+PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object
+PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property
+PASS ServiceWorkerRegistration interface: attribute installing
+PASS ServiceWorkerRegistration interface: attribute waiting
+PASS ServiceWorkerRegistration interface: attribute active
+FAIL ServiceWorkerRegistration interface: attribute navigationPreload assert_true: The prototype object must have a property "navigationPreload" expected true got false
+PASS ServiceWorkerRegistration interface: attribute scope
+PASS ServiceWorkerRegistration interface: attribute updateViaCache
+PASS ServiceWorkerRegistration interface: operation update()
+PASS ServiceWorkerRegistration interface: operation unregister()
+PASS ServiceWorkerRegistration interface: attribute onupdatefound
+PASS ServiceWorkerRegistration must be primary interface of self.registration
+PASS Stringification of self.registration
+PASS ServiceWorkerRegistration interface: self.registration must inherit property "installing" with the proper type
+PASS ServiceWorkerRegistration interface: self.registration must inherit property "waiting" with the proper type
+PASS ServiceWorkerRegistration interface: self.registration must inherit property "active" with the proper type
+FAIL ServiceWorkerRegistration interface: self.registration must inherit property "navigationPreload" with the proper type assert_inherits: property "navigationPreload" not found in prototype chain
+PASS ServiceWorkerRegistration interface: self.registration must inherit property "scope" with the proper type
+PASS ServiceWorkerRegistration interface: self.registration must inherit property "updateViaCache" with the proper type
+PASS ServiceWorkerRegistration interface: self.registration must inherit property "update()" with the proper type
+PASS ServiceWorkerRegistration interface: self.registration must inherit property "unregister()" with the proper type
+PASS ServiceWorkerRegistration interface: self.registration must inherit property "onupdatefound" with the proper type
+PASS EventTarget interface: self.registration must inherit property "addEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
+PASS EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object],[object Object]) on self.registration with too few arguments must throw TypeError
+PASS EventTarget interface: self.registration must inherit property "removeEventListener(DOMString, EventListener, [object Object],[object Object])" with the proper type
+PASS EventTarget interface: calling removeEventListener(DOMString, EventListener, [object Object],[object Object]) on self.registration with too few arguments must throw TypeError
+PASS EventTarget interface: self.registration must inherit property "dispatchEvent(Event)" with the proper type
+PASS EventTarget interface: calling dispatchEvent(Event) on self.registration with too few arguments must throw TypeError
+PASS EventTarget interface: existence and properties of interface object
+PASS EventTarget interface object length
+PASS EventTarget interface object name
+PASS EventTarget interface: existence and properties of interface prototype object
+PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
+PASS EventTarget interface: operation addEventListener(DOMString, EventListener, [object Object],[object Object])
+PASS EventTarget interface: operation removeEventListener(DOMString, EventListener, [object Object],[object Object])
+PASS EventTarget interface: operation dispatchEvent(Event)
+FAIL NavigationPreloadManager interface: existence and properties of interface object assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing
+FAIL NavigationPreloadManager interface object length assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing
+FAIL NavigationPreloadManager interface object name assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing
+FAIL NavigationPreloadManager interface: existence and properties of interface prototype object assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing
+FAIL NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing
+FAIL NavigationPreloadManager interface: operation enable() assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing
+FAIL NavigationPreloadManager interface: operation disable() assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing
+FAIL NavigationPreloadManager interface: operation setHeaderValue(ByteString) assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing
+FAIL NavigationPreloadManager interface: operation getState() assert_own_property: self does not have own property "NavigationPreloadManager" expected property "NavigationPreloadManager" missing
+PASS Cache interface: existence and properties of interface object
+PASS Cache interface object length
+PASS Cache interface object name
+PASS Cache interface: existence and properties of interface prototype object
+PASS Cache interface: existence and properties of interface prototype object's "constructor" property
+PASS Cache interface: operation match(RequestInfo, CacheQueryOptions)
+PASS Cache interface: operation matchAll(RequestInfo, CacheQueryOptions)
+PASS Cache interface: operation add(RequestInfo)
+PASS Cache interface: operation addAll([object Object])
+PASS Cache interface: operation put(RequestInfo, Response)
+PASS Cache interface: operation delete(RequestInfo, CacheQueryOptions)
+PASS Cache interface: operation keys(RequestInfo, CacheQueryOptions)
+PASS Cache must be primary interface of self.cacheInstance
+PASS Stringification of self.cacheInstance
+PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type
+PASS Cache interface: calling match(RequestInfo, CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
+PASS Cache interface: self.cacheInstance must inherit property "matchAll(RequestInfo, CacheQueryOptions)" with the proper type
+PASS Cache interface: calling matchAll(RequestInfo, CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
+PASS Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type
+PASS Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError
+PASS Cache interface: self.cacheInstance must inherit property "addAll([object Object])" with the proper type
+PASS Cache interface: calling addAll([object Object]) on self.cacheInstance with too few arguments must throw TypeError
+PASS Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type
+PASS Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError
+PASS Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, CacheQueryOptions)" with the proper type
+PASS Cache interface: calling delete(RequestInfo, CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
+PASS Cache interface: self.cacheInstance must inherit property "keys(RequestInfo, CacheQueryOptions)" with the proper type
+PASS Cache interface: calling keys(RequestInfo, CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
+PASS CacheStorage interface: existence and properties of interface object
+PASS CacheStorage interface object length
+PASS CacheStorage interface object name
+PASS CacheStorage interface: existence and properties of interface prototype object
+PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property
+PASS CacheStorage interface: operation match(RequestInfo, CacheQueryOptions)
+PASS CacheStorage interface: operation has(DOMString)
+PASS CacheStorage interface: operation open(DOMString)
+PASS CacheStorage interface: operation delete(DOMString)
+PASS CacheStorage interface: operation keys()
+PASS CacheStorage must be primary interface of self.caches
+PASS Stringification of self.caches
+PASS CacheStorage interface: self.caches must inherit property "match(RequestInfo, CacheQueryOptions)" with the proper type
+PASS CacheStorage interface: calling match(RequestInfo, CacheQueryOptions) on self.caches with too few arguments must throw TypeError
+PASS CacheStorage interface: self.caches must inherit property "has(DOMString)" with the proper type
+PASS CacheStorage interface: calling has(DOMString) on self.caches with too few arguments must throw TypeError
+PASS CacheStorage interface: self.caches must inherit property "open(DOMString)" with the proper type
+PASS CacheStorage interface: calling open(DOMString) on self.caches with too few arguments must throw TypeError
+PASS CacheStorage interface: self.caches must inherit property "delete(DOMString)" with the proper type
+PASS CacheStorage interface: calling delete(DOMString) on self.caches with too few arguments must throw TypeError
+PASS CacheStorage interface: self.caches must inherit property "keys()" with the proper type
Modified: trunk/Source/WebCore/ChangeLog (225565 => 225566)
--- trunk/Source/WebCore/ChangeLog 2017-12-06 03:54:51 UTC (rev 225565)
+++ trunk/Source/WebCore/ChangeLog 2017-12-06 04:47:00 UTC (rev 225566)
@@ -1,3 +1,21 @@
+2017-12-05 Chris Dumez <[email protected]>
+
+ ServiceWorkerGlobalScope prototype chain should be immutable
+ https://bugs.webkit.org/show_bug.cgi?id=180450
+
+ Reviewed by Youenn Fablet.
+
+ ServiceWorkerGlobalScope prototype chain should be immutable, similarly
+ to what we do for DOMWindow. This is covered by a web-platform-test
+ which was timing out because it was successfuly overwriting the
+ ServiceWorkerGlobalScope prototype.
+
+ No new tests, rebaselined existing test.
+
+ * workers/DedicatedWorkerGlobalScope.idl:
+ * workers/WorkerGlobalScope.idl:
+ * workers/service/ServiceWorkerGlobalScope.idl:
+
2017-12-05 Basuke Suzuki <[email protected]>
Fast binding generation by batching several files at once
Modified: trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.idl (225565 => 225566)
--- trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.idl 2017-12-06 03:54:51 UTC (rev 225565)
+++ trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.idl 2017-12-06 04:47:00 UTC (rev 225566)
@@ -33,6 +33,8 @@
Exposed=DedicatedWorker,
Global=(Worker,DedicatedWorker),
JSGenerateToNativeObject,
+ IsImmutablePrototypeExoticObject,
+ IsImmutablePrototypeExoticObjectOnPrototype,
] interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
[CallWith=ScriptState, MayThrowException] void postMessage(any message, optional sequence<object> transfer = []);
Modified: trunk/Source/WebCore/workers/WorkerGlobalScope.idl (225565 => 225566)
--- trunk/Source/WebCore/workers/WorkerGlobalScope.idl 2017-12-06 03:54:51 UTC (rev 225565)
+++ trunk/Source/WebCore/workers/WorkerGlobalScope.idl 2017-12-06 04:47:00 UTC (rev 225566)
@@ -28,6 +28,8 @@
Exposed=Worker,
JSCustomMarkFunction,
JSLegacyParent=JSWorkerGlobalScopeBase,
+ IsImmutablePrototypeExoticObject,
+ IsImmutablePrototypeExoticObjectOnPrototype,
] interface WorkerGlobalScope : EventTarget {
readonly attribute WorkerGlobalScope self;
Modified: trunk/Source/WebCore/workers/service/ServiceWorkerGlobalScope.idl (225565 => 225566)
--- trunk/Source/WebCore/workers/service/ServiceWorkerGlobalScope.idl 2017-12-06 03:54:51 UTC (rev 225565)
+++ trunk/Source/WebCore/workers/service/ServiceWorkerGlobalScope.idl 2017-12-06 04:47:00 UTC (rev 225566)
@@ -30,6 +30,8 @@
Conditional=SERVICE_WORKER,
EnabledAtRuntime=ServiceWorker,
JSCustomMarkFunction,
+ IsImmutablePrototypeExoticObject,
+ IsImmutablePrototypeExoticObjectOnPrototype,
] interface ServiceWorkerGlobalScope : WorkerGlobalScope {
[SameObject] readonly attribute ServiceWorkerClients clients;
[SameObject] readonly attribute ServiceWorkerRegistration registration;