зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1249332 - [e10s] Make browser_ContentSearch.js work under e10s. r=mak
This commit is contained in:
Родитель
c781b0ab03
Коммит
13b82bd15e
|
@ -6,7 +6,6 @@ support-files =
|
|||
[browser_ProcessHangNotifications.js]
|
||||
skip-if = !e10s
|
||||
[browser_ContentSearch.js]
|
||||
skip-if = e10s
|
||||
support-files =
|
||||
contentSearch.js
|
||||
contentSearchBadImage.xml
|
||||
|
|
|
@ -97,13 +97,15 @@ add_task(function* search() {
|
|||
healthReportKey: "ContentSearchTest",
|
||||
searchPurpose: "ContentSearchTest",
|
||||
};
|
||||
let submissionURL =
|
||||
engine.getSubmission(data.searchString, "", data.whence).uri.spec;
|
||||
gMsgMan.sendAsyncMessage(TEST_MSG, {
|
||||
type: "Search",
|
||||
data: data,
|
||||
expectedURL: submissionURL,
|
||||
});
|
||||
let submissionURL =
|
||||
engine.getSubmission(data.searchString, "", data.whence).uri.spec;
|
||||
yield waitForLoadAndStopIt(gBrowser.selectedBrowser, submissionURL);
|
||||
let msg = yield waitForTestMsg("loadStopped");
|
||||
Assert.equal(msg.data.url, submissionURL, "Correct search page loaded");
|
||||
});
|
||||
|
||||
add_task(function* searchInBackgroundTab() {
|
||||
|
@ -120,18 +122,20 @@ add_task(function* searchInBackgroundTab() {
|
|||
healthReportKey: "ContentSearchTest",
|
||||
searchPurpose: "ContentSearchTest",
|
||||
};
|
||||
let submissionURL =
|
||||
engine.getSubmission(data.searchString, "", data.whence).uri.spec;
|
||||
gMsgMan.sendAsyncMessage(TEST_MSG, {
|
||||
type: "Search",
|
||||
data: data,
|
||||
expectedURL: submissionURL,
|
||||
});
|
||||
|
||||
let newTab = gBrowser.addTab();
|
||||
gBrowser.selectedTab = newTab;
|
||||
registerCleanupFunction(() => gBrowser.removeTab(newTab));
|
||||
|
||||
let submissionURL =
|
||||
engine.getSubmission(data.searchString, "", data.whence).uri.spec;
|
||||
yield waitForLoadAndStopIt(searchBrowser, submissionURL);
|
||||
let msg = yield waitForTestMsg("loadStopped");
|
||||
Assert.equal(msg.data.url, submissionURL, "Correct search page loaded");
|
||||
});
|
||||
|
||||
add_task(function* badImage() {
|
||||
|
@ -331,33 +335,6 @@ function waitForNewEngine(basename, numImages) {
|
|||
return Promise.all([addDeferred.promise].concat(eventPromises));
|
||||
}
|
||||
|
||||
function waitForLoadAndStopIt(browser, expectedURL) {
|
||||
let deferred = Promise.defer();
|
||||
let listener = {
|
||||
onStateChange: function (webProg, req, flags, status) {
|
||||
if (req instanceof Ci.nsIChannel) {
|
||||
let url = req.originalURI.spec;
|
||||
info("onStateChange " + url);
|
||||
let docStart = Ci.nsIWebProgressListener.STATE_IS_DOCUMENT |
|
||||
Ci.nsIWebProgressListener.STATE_START;
|
||||
if ((flags & docStart) && webProg.isTopLevel && url == expectedURL) {
|
||||
browser.removeProgressListener(listener);
|
||||
ok(true, "Expected URL loaded");
|
||||
req.cancel(Components.results.NS_ERROR_FAILURE);
|
||||
deferred.resolve();
|
||||
}
|
||||
}
|
||||
},
|
||||
QueryInterface: XPCOMUtils.generateQI([
|
||||
Ci.nsIWebProgressListener,
|
||||
Ci.nsISupportsWeakReference,
|
||||
]),
|
||||
};
|
||||
browser.addProgressListener(listener);
|
||||
info("Waiting for URL to load: " + expectedURL);
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function addTab() {
|
||||
let deferred = Promise.defer();
|
||||
let tab = gBrowser.addTab();
|
||||
|
|
|
@ -23,4 +23,40 @@ addMessageListener(TEST_MSG, msg => {
|
|||
detail: msg.data,
|
||||
})
|
||||
);
|
||||
|
||||
// If the message is a search, stop the page from loading and then tell the
|
||||
// test that it loaded.
|
||||
if (msg.data.type == "Search") {
|
||||
waitForLoadAndStopIt(msg.data.expectedURL, url => {
|
||||
sendAsyncMessage(TEST_MSG, {
|
||||
type: "loadStopped",
|
||||
url: url,
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
function waitForLoadAndStopIt(expectedURL, callback) {
|
||||
let Ci = Components.interfaces;
|
||||
let listener = {
|
||||
onStateChange: function (webProg, req, flags, status) {
|
||||
if (req instanceof Ci.nsIChannel) {
|
||||
let url = req.originalURI.spec;
|
||||
dump("waitForLoadAndStopIt: onStateChange " + url + "\n");
|
||||
let docStart = Ci.nsIWebProgressListener.STATE_IS_DOCUMENT |
|
||||
Ci.nsIWebProgressListener.STATE_START;
|
||||
if ((flags & docStart) && webProg.isTopLevel && url == expectedURL) {
|
||||
docShell.removeProgressListener(listener);
|
||||
req.cancel(Components.results.NS_ERROR_FAILURE);
|
||||
callback(url);
|
||||
}
|
||||
}
|
||||
},
|
||||
QueryInterface: XPCOMUtils.generateQI([
|
||||
Ci.nsIWebProgressListener,
|
||||
Ci.nsISupportsWeakReference,
|
||||
]),
|
||||
};
|
||||
docShell.addProgressListener(listener, Ci.nsIWebProgress.NOTIFY_ALL);
|
||||
dump("waitForLoadAndStopIt: Waiting for URL to load: " + expectedURL + "\n");
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче