Bug 1155352, e10s, rewrite and reenable browser_middleMouse_noJSPaste.js, r=gijs

This commit is contained in:
Neil Deakin 2015-04-21 20:09:14 -04:00
parent 1dee995d07
commit 4859f0e9ed
3 changed files with 28 additions and 45 deletions

View File

@ -334,7 +334,6 @@ skip-if = os == "linux" # Linux: Intermittent failures, bug 917535
[browser_menuButtonFitts.js] [browser_menuButtonFitts.js]
skip-if = os != "win" # The Fitts Law menu button is only supported on Windows (bug 969376) skip-if = os != "win" # The Fitts Law menu button is only supported on Windows (bug 969376)
[browser_middleMouse_noJSPaste.js] [browser_middleMouse_noJSPaste.js]
skip-if = e10s # Bug 921952 - Content:Click event issues
[browser_minimize.js] [browser_minimize.js]
skip-if = e10s # Bug 1100664 - test directly access content docShells (TypeError: gBrowser.docShell is null) skip-if = e10s # Bug 1100664 - test directly access content docShells (TypeError: gBrowser.docShell is null)
[browser_mixedcontent_securityflags.js] [browser_mixedcontent_securityflags.js]

View File

@ -3,51 +3,32 @@
const middleMousePastePref = "middlemouse.contentLoadURL"; const middleMousePastePref = "middlemouse.contentLoadURL";
const autoScrollPref = "general.autoScroll"; const autoScrollPref = "general.autoScroll";
function test() {
waitForExplicitFinish();
Services.prefs.setBoolPref(middleMousePastePref, true); add_task(function* () {
Services.prefs.setBoolPref(autoScrollPref, false); yield pushPrefs([middleMousePastePref, true], [autoScrollPref, false]);
let tab = gBrowser.selectedTab = gBrowser.addTab();
registerCleanupFunction(function () { let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser);
Services.prefs.clearUserPref(middleMousePastePref);
Services.prefs.clearUserPref(autoScrollPref);
gBrowser.removeTab(tab);
});
addPageShowListener(function () { let url = "javascript:http://www.example.com/";
let pagePrincipal = gBrowser.contentPrincipal; yield new Promise((resolve, reject) => {
SimpleTest.waitForClipboard(url, () => {
// copy javascript URI to the clipboard Components.classes["@mozilla.org/widget/clipboardhelper;1"]
let url = "javascript:http://www.example.com/"; .getService(Components.interfaces.nsIClipboardHelper)
waitForClipboard(url, .copyString(url, document);
function() { }, resolve, () => {
Components.classes["@mozilla.org/widget/clipboardhelper;1"] ok(false, "Clipboard copy failed");
.getService(Components.interfaces.nsIClipboardHelper) reject();
.copyString(url, document);
},
function () {
// Middle click on the content area
info("Middle clicking");
EventUtils.sendMouseEvent({type: "click", button: 1}, gBrowser);
},
function() {
ok(false, "Failed to copy URL to the clipboard");
finish();
}
);
addPageShowListener(function () {
is(gBrowser.currentURI.spec, url.replace(/^javascript:/, ""), "url loaded by middle click doesn't include JS");
finish();
}); });
}); });
}
function addPageShowListener(func) { let middlePagePromise = BrowserTestUtils.browserLoaded(tab.linkedBrowser);
gBrowser.selectedBrowser.addEventListener("pageshow", function loadListener() {
gBrowser.selectedBrowser.removeEventListener("pageshow", loadListener, false); // Middle click on the content area
func(); info("Middle clicking");
}); yield BrowserTestUtils.synthesizeMouse(null, 10, 10, {button: 1}, gBrowser.selectedBrowser);
} yield middlePagePromise;
is(gBrowser.currentURI.spec, url.replace(/^javascript:/, ""), "url loaded by middle click doesn't include JS");
gBrowser.removeTab(tab);
});

View File

@ -2,14 +2,17 @@
http://creativecommons.org/publicdomain/zero/1.0/ */ http://creativecommons.org/publicdomain/zero/1.0/ */
function testURLBarCopy(targetValue) { function testURLBarCopy(targetValue) {
return new Promise(resolve => { return new Promise((resolve, reject) => {
info("Expecting copy of: " + targetValue); info("Expecting copy of: " + targetValue);
waitForClipboard(targetValue, function () { waitForClipboard(targetValue, function () {
gURLBar.focus(); gURLBar.focus();
gURLBar.select(); gURLBar.select();
goDoCommand("cmd_copy"); goDoCommand("cmd_copy");
}, resolve); }, resolve, () => {
ok(false, "Clipboard copy failed");
reject();
});
}); });
} }