mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 05:45:37 +00:00
Bug 906839 - enable by default social.allowMultipleWorkers - update tests to work pref'd on and fix a missing update to the worker state, r=markh.
This commit is contained in:
parent
cd7a087fe2
commit
f770d205ad
@ -1313,6 +1313,8 @@ pref("social.manifest.facebook", "{\"origin\":\"https://www.facebook.com\",\"nam
|
||||
pref("social.sidebar.open", true);
|
||||
pref("social.sidebar.unload_timeout_ms", 10000);
|
||||
|
||||
pref("social.allowMultipleWorkers", true);
|
||||
|
||||
pref("dom.identity.enabled", false);
|
||||
|
||||
// Turn on the CSP 1.0 parser for Content Security Policy headers
|
||||
|
@ -51,18 +51,6 @@ function waitPrefChange(cb) {
|
||||
}, false);
|
||||
}
|
||||
|
||||
function setWorkerMode(multiple, cb) {
|
||||
waitPrefChange(function() {
|
||||
if (multiple)
|
||||
Services.prefs.setBoolPref("social.allowMultipleWorkers", true);
|
||||
else
|
||||
Services.prefs.clearUserPref("social.allowMultipleWorkers");
|
||||
waitPrefChange(cb);
|
||||
Social.enabled = true;
|
||||
});
|
||||
Social.enabled = false;
|
||||
}
|
||||
|
||||
function test() {
|
||||
requestLongerTimeout(2); // only debug builds seem to need more time...
|
||||
waitForExplicitFinish();
|
||||
@ -75,8 +63,15 @@ function test() {
|
||||
ok(chats.children.length == 0, "no chatty children left behind");
|
||||
cb();
|
||||
};
|
||||
// always run chat tests with multiple workers.
|
||||
Services.prefs.setBoolPref("social.allowMultipleWorkers", true);
|
||||
runSocialTestWithProvider(manifests, function (finishcb) {
|
||||
ok(Social.enabled, "Social is enabled");
|
||||
ok(Social.providers[0].getWorkerPort(), "provider 0 has port");
|
||||
ok(Social.providers[1].getWorkerPort(), "provider 1 has port");
|
||||
ok(Social.providers[2].getWorkerPort(), "provider 2 has port");
|
||||
runSocialTests(tests, undefined, postSubTest, function() {
|
||||
Services.prefs.clearUserPref("social.allowMultipleWorkers");
|
||||
window.moveTo(oldleft, window.screenY)
|
||||
window.resizeTo(oldwidth, window.outerHeight);
|
||||
finishcb();
|
||||
@ -517,30 +512,31 @@ var tests = {
|
||||
});
|
||||
},
|
||||
testMultipleProviderChat: function(next) {
|
||||
// while pref'd off, we need to set the worker mode to multiple providers
|
||||
setWorkerMode(true, function() {
|
||||
// test incomming chats from all providers
|
||||
openChat(Social.providers[0], function() {
|
||||
openChat(Social.providers[1], function() {
|
||||
openChat(Social.providers[2], function() {
|
||||
let chats = document.getElementById("pinnedchats");
|
||||
waitForCondition(function() chats.children.length == Social.providers.length,
|
||||
function() {
|
||||
ok(true, "one chat window per provider opened");
|
||||
// test logout of a single provider
|
||||
let provider = Social.providers[0];
|
||||
let port = provider.getWorkerPort();
|
||||
port.postMessage({topic: "test-logout"});
|
||||
waitForCondition(function() chats.children.length == Social.providers.length - 1,
|
||||
function() {
|
||||
port.close();
|
||||
chats.removeAll();
|
||||
ok(!chats.selectedChat, "chats are all closed");
|
||||
setWorkerMode(false, next);
|
||||
},
|
||||
"chat window didn't close");
|
||||
}, "chat windows did not open");
|
||||
});
|
||||
// test incomming chats from all providers
|
||||
openChat(Social.providers[0], function() {
|
||||
openChat(Social.providers[1], function() {
|
||||
openChat(Social.providers[2], function() {
|
||||
let chats = document.getElementById("pinnedchats");
|
||||
waitForCondition(function() chats.children.length == Social.providers.length,
|
||||
function() {
|
||||
ok(true, "one chat window per provider opened");
|
||||
// test logout of a single provider
|
||||
let provider = Social.providers[2];
|
||||
let port = provider.getWorkerPort();
|
||||
port.postMessage({topic: "test-logout"});
|
||||
waitForCondition(function() chats.children.length == Social.providers.length - 1,
|
||||
function() {
|
||||
chats.removeAll();
|
||||
waitForCondition(function() chats.children.length == 0,
|
||||
function() {
|
||||
ok(!chats.selectedChat, "multiprovider chats are all closed");
|
||||
port.close();
|
||||
next();
|
||||
},
|
||||
"chat windows didn't close");
|
||||
},
|
||||
"chat window didn't close");
|
||||
}, "chat windows did not open");
|
||||
});
|
||||
});
|
||||
});
|
||||
@ -578,6 +574,10 @@ var tests = {
|
||||
break;
|
||||
}
|
||||
}
|
||||
// make sure a user profile is set for this provider as chat windows are
|
||||
// only closed on *change* of the profile data rather than merely setting
|
||||
// profile data.
|
||||
port.postMessage({topic: "test-set-profile"});
|
||||
port.postMessage({topic: "test-init"});
|
||||
}
|
||||
}
|
||||
|
@ -84,6 +84,8 @@ onconnect = function(e) {
|
||||
// For multiprovider tests, we support acting like different providers
|
||||
// based on the domain we load from.
|
||||
apiPort = port;
|
||||
// purposely fall through and set the profile on initialization
|
||||
case "test-set-profile":
|
||||
let profile;
|
||||
if (location.href.indexOf("https://test1.example.com") == 0) {
|
||||
profile = {
|
||||
@ -99,7 +101,7 @@ onconnect = function(e) {
|
||||
profileURL: "http://en.wikipedia.org/wiki/Kuma_Lisa"
|
||||
};
|
||||
}
|
||||
port.postMessage({topic: "social.user-profile", data: profile});
|
||||
apiPort.postMessage({topic: "social.user-profile", data: profile});
|
||||
break;
|
||||
case "test-ambient-notification":
|
||||
apiPort.postMessage({topic: "social.ambient-notification", data: event.data.data});
|
||||
|
@ -95,8 +95,7 @@ this.Social = {
|
||||
_disabledForSafeMode: false,
|
||||
|
||||
get allowMultipleWorkers() {
|
||||
return Services.prefs.prefHasUserValue("social.allowMultipleWorkers") &&
|
||||
Services.prefs.getBoolPref("social.allowMultipleWorkers");
|
||||
return Services.prefs.getBoolPref("social.allowMultipleWorkers");
|
||||
},
|
||||
|
||||
get _currentProviderPref() {
|
||||
@ -141,6 +140,7 @@ this.Social = {
|
||||
let enabled = !!provider;
|
||||
if (enabled != SocialService.enabled) {
|
||||
SocialService.enabled = enabled;
|
||||
this._updateWorkerState(enabled);
|
||||
}
|
||||
|
||||
let origin = this._provider && this._provider.origin;
|
||||
|
@ -199,15 +199,13 @@ function makeRemoteBrowser() {
|
||||
let browser = iframe.contentDocument.createElementNS(XUL_NS, "browser");
|
||||
browser.setAttribute("type", "content");
|
||||
browser.setAttribute("disableglobalhistory", "true");
|
||||
let remote;
|
||||
// for now we use the same preference that enabled multiple workers - the
|
||||
// idea is that there is no point in having people help test multiple
|
||||
// "old" frameworkers - so anyone who wants multiple workers is forced to
|
||||
// help us test remote frameworkers too.
|
||||
if (Services.prefs.prefHasUserValue("social.allowMultipleWorkers") &&
|
||||
Services.prefs.getBoolPref("social.allowMultipleWorkers")) {
|
||||
if (Services.prefs.getBoolPref("social.allowMultipleWorkers"))
|
||||
browser.setAttribute("remote", "true");
|
||||
}
|
||||
|
||||
iframe.contentDocument.documentElement.appendChild(browser);
|
||||
deferred.resolve(browser);
|
||||
}, true);
|
||||
|
@ -62,7 +62,7 @@ let tests = {
|
||||
};
|
||||
SocialService.addProvider(manifest, function (provider2) {
|
||||
ok(provider.enabled, "provider is initially enabled");
|
||||
ok(!provider2.enabled, "provider2 is not initially enabled");
|
||||
is(provider2.enabled, Services.prefs.getBoolPref("social.allowMultipleWorkers"), "provider2 is enabled status is correct");
|
||||
provider2.enabled = true;
|
||||
let port = provider.getWorkerPort();
|
||||
let port2 = provider2.getWorkerPort();
|
||||
|
Loading…
Reference in New Issue
Block a user