mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-01 00:32:11 +00:00
Bug 709490 - Part 10: Using mechanism in RuntimeService to get pref in worker thread instead of gfxPref. r=baku
--HG-- extra : rebase_source : 55ae1e1fc1f88bffd43800eefaed4506789e608c
This commit is contained in:
parent
dd98b66ab0
commit
d1d37e3f9b
@ -210,7 +210,13 @@ OffscreenCanvas::CreateFromCloneData(OffscreenCanvasCloneData* aData)
|
||||
/* static */ bool
|
||||
OffscreenCanvas::PrefEnabled(JSContext* aCx, JSObject* aObj)
|
||||
{
|
||||
return gfxPrefs::OffscreenCanvasEnabled();
|
||||
if (NS_IsMainThread()) {
|
||||
return Preferences::GetBool("gfx.offscreencanvas.enabled");
|
||||
} else {
|
||||
WorkerPrivate* workerPrivate = GetWorkerPrivateFromContext(aCx);
|
||||
MOZ_ASSERT(workerPrivate);
|
||||
return workerPrivate->OffscreenCanvasEnabled();
|
||||
}
|
||||
}
|
||||
|
||||
/* static */ bool
|
||||
|
@ -170,6 +170,7 @@ static_assert(MAX_WORKERS_PER_DOMAIN >= 1,
|
||||
#define PREF_INTERCEPTION_OPAQUE_ENABLED "dom.serviceWorkers.interception.opaque.enabled"
|
||||
#define PREF_PUSH_ENABLED "dom.push.enabled"
|
||||
#define PREF_REQUESTCONTEXT_ENABLED "dom.requestcontext.enabled"
|
||||
#define PREF_OFFSCREENCANVAS_ENABLED "gfx.offscreencanvas.enabled"
|
||||
|
||||
namespace {
|
||||
|
||||
@ -1963,6 +1964,10 @@ RuntimeService::Init()
|
||||
WorkerPrefChanged,
|
||||
PREF_REQUESTCONTEXT_ENABLED,
|
||||
reinterpret_cast<void *>(WORKERPREF_REQUESTCONTEXT))) ||
|
||||
NS_FAILED(Preferences::RegisterCallbackAndCall(
|
||||
WorkerPrefChanged,
|
||||
PREF_OFFSCREENCANVAS_ENABLED,
|
||||
reinterpret_cast<void *>(WORKERPREF_OFFSCREENCANVAS))) ||
|
||||
NS_FAILED(Preferences::RegisterCallback(LoadRuntimeOptions,
|
||||
PREF_JS_OPTIONS_PREFIX,
|
||||
nullptr)) ||
|
||||
@ -2202,6 +2207,10 @@ RuntimeService::Cleanup()
|
||||
WorkerPrefChanged,
|
||||
PREF_REQUESTCONTEXT_ENABLED,
|
||||
reinterpret_cast<void *>(WORKERPREF_REQUESTCONTEXT))) ||
|
||||
NS_FAILED(Preferences::UnregisterCallback(
|
||||
WorkerPrefChanged,
|
||||
PREF_OFFSCREENCANVAS_ENABLED,
|
||||
reinterpret_cast<void *>(WORKERPREF_OFFSCREENCANVAS))) ||
|
||||
#if DUMP_CONTROLLED_BY_PREF
|
||||
NS_FAILED(Preferences::UnregisterCallback(
|
||||
WorkerPrefChanged,
|
||||
@ -2780,6 +2789,7 @@ RuntimeService::WorkerPrefChanged(const char* aPrefName, void* aClosure)
|
||||
case WORKERPREF_SERVICEWORKERS_TESTING:
|
||||
case WORKERPREF_PUSH:
|
||||
case WORKERPREF_REQUESTCONTEXT:
|
||||
case WORKERPREF_OFFSCREENCANVAS:
|
||||
sDefaultPreferences[key] = Preferences::GetBool(aPrefName, false);
|
||||
break;
|
||||
|
||||
|
@ -1327,6 +1327,13 @@ public:
|
||||
return mPreferences[WORKERPREF_REQUESTCONTEXT];
|
||||
}
|
||||
|
||||
bool
|
||||
OffscreenCanvasEnabled() const
|
||||
{
|
||||
AssertIsOnWorkerThread();
|
||||
return mPreferences[WORKERPREF_OFFSCREENCANVAS];
|
||||
}
|
||||
|
||||
bool
|
||||
OnLine() const
|
||||
{
|
||||
|
@ -209,6 +209,7 @@ enum WorkerPreference
|
||||
WORKERPREF_PERFORMANCE_LOGGING_ENABLED, // dom.performance.enable_user_timing_logging
|
||||
WORKERPREF_PUSH, // dom.push.enabled
|
||||
WORKERPREF_REQUESTCONTEXT, // dom.requestcontext.enabled
|
||||
WORKERPREF_OFFSCREENCANVAS, // gfx.offscreencanvas.enabled
|
||||
WORKERPREF_COUNT
|
||||
};
|
||||
|
||||
|
@ -248,7 +248,6 @@ private:
|
||||
DECL_GFX_PREF(Live, "gfx.layerscope.port", LayerScopePort, int32_t, 23456);
|
||||
// Note that "gfx.logging.level" is defined in Logging.h
|
||||
DECL_GFX_PREF(Once, "gfx.logging.crash.length", GfxLoggingCrashLength, uint32_t, 6);
|
||||
DECL_GFX_PREF(Live, "gfx.offscreencanvas.enabled", OffscreenCanvasEnabled, bool, false);
|
||||
DECL_GFX_PREF(Live, "gfx.perf-warnings.enabled", PerfWarnings, bool, false);
|
||||
DECL_GFX_PREF(Live, "gfx.SurfaceTexture.detach.enabled", SurfaceTextureDetachEnabled, bool, true);
|
||||
DECL_GFX_PREF(Live, "gfx.testing.device-reset", DeviceResetForTesting, int32_t, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user