mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 01:05:45 +00:00
Bug 1570212 - Make security.turn_off_all_security... a non-VarCache pref. r=mccr8
This could be made into a static pref, but then it would be always defined and thus visible in about:config, which seems undesirable for such a senstive pre. So this patch uses a callback that makes it work just like the existing VarCache, i.e. it's not defined by default, in which case it defaults to false. Differential Revision: https://phabricator.services.mozilla.com/D40343 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
f6e8f9fa92
commit
9bc90adc09
@ -1210,3 +1210,21 @@ void xpc::YieldCooperativeContext() {
|
|||||||
void xpc::ResumeCooperativeContext() {
|
void xpc::ResumeCooperativeContext() {
|
||||||
JS_ResumeCooperativeContext(XPCJSContext::Get()->Context());
|
JS_ResumeCooperativeContext(XPCJSContext::Get()->Context());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void xpc::CacheAutomationPref(bool* aMirror) {
|
||||||
|
// The obvious thing is to make this pref a static pref. But then it would
|
||||||
|
// always be defined and always show up in about:config, and users could flip
|
||||||
|
// it, which we don't want. Instead we roll our own callback so that if the
|
||||||
|
// pref is undefined (the normal case) then sAutomationPrefIsSet is false and
|
||||||
|
// nothing shows up in about:config.
|
||||||
|
nsresult rv = mozilla::Preferences::RegisterCallbackAndCall(
|
||||||
|
[](const char* aPrefName, void* aData) {
|
||||||
|
auto aMirror = static_cast<bool*>(aData);
|
||||||
|
*aMirror =
|
||||||
|
mozilla::Preferences::GetBool(aPrefName, /* aFallback */ false);
|
||||||
|
},
|
||||||
|
"security."
|
||||||
|
"turn_off_all_security_so_that_viruses_can_take_over_this_computer",
|
||||||
|
static_cast<void*>(aMirror));
|
||||||
|
MOZ_RELEASE_ASSERT(NS_SUCCEEDED(rv));
|
||||||
|
}
|
||||||
|
@ -679,15 +679,13 @@ inline bool AreNonLocalConnectionsDisabled() {
|
|||||||
return disabledForTest;
|
return disabledForTest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CacheAutomationPref(bool* aPref);
|
||||||
|
|
||||||
inline bool IsInAutomation() {
|
inline bool IsInAutomation() {
|
||||||
static bool sAutomationPrefIsSet;
|
static bool sAutomationPrefIsSet = false;
|
||||||
static bool sPrefCacheAdded = false;
|
static bool sPrefCacheAdded = false;
|
||||||
if (!sPrefCacheAdded) {
|
if (!sPrefCacheAdded) {
|
||||||
mozilla::Preferences::AddBoolVarCache(
|
CacheAutomationPref(&sAutomationPrefIsSet);
|
||||||
&sAutomationPrefIsSet,
|
|
||||||
"security.turn_off_all_security_so_that_viruses_can_take_over_this_"
|
|
||||||
"computer",
|
|
||||||
false);
|
|
||||||
sPrefCacheAdded = true;
|
sPrefCacheAdded = true;
|
||||||
}
|
}
|
||||||
return sAutomationPrefIsSet && AreNonLocalConnectionsDisabled();
|
return sAutomationPrefIsSet && AreNonLocalConnectionsDisabled();
|
||||||
|
Loading…
Reference in New Issue
Block a user