Bug 1103411 - EventStateManager may call AddBoolVarCache multiple times and crash. r=bugs

--HG--
extra : rebase_source : 19c5ff83a2799c6dcb5eb305f2c30c62cae2805a
This commit is contained in:
Oleg Romashin 2014-12-16 23:48:21 -08:00
Родитель 2053341888
Коммит 26d1564a4a
1 изменённых файлов: 13 добавлений и 8 удалений

Просмотреть файл

@ -5486,10 +5486,18 @@ int32_t EventStateManager::Prefs::sContentAccessModifierMask = 0;
void
EventStateManager::Prefs::Init()
{
DebugOnly<nsresult> rv =
Preferences::AddBoolVarCache(&sKeyCausesActivation,
"accessibility.accesskeycausesactivation",
sKeyCausesActivation);
DebugOnly<nsresult> rv = Preferences::RegisterCallback(OnChange, "dom.popup_allowed_events");
MOZ_ASSERT(NS_SUCCEEDED(rv),
"Failed to observe \"dom.popup_allowed_events\"");
static bool sPrefsAlreadyCached = false;
if (sPrefsAlreadyCached) {
return;
}
rv = Preferences::AddBoolVarCache(&sKeyCausesActivation,
"accessibility.accesskeycausesactivation",
sKeyCausesActivation);
MOZ_ASSERT(NS_SUCCEEDED(rv),
"Failed to observe \"accessibility.accesskeycausesactivation\"");
rv = Preferences::AddBoolVarCache(&sClickHoldContextMenu,
@ -5512,10 +5520,7 @@ EventStateManager::Prefs::Init()
sContentAccessModifierMask);
MOZ_ASSERT(NS_SUCCEEDED(rv),
"Failed to observe \"ui.key.contentAccess\"");
rv = Preferences::RegisterCallback(OnChange, "dom.popup_allowed_events");
MOZ_ASSERT(NS_SUCCEEDED(rv),
"Failed to observe \"dom.popup_allowed_events\"");
sPrefsAlreadyCached = true;
}
// static