author | Ryan VanderMeulen <ryanvm@gmail.com> |
Mon, 04 Nov 2013 15:54:55 -0500 | |
changeset 153488 | 311650f884516d100d36e4d61fedbffe2ca18704 |
parent 153487 | 6cbc5a5a177fb33780fd0299b7b59f95505bbe92 |
child 153489 | 94a672274c2b319732713e02527a542e6b63ae1b |
push id | 35816 |
push user | kwierso@gmail.com |
push date | Tue, 05 Nov 2013 05:22:53 +0000 |
treeherder | mozilla-inbound@442b47e9fb80 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
bugs | 906839 |
milestone | 28.0a1 |
backs out | cf64922197ca01ad63d3c621257a83ecb983d85e 3ae60bdf3fef769da4dbed79bf417376648ddaed 68960c6bdce3b3d56fe17e8967de5b8f5ff1da44 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -1290,18 +1290,16 @@ pref("shumway.disabled", true); pref("image.mem.max_decoded_image_kb", 256000); // Default social providers pref("social.manifest.facebook", "{\"origin\":\"https://www.facebook.com\",\"name\":\"Facebook Messenger\",\"workerURL\":\"https://www.facebook.com/desktop/fbdesktop2/socialfox/fbworker.js.php\",\"shareURL\":\"https://www.facebook.com/sharer/sharer.php?u=%{url}\",\"iconURL\":\"data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAAX0lEQVQ4jWP4%2F%2F8%2FAyUYTFhHzjgDxP9JxGeQDSBVMxgTbUBCxer%2Fr999%2BQ8DJBuArJksA9A10s8AXIBoA0B%2BR%2FY%2FjD%2BEwoBoA1yT5v3PbdmCE8MAshhID%2FUMoDgzUYIBj0Cgi7ar4coAAAAASUVORK5CYII%3D\",\"sidebarURL\":\"https://www.facebook.com/desktop/fbdesktop2/?socialfox=true\",\"icon32URL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAADbklEQVRYCc1Xv08UQRj99tctexAuCEFjRE0kGBEtLDSGqIWNxkYKbTAxNlY2JhaGWltNtNFeKgsKKxITK43/gCYW+IsoRhA4D47bH7fn9+bcvdm5JR7sefolC3Ozu9978+bNN7PayUv3HN3umdY0Y6IWBtSJ0HSTarXqTOiuTep6Lj+tdxAcA8RAgSmwdd2aCDs0clldYALb/FvgYVhjmfliVA2XpjEgWo0Attn42Z6WH1RFor5ehwo9XQIUZMoVn4qlCoVMSo62EvD8Kh0b3U2Xz43R2PBO6mUCGDlAf65V6MadZzT/rUimoccc2kYA4BfPHqJb105RzjJigKhRq9kEJUBIjgYVuXeL7SAI6eD+Abp5dTwVHOmEHxT50d8WBYJqSOdPj5BjW8gZR8UNqFR2xagx/65XFYaMH+BGWwiYpi4UkBPPLxTp9v1Z+lHc4DWvCQXWmIy6EjITgKowVd5Jjv7N3Hd6y5esigoOwpkJIAmMpZpLJGdiaaC4F0UmAj6bD84GCEwmB/qxMmRilmnwb/mpjAocHh4UEoNAt5NLZB7oy9OJo0PxqkAtePdhiSqunyC1LQUwWMPQaOr6GRre258Ajn4cP7KHcEXhsxpXbj+lT19X2TMNGTLVAcjcalS8gDwsQ2UOMhH4k8FkcrEn5E5ub2sKohxLK2VR77Hl9RUcsrgeRIEiVOT6z+tDbIeLy+vk+kGTCbXxycet6xhl//3f6bJEkdHYhA+mLtDIvoH4ieev5+juoxdk5+pjhALYEdXIpEB5w+NlSKSzqVQ/+H7IO6BLtl3fngGMiqhGJgIwlM6qpyUGFjySdk8m0Zg0ubeD7X9OIDEFajltRQgUJaUKx69tdgaQa0FMADuahZPMFtcEwNPm2hA7ZI5sK4aoE2NvYI+o8hkCIe7CwTv68zS0q9Dk5vpbm/8FXxitSzmMFHpsGj0wyLUheTwD2Y9fVgh1Ae0EPUgD9241ZEnld+v5kgnVZ/8fE0brVh5BK+1oCqKKF72Dk7HwBsssB/pklU1dfChy3S659H5+uelgIb+8WRv1/uGTV9Sdb5wJFlfW6fPCalMhwhSU1j2xKwKbP838GcOwJja4TqO0bjdmXxYTy1EYjFdCWoCEYZhseH/GDL3yJPHnuW6YmT7P1SlIA4768Hke4vOcsX8BE346lLHhDUQAAAAASUVORK5CYII=\", \"icon64URL\":\"data:image/png;base64,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\", \"description\":\"Keep up with friends wherever you go on the web.\",\"author\":\"Facebook\",\"homepageURL\":\"https://www.facebook.com/about/messenger-for-firefox\",\"builtin\":\"true\"}"); 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 pref("security.csp.speccompliant", true); // Block insecure active content on https pages pref("security.mixed_content.block_active_content", true);
--- a/browser/base/content/test/social/browser_social_chatwindow.js +++ b/browser/base/content/test/social/browser_social_chatwindow.js @@ -46,37 +46,42 @@ function openChat(provider, callback) { function waitPrefChange(cb) { Services.prefs.addObserver("social.enabled", function prefObserver(subject, topic, data) { Services.prefs.removeObserver("social.enabled", prefObserver); executeSoon(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(); let oldwidth = window.outerWidth; // we futz with these, so we restore them let oldleft = window.screenX; window.moveTo(0, window.screenY) let postSubTest = function(cb) { let chats = document.getElementById("pinnedchats"); 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(); }); }); } var tests = { @@ -507,41 +512,40 @@ var tests = { }); window.focus(); }); }); }) }); }, testMultipleProviderChat: function(next) { - // 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"); + // 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"); + }); }); }); }); }, // XXX - note this must be the last test until we restore the login state // between tests... testCloseOnLogout: function(next) { @@ -569,15 +573,11 @@ var tests = { } else { // open a second chat window opened = true; port.postMessage({topic: "test-worker-chat", data: chatUrl+"?id=1"}); } 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"}); } }
--- a/browser/base/content/test/social/browser_social_flyout.js +++ b/browser/base/content/test/social/browser_social_flyout.js @@ -108,27 +108,25 @@ var tests = { ok(port, "provider has a port"); port.onmessage = function (e) { let topic = e.data.topic; switch (topic) { case "test-init-done": port.postMessage({topic: "test-flyout-open"}); break; case "got-flyout-visibility": - if (e.data.result != "shown") - return; let iframe = panel.firstChild; iframe.contentDocument.addEventListener("SocialTest-DoneCloseSelf", function _doneHandler() { iframe.contentDocument.removeEventListener("SocialTest-DoneCloseSelf", _doneHandler, false); - port.close(); is(panel.state, "closed", "flyout should have closed itself"); Services.prefs.setBoolPref(ALLOW_SCRIPTS_TO_CLOSE_PREF, oldAllowScriptsToClose); next(); }, false); is(panel.state, "open", "flyout should be open"); + port.close(); // so we don't get the -visibility message as it hides... SocialFlyout.dispatchPanelEvent("socialTest-CloseSelf"); break; } } port.postMessage({topic: "test-init"}); }, testCloseOnLinkTraversal: function(next) {
--- a/browser/base/content/test/social/social_worker.js +++ b/browser/base/content/test/social/social_worker.js @@ -79,34 +79,32 @@ onconnect = function(e) { case "test-worker-chat": apiPort.postMessage({topic: "social.request-chat", data: event.data.data }); break; case "social.initialize": // This is the workerAPI port, respond and set up a notification icon. // 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 = { portrait: "https://test1.example.com/portrait.jpg", userName: "tester", displayName: "Test1 User", }; } else { profile = { portrait: "https://example.com/portrait.jpg", userName: "trickster", displayName: "Kuma Lisa", profileURL: "http://en.wikipedia.org/wiki/Kuma_Lisa" }; } - apiPort.postMessage({topic: "social.user-profile", data: profile}); + port.postMessage({topic: "social.user-profile", data: profile}); break; case "test-ambient-notification": apiPort.postMessage({topic: "social.ambient-notification", data: event.data.data}); break; case "test-isVisible": sidebarPort.postMessage({topic: "test-isVisible"}); break; case "test-isVisible-response":
--- a/browser/modules/Social.jsm +++ b/browser/modules/Social.jsm @@ -90,17 +90,18 @@ function promiseGetAnnotation(aURI) { this.Social = { initialized: false, lastEventReceived: 0, providers: [], _disabledForSafeMode: false, get allowMultipleWorkers() { - return Services.prefs.getBoolPref("social.allowMultipleWorkers"); + return Services.prefs.prefHasUserValue("social.allowMultipleWorkers") && + Services.prefs.getBoolPref("social.allowMultipleWorkers"); }, get _currentProviderPref() { try { return Services.prefs.getComplexValue("social.provider.current", Ci.nsISupportsString).data; } catch (ex) {} return null; @@ -135,17 +136,16 @@ this.Social = { if (this._provider) { this._provider.enabled = true; this._currentProviderPref = this._provider.origin; } let enabled = !!provider; if (enabled != SocialService.enabled) { SocialService.enabled = enabled; - this._updateWorkerState(enabled); } let origin = this._provider && this._provider.origin; Services.obs.notifyObservers(null, "social:provider-set", origin); }, get defaultProvider() { if (this.providers.length == 0)
--- a/toolkit/components/social/FrameWorker.jsm +++ b/toolkit/components/social/FrameWorker.jsm @@ -194,23 +194,25 @@ function makeRemoteBrowser() { // Create a HTML iframe with a chrome URL, then this can host the browser. let iframe = hiddenDoc.createElementNS(HTML_NS, "iframe"); iframe.setAttribute("src", "chrome://global/content/mozilla.xhtml"); iframe.addEventListener("load", function onLoad() { iframe.removeEventListener("load", onLoad, true); 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.getBoolPref("social.allowMultipleWorkers")) + if (Services.prefs.prefHasUserValue("social.allowMultipleWorkers") && + Services.prefs.getBoolPref("social.allowMultipleWorkers")) { browser.setAttribute("remote", "true"); - + } iframe.contentDocument.documentElement.appendChild(browser); deferred.resolve(browser); }, true); hiddenDoc.documentElement.appendChild(iframe); return deferred.promise; } function notifyWorkerError(origin) {
--- a/toolkit/components/social/test/browser/browser_SocialProvider.js +++ b/toolkit/components/social/test/browser/browser_SocialProvider.js @@ -57,17 +57,17 @@ let tests = { // add another provider, test both workers let manifest = { origin: 'http://test2.example.com', name: "Example Provider 2", workerURL: "http://test2.example.com/browser/toolkit/components/social/test/browser/worker_social.js" }; SocialService.addProvider(manifest, function (provider2) { ok(provider.enabled, "provider is initially enabled"); - is(provider2.enabled, Services.prefs.getBoolPref("social.allowMultipleWorkers"), "provider2 is enabled status is correct"); + ok(!provider2.enabled, "provider2 is not initially enabled"); provider2.enabled = true; let port = provider.getWorkerPort(); let port2 = provider2.getWorkerPort(); ok(port, "have port for provider"); ok(port2, "have port for provider2"); port.onmessage = function(e) { if (e.data.topic == "test-initialization-complete") { ok(true, "first provider initialized");
--- a/toolkit/components/social/test/browser/browser_frameworker.js +++ b/toolkit/components/social/test/browser/browser_frameworker.js @@ -44,35 +44,29 @@ let tests = { worker.terminate(); cbnext(); } } worker.port.postMessage({topic: "ping"}) }, // when the client closes early but the worker tries to send anyway... - // XXX - disabled due to bug 919878 - we close the frameworker before the - // remote browser has completed initializing, leading to failures. Given - // this can realistically only happen in this synthesized test environment, - // disabling just this test seems OK for now. -/*** testEarlyClose: function(cbnext) { let run = function() { onconnect = function(e) { let port = e.ports[0]; port.postMessage({topic: "oh hai"}); } } let worker = getFrameWorkerHandle(makeWorkerUrl(run), undefined, "testEarlyClose"); worker.port.close(); worker.terminate(); cbnext(); }, -***/ // Check we do get a social.port-closing message as the port is closed. testPortClosingMessage: function(cbnext) { // We use 2 ports - we close the first and report success via the second. let run = function() { let firstPort, secondPort; onconnect = function(e) { let port = e.ports[0];