☠☠ backed out by 48347c4899df ☠ ☠ | |
author | Ben Kelly <ben@wanderview.com> |
Thu, 02 Jul 2015 14:34:00 -0700 | |
changeset 251198 | 48abf470ef5b50ab1e8d1229a866c29adf130622 |
parent 251197 | fa4e7b0b946bba1f64cee3edafe420a2dfcb80a1 |
child 251199 | e8ac89eafb1dd37afe6660bad5e162acfd366c78 |
push id | 61794 |
push user | bkelly@mozilla.com |
push date | Thu, 02 Jul 2015 21:34:03 +0000 |
treeherder | mozilla-inbound@1c9c72d93973 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | ehsan |
bugs | 1167808 |
milestone | 42.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/dom/workers/RuntimeService.cpp +++ b/dom/workers/RuntimeService.cpp @@ -160,16 +160,17 @@ static_assert(MAX_WORKERS_PER_DOMAIN >= #define PREF_DOM_CACHES_ENABLED "dom.caches.enabled" #define PREF_DOM_CACHES_TESTING_ENABLED "dom.caches.testing.enabled" #define PREF_DOM_WORKERNOTIFICATION_ENABLED "dom.webnotifications.enabled" #define PREF_WORKERS_LATEST_JS_VERSION "dom.workers.latestJSVersion" #define PREF_INTL_ACCEPT_LANGUAGES "intl.accept_languages" #define PREF_SERVICEWORKERS_ENABLED "dom.serviceWorkers.enabled" #define PREF_SERVICEWORKERS_TESTING_ENABLED "dom.serviceWorkers.testing.enabled" #define PREF_INTERCEPTION_ENABLED "dom.serviceWorkers.interception.enabled" +#define PREF_INTERCEPTION_OPAQUE_ENABLED "dom.serviceWorkers.interception.opaque.enabled" namespace { const uint32_t kNoIndex = uint32_t(-1); const JS::ContextOptions kRequiredContextOptions = JS::ContextOptions().setDontReportUncaught(true); @@ -1929,16 +1930,20 @@ RuntimeService::Init() PREF_SERVICEWORKERS_ENABLED, reinterpret_cast<void *>(WORKERPREF_SERVICEWORKERS))) || NS_FAILED(Preferences::RegisterCallbackAndCall( WorkerPrefChanged, PREF_INTERCEPTION_ENABLED, reinterpret_cast<void *>(WORKERPREF_INTERCEPTION_ENABLED))) || NS_FAILED(Preferences::RegisterCallbackAndCall( WorkerPrefChanged, + PREF_INTERCEPTION_OPAQUE_ENABLED, + reinterpret_cast<void *>(WORKERPREF_INTERCEPTION_OPAQUE_ENABLED))) || + NS_FAILED(Preferences::RegisterCallbackAndCall( + WorkerPrefChanged, PREF_DOM_CACHES_TESTING_ENABLED, reinterpret_cast<void *>(WORKERPREF_DOM_CACHES_TESTING))) || NS_FAILED(Preferences::RegisterCallbackAndCall( WorkerPrefChanged, PREF_SERVICEWORKERS_TESTING_ENABLED, reinterpret_cast<void *>(WORKERPREF_SERVICEWORKERS_TESTING))) || NS_FAILED(Preferences::RegisterCallback(LoadRuntimeOptions, PREF_JS_OPTIONS_PREFIX, @@ -2140,16 +2145,20 @@ RuntimeService::Cleanup() PREF_SERVICEWORKERS_TESTING_ENABLED, reinterpret_cast<void *>(WORKERPREF_SERVICEWORKERS_TESTING))) || NS_FAILED(Preferences::UnregisterCallback( WorkerPrefChanged, PREF_DOM_CACHES_TESTING_ENABLED, reinterpret_cast<void *>(WORKERPREF_DOM_CACHES_TESTING))) || NS_FAILED(Preferences::UnregisterCallback( WorkerPrefChanged, + PREF_INTERCEPTION_OPAQUE_ENABLED, + reinterpret_cast<void *>(WORKERPREF_INTERCEPTION_OPAQUE_ENABLED))) || + NS_FAILED(Preferences::UnregisterCallback( + WorkerPrefChanged, PREF_INTERCEPTION_ENABLED, reinterpret_cast<void *>(WORKERPREF_INTERCEPTION_ENABLED))) || NS_FAILED(Preferences::UnregisterCallback( WorkerPrefChanged, PREF_SERVICEWORKERS_ENABLED, reinterpret_cast<void *>(WORKERPREF_SERVICEWORKERS))) || NS_FAILED(Preferences::UnregisterCallback( WorkerPrefChanged, @@ -2699,16 +2708,17 @@ RuntimeService::WorkerPrefChanged(const switch (key) { case WORKERPREF_DOM_CACHES: case WORKERPREF_DOM_CACHES_TESTING: case WORKERPREF_DOM_WORKERNOTIFICATION: #ifdef DUMP_CONTROLLED_BY_PREF case WORKERPREF_DUMP: #endif case WORKERPREF_INTERCEPTION_ENABLED: + case WORKERPREF_INTERCEPTION_OPAQUE_ENABLED: case WORKERPREF_SERVICEWORKERS: case WORKERPREF_SERVICEWORKERS_TESTING: sDefaultPreferences[key] = Preferences::GetBool(aPrefName, false); break; default: MOZ_ASSERT_UNREACHABLE("Invalid pref key"); break;
--- a/dom/workers/WorkerPrivate.h +++ b/dom/workers/WorkerPrivate.h @@ -1287,16 +1287,23 @@ public: bool InterceptionEnabled() const { AssertIsOnWorkerThread(); return mPreferences[WORKERPREF_INTERCEPTION_ENABLED]; } bool + OpaqueInterceptionEnabled() const + { + AssertIsOnWorkerThread(); + return mPreferences[WORKERPREF_INTERCEPTION_OPAQUE_ENABLED]; + } + + bool DOMWorkerNotificationEnabled() const { AssertIsOnWorkerThread(); return mPreferences[WORKERPREF_DOM_WORKERNOTIFICATION]; } bool DOMCachesTestingEnabled() const
--- a/dom/workers/Workers.h +++ b/dom/workers/Workers.h @@ -197,16 +197,17 @@ enum WorkerPreference { WORKERPREF_DUMP = 0, // browser.dom.window.dump.enabled WORKERPREF_DOM_CACHES, // dom.caches.enabled WORKERPREF_SERVICEWORKERS, // dom.serviceWorkers.enabled WORKERPREF_INTERCEPTION_ENABLED, // dom.serviceWorkers.interception.enabled WORKERPREF_DOM_WORKERNOTIFICATION, // dom.webnotifications.workers.enabled WORKERPREF_DOM_CACHES_TESTING, // dom.caches.testing.enabled WORKERPREF_SERVICEWORKERS_TESTING, // dom.serviceWorkers.testing.enabled + WORKERPREF_INTERCEPTION_OPAQUE_ENABLED, // dom.serviceWorkers.interception.opaque.enabled WORKERPREF_COUNT }; // Implemented in WorkerPrivate.cpp struct WorkerLoadInfo { // All of these should be released in WorkerPrivateParent::ForgetMainThreadObjects.
--- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -130,16 +130,22 @@ pref("dom.workers.enabled", true); pref("dom.workers.maxPerDomain", 20); // Whether or not Shared Web Workers are enabled. pref("dom.workers.sharedWorkers.enabled", true); // Service workers pref("dom.serviceWorkers.enabled", false); +// Allow service workers to intercept network requests using the fetch event +pref("dom.serviceWorkers.interception.enabled", false); + +// Allow service workers to intercept opaque (cross origin) responses +pref("dom.serviceWorkers.interception.opaque.enabled", false); + // Whether nonzero values can be returned from performance.timing.* pref("dom.enable_performance", true); // Whether resource timing will be gathered and returned by performance.GetEntries* pref("dom.enable_resource_timing", true); // Enable high-resolution timing markers for users pref("dom.enable_user_timing", true);