mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-30 00:01:50 +00:00
Bug 596762: Allow specification of differing IPC preferences for each architecture in a universal binary. r=josh a=blocking-b7
This commit is contained in:
parent
db3096c4b6
commit
5842fbcc5f
@ -933,14 +933,12 @@ pref("toolbar.customization.usesheet", false);
|
||||
// The default for this pref reflects whether the build is capable of IPC.
|
||||
// (Turning it on in a no-IPC build will have no effect.)
|
||||
#ifdef XP_MACOSX
|
||||
// OSX still has only partial support for IPC. Note that the PowerPC
|
||||
// and x86 builds must generate identical copies of this file, so we
|
||||
// can't make the prefs indicate that IPC is not available at all in
|
||||
// PowerPC builds.
|
||||
pref("dom.ipc.plugins.enabled", false);
|
||||
// These plug-ins will run OOP by default
|
||||
pref("dom.ipc.plugins.enabled.flash player.plugin", true);
|
||||
pref("dom.ipc.plugins.enabled.javaplugin2_npapi.plugin", true);
|
||||
// i386 ipc preferences
|
||||
pref("dom.ipc.plugins.enabled.i386", false);
|
||||
pref("dom.ipc.plugins.enabled.i386.flash player.plugin", true);
|
||||
pref("dom.ipc.plugins.enabled.i386.javaplugin2_npapi.plugin", true);
|
||||
// x86_64 ipc preferences
|
||||
pref("dom.ipc.plugins.enabled.x86_64", true);
|
||||
#elifdef MOZ_IPC
|
||||
pref("dom.ipc.plugins.enabled", true);
|
||||
#else
|
||||
|
@ -441,6 +441,30 @@ function BuildConditionSandbox(aURL) {
|
||||
getBoolPref: function(p) { return this._prefs.getBoolPref(p); },
|
||||
getIntPref: function(p) { return this._prefs.getIntPref(p); }
|
||||
}
|
||||
|
||||
sandbox.areOOPPenabled = function () {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var prefservice = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
.getService(CI.nsIPrefBranch);
|
||||
|
||||
var pref = false;
|
||||
|
||||
if (navigator.platform.indexOf("Mac") == 0) {
|
||||
var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"]
|
||||
.getService(CI.nsIXULAppInfo)
|
||||
.QueryInterface(CI.nsIXULRuntime);
|
||||
if (xulRuntime.XPCOMABI.match(/x86-/)) {
|
||||
pref = prefservice.getBoolPref("dom.ipc.plugins.enabled.i386");
|
||||
}
|
||||
else if (xulRuntime.XPCOMABI.match(/x86_64-/)) {
|
||||
pref = prefservice.getBoolPref("dom.ipc.plugins.enabled.x86_64");
|
||||
}
|
||||
}
|
||||
else {
|
||||
pref = prefservice.getBoolPref("dom.ipc.plugins.enabled");
|
||||
}
|
||||
return pref;
|
||||
};
|
||||
|
||||
dump("REFTEST INFO | Dumping JSON representation of sandbox \n");
|
||||
dump("REFTEST INFO | " + JSON.stringify(sandbox) + " \n");
|
||||
|
@ -373,7 +373,17 @@ nsNPAPIPlugin::RunPluginOOP(const nsPluginTag *aPluginTag)
|
||||
prefFile.Cut(0, slashPos + 1);
|
||||
ToLowerCase(prefFile);
|
||||
|
||||
#ifdef XP_MACOSX
|
||||
#if defined(__i386__)
|
||||
nsCAutoString prefGroupKey("dom.ipc.plugins.enabled.i386.");
|
||||
#elif defined(__x86_64__)
|
||||
nsCAutoString prefGroupKey("dom.ipc.plugins.enabled.x86_64.");
|
||||
#elif defined(__ppc__)
|
||||
nsCAutoString prefGroupKey("dom.ipc.plugins.enabled.ppc.");
|
||||
#endif
|
||||
#else
|
||||
nsCAutoString prefGroupKey("dom.ipc.plugins.enabled.");
|
||||
#endif
|
||||
|
||||
PRUint32 prefCount;
|
||||
char** prefNames;
|
||||
@ -413,7 +423,17 @@ nsNPAPIPlugin::RunPluginOOP(const nsPluginTag *aPluginTag)
|
||||
|
||||
if (!prefSet) {
|
||||
oopPluginsEnabled = PR_FALSE;
|
||||
#ifdef XP_MACOSX
|
||||
#if defined(__i386__)
|
||||
prefs->GetBoolPref("dom.ipc.plugins.enabled.i386", &oopPluginsEnabled);
|
||||
#elif defined(__x86_64__)
|
||||
prefs->GetBoolPref("dom.ipc.plugins.enabled.x86_64", &oopPluginsEnabled);
|
||||
#elif defined(__ppc__)
|
||||
prefs->GetBoolPref("dom.ipc.plugins.enabled.ppc", &oopPluginsEnabled);
|
||||
#endif
|
||||
#else
|
||||
prefs->GetBoolPref("dom.ipc.plugins.enabled", &oopPluginsEnabled);
|
||||
#endif
|
||||
}
|
||||
|
||||
return oopPluginsEnabled;
|
||||
|
@ -16,10 +16,7 @@
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function start() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
var prefs = Components.classes['@mozilla.org/preferences-service;1']
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
if (!prefs.getBoolPref('dom.ipc.plugins.enabled')) {
|
||||
if (!SimpleTest.areOOPPenabled()) {
|
||||
ok(true, "Skipping this test when IPC plugins are not enabled.");
|
||||
SimpleTest.finish();
|
||||
return;
|
||||
|
@ -12,10 +12,7 @@
|
||||
var iframe = document.getElementById('iframe1');
|
||||
|
||||
window.frameLoaded = function frameLoaded_toCrash() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
var prefs = Components.classes['@mozilla.org/preferences-service;1']
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
if (!prefs.getBoolPref('dom.ipc.plugins.enabled')) {
|
||||
if (!SimpleTest.areOOPPenabled()) {
|
||||
ok(true, "Skipping this test when IPC plugins are not enabled.");
|
||||
SimpleTest.finish();
|
||||
return;
|
||||
|
@ -92,10 +92,7 @@ function onPluginCrashed(aEvent) {
|
||||
}
|
||||
|
||||
function runTests() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
var prefs = Components.classes['@mozilla.org/preferences-service;1']
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
if (!prefs.getBoolPref('dom.ipc.plugins.enabled')) {
|
||||
if (!SimpleTest.areOOPPenabled()) {
|
||||
ok(true, "Skipping this test when IPC plugins are not enabled.");
|
||||
SimpleTest.finish();
|
||||
return;
|
||||
|
@ -94,10 +94,7 @@ function onPluginCrashed(aEvent) {
|
||||
}
|
||||
|
||||
function runTests() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
var prefs = Components.classes['@mozilla.org/preferences-service;1']
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
if (!prefs.getBoolPref('dom.ipc.plugins.enabled')) {
|
||||
if (!SimpleTest.areOOPPenabled()) {
|
||||
ok(true, "Skipping this test when IPC plugins are not enabled.");
|
||||
SimpleTest.finish();
|
||||
return;
|
||||
|
@ -93,9 +93,7 @@ function onPluginCrashed(aEvent) {
|
||||
}
|
||||
|
||||
function runTests() {
|
||||
var prefs = Components.classes['@mozilla.org/preferences-service;1']
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
if (!prefs.getBoolPref('dom.ipc.plugins.enabled')) {
|
||||
if (!SimpleTest.areOOPPenabled()) {
|
||||
ok(true, "Skipping this test when IPC plugins are not enabled.");
|
||||
SimpleTest.finish();
|
||||
return;
|
||||
|
@ -12,10 +12,7 @@
|
||||
var iframe = document.getElementById('iframe1');
|
||||
|
||||
window.frameLoaded = function frameLoaded_toCrash() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
var prefs = Components.classes['@mozilla.org/preferences-service;1']
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
if (!prefs.getBoolPref('dom.ipc.plugins.enabled')) {
|
||||
if (!SimpleTest.areOOPPenabled()) {
|
||||
ok(true, "Skipping this test when IPC plugins are not enabled.");
|
||||
SimpleTest.finish();
|
||||
return;
|
||||
|
@ -12,10 +12,7 @@
|
||||
var iframe = document.getElementById('iframe1');
|
||||
|
||||
function mainLoaded() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
var prefs = Components.classes['@mozilla.org/preferences-service;1']
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
if (!prefs.getBoolPref('dom.ipc.plugins.enabled')) {
|
||||
if (!SimpleTest.areOOPPenabled()) {
|
||||
ok(true, "Skipping this test when IPC plugins are not enabled.");
|
||||
SimpleTest.finish();
|
||||
return;
|
||||
|
@ -12,15 +12,16 @@
|
||||
var iframe = document.getElementById('iframe1');
|
||||
|
||||
window.frameLoaded = function frameLoaded_toCrash() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
var prefs = Components.classes['@mozilla.org/preferences-service;1']
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
if (!prefs.getBoolPref('dom.ipc.plugins.enabled')) {
|
||||
if (!SimpleTest.areOOPPenabled()) {
|
||||
ok(true, "Skipping this test when IPC plugins are not enabled.");
|
||||
SimpleTest.finish();
|
||||
return;
|
||||
}
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
var prefs = Components.classes['@mozilla.org/preferences-service;1']
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
|
||||
// the default timeout is annoying high for mochitest runs
|
||||
var timeoutPref = "dom.ipc.plugins.timeoutSecs";
|
||||
prefs.setIntPref(timeoutPref, 5);
|
||||
|
@ -6,7 +6,7 @@ fails-if(!haveTestPlugin) == plugin-alpha-opacity.html div-alpha-opacity.html
|
||||
fails-if(!haveTestPlugin) == windowless-clipping-1.html windowless-clipping-1-ref.html
|
||||
fails-if(!haveTestPlugin) == border-padding-1.html border-padding-1-ref.html
|
||||
fails-if(!haveTestPlugin) == border-padding-2.html border-padding-2-ref.html
|
||||
asserts-if(http.oscpu.match(/Linux/),0-1) random-if(d2d) fails-if(!haveTestPlugin) skip-if(!prefs.getBoolPref("dom.ipc.plugins.enabled")) == pluginproblemui-direction-1.html pluginproblemui-direction-1-ref.html # assertion is bug 585394
|
||||
asserts-if(http.oscpu.match(/Linux/),0-1) fails-if(!haveTestPlugin) skip-if(!prefs.getBoolPref("dom.ipc.plugins.enabled")) == pluginproblemui-direction-2.html pluginproblemui-direction-2-ref.html # assertion is bug 585394
|
||||
asserts-if(http.oscpu.match(/Linux/),0-1) random-if(d2d) fails-if(!haveTestPlugin) skip-if(!areOOPPenabled()) == pluginproblemui-direction-1.html pluginproblemui-direction-1-ref.html # assertion is bug 585394
|
||||
asserts-if(http.oscpu.match(/Linux/),0-1) fails-if(!haveTestPlugin) skip-if(!areOOPPenabled()) == pluginproblemui-direction-2.html pluginproblemui-direction-2-ref.html # assertion is bug 585394
|
||||
# Disabled for now to investigate Windows/Linux test failures
|
||||
# fails-if(!haveTestPlugin) == border-padding-3.html border-padding-3-ref.html
|
||||
|
@ -32,6 +32,33 @@ if (parentRunner) {
|
||||
ipcMode = parentRunner.ipcMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check for OOPP preferences
|
||||
**/
|
||||
SimpleTest.areOOPPenabled = function () {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var prefservice = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
|
||||
var pref = false;
|
||||
|
||||
if (navigator.platform.indexOf("Mac") == 0) {
|
||||
var xulRuntime = Components.classes["@mozilla.org/xre/app-info;1"]
|
||||
.getService(Components.interfaces.nsIXULAppInfo)
|
||||
.QueryInterface(Components.interfaces.nsIXULRuntime);
|
||||
if (xulRuntime.XPCOMABI.match(/x86-/)) {
|
||||
pref = prefservice.getBoolPref("dom.ipc.plugins.enabled.i386");
|
||||
}
|
||||
else if (xulRuntime.XPCOMABI.match(/x86_64-/)) {
|
||||
pref = prefservice.getBoolPref("dom.ipc.plugins.enabled.x86_64");
|
||||
}
|
||||
}
|
||||
else {
|
||||
pref = prefservice.getBoolPref("dom.ipc.plugins.enabled");
|
||||
}
|
||||
return pref;
|
||||
};
|
||||
|
||||
// Check to see if the TestRunner is present and has logging
|
||||
if (parentRunner) {
|
||||
SimpleTest._logEnabled = parentRunner.logEnabled;
|
||||
|
@ -83,7 +83,17 @@ mochitest-a11y:
|
||||
$(CHECK_TEST_ERROR)
|
||||
|
||||
mochitest-ipcplugins:
|
||||
#ifdef XP_MACOSX
|
||||
#if defined(__i386__)
|
||||
$(RUN_MOCHITEST) --setpref=dom.ipc.plugins.enabled.i386=true --test-path=modules/plugin/test
|
||||
#elif defined(__x86_64__)
|
||||
$(RUN_MOCHITEST) --setpref=dom.ipc.plugins.enabled.x86_64=true --test-path=modules/plugin/test
|
||||
#elif defined(__ppc__)
|
||||
$(RUN_MOCHITEST) --setpref=dom.ipc.plugins.enabled.ppc=true --test-path=modules/plugin/test
|
||||
#endif
|
||||
#else
|
||||
$(RUN_MOCHITEST) --setpref=dom.ipc.plugins.enabled=true --test-path=modules/plugin/test
|
||||
#endif
|
||||
$(CHECK_TEST_ERROR)
|
||||
|
||||
# Usage: |make [EXTRA_TEST_ARGS=...] *test|.
|
||||
|
Loading…
Reference in New Issue
Block a user