Skip to content

Commit

Permalink
Bug 1766691 - Add a pref per origin trial. r=k88hudson
Browse files Browse the repository at this point in the history
This will allow more fine-grained control on a per-trial basis.

Differential Revision: https://phabricator.services.mozilla.com/D144874
  • Loading branch information
emilio committed Apr 29, 2022
1 parent 4c8c858 commit d81fe6c
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
21 changes: 21 additions & 0 deletions dom/origin-trials/OriginTrials.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -169,12 +169,33 @@ OriginTrials OriginTrials::FromWindow(const nsGlobalWindowInner* aWindow) {
return doc->Trials();
}

static int32_t PrefState(OriginTrial aTrial) {
switch (aTrial) {
case OriginTrial::TestTrial:
return StaticPrefs::dom_origin_trials_test_trial_state();
case OriginTrial::MAX:
MOZ_ASSERT_UNREACHABLE("Unknown trial!");
break;
}
return 0;
}

bool OriginTrials::IsEnabled(JSContext* aCx, JSObject* aObject,
OriginTrial aTrial) {
if (nsContentUtils::ThreadsafeIsSystemCaller(aCx)) {
return true;
}
LOG("OriginTrials::IsEnabled(%d)\n", int(aTrial));

switch (PrefState(aTrial)) {
case 1:
return true;
case 2:
return false;
default:
break;
}

nsIGlobalObject* global = xpc::CurrentNativeGlobal(aCx);
MOZ_ASSERT(global);
return global && global->Trials().IsEnabled(aTrial);
Expand Down
7 changes: 7 additions & 0 deletions modules/libpref/init/StaticPrefList.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2855,6 +2855,13 @@
value: false
mirror: always

# Origin trial state for "TestTrial".
# 0: normal, 1: always-enabled, 2: always-disabled
- name: dom.origin-trials.test-trial.state
type: RelaxedAtomicInt32
value: 0
mirror: always

# Is support for Window.paintWorklet enabled?
- name: dom.paintWorklet.enabled
type: bool
Expand Down

0 comments on commit d81fe6c

Please sign in to comment.