gecko/dom/browser-element/mochitest/browserFrameHelpers.js
Justin Lebar 50a8cd5b10 Bug 762049 - Part 2: Make remaining tests both in-process and OOP. r=mounir
--HG--
rename : dom/browser-element/mochitest/test_browserFrameAlert.html => dom/browser-element/mochitest/browserElement_Alert.js
rename : dom/browser-element/mochitest/test_browserFrame5.html => dom/browser-element/mochitest/browserElement_DataURI.js
rename : dom/browser-element/mochitest/test_browserFrame9.html => dom/browser-element/mochitest/browserElement_GetScreenshot.js
rename : dom/browser-element/mochitest/test_browserFrame8.html => dom/browser-element/mochitest/browserElement_Iconchange.js
rename : dom/browser-element/mochitest/test_browserFrame_keyEvents.html => dom/browser-element/mochitest/browserElement_KeyEvents.js
rename : dom/browser-element/mochitest/test_browserFrame4.html => dom/browser-element/mochitest/browserElement_LoadEvents.js
rename : dom/browser-element/mochitest/test_browserFramePromptCheck.html => dom/browser-element/mochitest/browserElement_PromptCheck.js
rename : dom/browser-element/mochitest/test_browserFramePromptConfirm.html => dom/browser-element/mochitest/browserElement_PromptConfirm.js
rename : dom/browser-element/mochitest/test_browserFrame10.html => dom/browser-element/mochitest/browserElement_SetVisible.js
rename : dom/browser-element/mochitest/test_browserFrame6.html => dom/browser-element/mochitest/browserElement_Titlechange.js
rename : dom/browser-element/mochitest/test_browserFrame7.html => dom/browser-element/mochitest/browserElement_TopBarrier.js
extra : rebase_source : 75bc5b99f8d2327da4c7b7d7ade058dace7e77b3
2012-06-07 14:18:02 -04:00

139 lines
3.9 KiB
JavaScript

"use strict";
// Helpers for managing the browser frame preferences.
const browserFrameHelpers = {
_getBoolPref: function(pref) {
try {
return SpecialPowers.getBoolPref(pref);
}
catch (e) {
return undefined;
}
},
_setBoolPref: function(pref, value) {
if (value !== undefined) {
SpecialPowers.setBoolPref(pref, value);
}
else {
SpecialPowers.clearUserPref(pref);
}
},
_getCharPref: function(pref) {
try {
return SpecialPowers.getCharPref(pref);
}
catch (e) {
return undefined;
}
},
_setCharPref: function(pref, value) {
if (value !== undefined) {
SpecialPowers.setCharPref(pref, value);
}
else {
SpecialPowers.clearUserPref(pref);
}
},
getEnabledPref: function() {
return this._getBoolPref('dom.mozBrowserFramesEnabled');
},
setEnabledPref: function(value) {
this._setBoolPref('dom.mozBrowserFramesEnabled', value);
},
getWhitelistPref: function() {
return this._getCharPref('dom.mozBrowserFramesWhitelist');
},
setWhitelistPref: function(whitelist) {
this._setCharPref('dom.mozBrowserFramesWhitelist', whitelist);
},
getOOPDisabledPref: function() {
return this._getBoolPref('dom.ipc.tabs.disabled');
},
setOOPDisabledPref: function(value) {
this._setBoolPref('dom.ipc.tabs.disabled', value);
},
getOOPByDefaultPref: function() {
return this._getBoolPref("dom.ipc.browser_frames.oop_by_default");
},
setOOPByDefaultPref: function(value) {
return this._setBoolPref("dom.ipc.browser_frames.oop_by_default", value);
},
getPageThumbsEnabledPref: function() {
return this._getBoolPref('browser.pageThumbs.enabled');
},
setPageThumbsEnabledPref: function(value) {
this._setBoolPref('browser.pageThumbs.enabled', value);
},
addToWhitelist: function() {
var whitelist = this.getWhitelistPref();
whitelist += ', http://' + window.location.host + ', ';
this.setWhitelistPref(whitelist);
},
restoreOriginalPrefs: function() {
this.setEnabledPref(this.origEnabledPref);
this.setWhitelistPref(this.origWhitelistPref);
this.setOOPDisabledPref(this.origOOPDisabledPref);
this.setOOPByDefaultPref(this.origOOPByDefaultPref);
this.setPageThumbsEnabledPref(this.origPageThumbsEnabledPref);
},
'origEnabledPref': null,
'origWhitelistPref': null,
'origOOPDisabledPref': null,
'origOOPByDefaultPref': null,
'origPageThumbsEnabledPref': null,
// Two basically-empty pages from two different domains you can load.
'emptyPage1': 'http://example.com' +
window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/')) +
'/file_empty.html',
'emptyPage2': 'http://example.org' +
window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/')) +
'/file_empty.html',
'focusPage': 'http://example.org' +
window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/')) +
'/file_focus.html',
};
browserFrameHelpers.origEnabledPref = browserFrameHelpers.getEnabledPref();
browserFrameHelpers.origWhitelistPref = browserFrameHelpers.getWhitelistPref();
browserFrameHelpers.origOOPDisabledPref = browserFrameHelpers.getOOPDisabledPref();
browserFrameHelpers.origOOPByDefaultPref = browserFrameHelpers.getOOPByDefaultPref();
browserFrameHelpers.origPageThumbsEnabledPref = browserFrameHelpers.getPageThumbsEnabledPref();
// Disable tab view; it seriously messes us up.
browserFrameHelpers.setPageThumbsEnabledPref(false);
// Enable or disable OOP depending on the test's filename.
var oop;
if (location.pathname.indexOf("_inproc_") != -1) {
oop = false;
}
else {
// oop by default
oop = true;
}
browserFrameHelpers.setOOPByDefaultPref(oop);
browserFrameHelpers.setOOPDisabledPref(false);
addEventListener('unload', function() {
browserFrameHelpers.restoreOriginalPrefs();
});