From 4bed2bc5650f13aff364c82cab10a181f7278da7 Mon Sep 17 00:00:00 2001 From: Yaron Tausky Date: Tue, 7 Aug 2018 11:48:51 +0000 Subject: [PATCH] Bug 1264182: Hide URL.createObjectURL from ServiceWorker r=mrbkap,asuth The appropriate lifetime for URLs created with URL.createObjectURL turned out to be tricky to define, so it was decided to hide it from service workers altogether. (https://github.com/slightlyoff/ServiceWorker/issues/688) This commit implements this change and adds a web platform test to verify it. It also exposes the MediaSource variant of URL.createObjectURL in DedicatedWorker and SharedWorker contexts in order to comply with the WebIDL spec (see https://github.com/w3c/media-source/issues/168#issuecomment-410269436). Differential Revision: https://phabricator.services.mozilla.com/D2728 --- dom/webidl/URL.webidl | 5 ++--- .../service-worker/resources/interfaces-worker.sub.js | 4 ++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/dom/webidl/URL.webidl b/dom/webidl/URL.webidl index c9657b47be02..b04e8f58e7b4 100644 --- a/dom/webidl/URL.webidl +++ b/dom/webidl/URL.webidl @@ -40,6 +40,7 @@ interface URL { USVString toJSON(); }; +[Exposed=(Window,DedicatedWorker,SharedWorker)] partial interface URL { [Throws] static DOMString createObjectURL(Blob blob); @@ -47,10 +48,8 @@ partial interface URL { static void revokeObjectURL(DOMString url); [ChromeOnly, Throws] static boolean isValidURL(DOMString url); -}; -// https://dvcs.w3.org/hg/html-media/raw-file/default/media-source/media-source.html -partial interface URL { + // https://dvcs.w3.org/hg/html-media/raw-file/default/media-source/media-source.html [Throws] static DOMString createObjectURL(MediaSource source); }; diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/interfaces-worker.sub.js b/testing/web-platform/tests/service-workers/service-worker/resources/interfaces-worker.sub.js index 10fe14d5becd..56bc8af445d5 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/interfaces-worker.sub.js +++ b/testing/web-platform/tests/service-workers/service-worker/resources/interfaces-worker.sub.js @@ -93,3 +93,7 @@ test(function() { test(() => { assert_false('XMLHttpRequest' in self); }, 'xhr is not exposed'); + +test(() => { + assert_false('createObjectURL' in self.URL); + }, 'URL.createObjectURL is not exposed')