Bug 755001 - Allow <iframe mozbrowser> to be explicitly in- or out-of-process. r=smaug

This commit is contained in:
Justin Lebar 2012-05-15 12:36:33 -04:00
Родитель 1926a81f65
Коммит ca35bc7228
2 изменённых файлов: 16 добавлений и 7 удалений

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

@ -425,10 +425,12 @@ pref("browser.link.open_newwindow", 3);
// 2: don't divert window.open with features
pref("browser.link.open_newwindow.restriction", 0);
// Enable browser frames, but not OOP.
// Enable browser frames (including OOP), but make in-process browser frames
// the default.
pref("dom.mozBrowserFramesEnabled", true);
pref("dom.mozBrowserFramesWhitelist", "http://homescreen.gaiamobile.org,http://browser.gaiamobile.org");
pref("dom.ipc.tabs.disabled", true);
pref("dom.ipc.tabs.disabled", false);
pref("dom.ipc.browser_frames.oop_by_default", false);
// Temporary permission hack for WebSMS
pref("dom.sms.enabled", true);

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

@ -1400,11 +1400,18 @@ nsFrameLoader::ShouldUseRemoteProcess()
return false;
}
return OwnerIsBrowserFrame() ||
(bool) mOwnerContent->AttrValueIs(kNameSpaceID_None,
nsGkAtoms::Remote,
nsGkAtoms::_true,
eCaseMatters);
// If we're an <iframe mozbrowser> and we don't have a "remote" attribute,
// fall back to the default.
if (OwnerIsBrowserFrame() &&
!mOwnerContent->HasAttr(kNameSpaceID_None, nsGkAtoms::Remote)) {
return Preferences::GetBool("dom.ipc.browser_frames.oop_by_default", false);
}
return mOwnerContent->AttrValueIs(kNameSpaceID_None,
nsGkAtoms::Remote,
nsGkAtoms::_true,
eCaseMatters);
}
nsresult