Source code

Revision control

Copy as Markdown

Other Tools

"use strict";
function setupRedirect(fromUrl, redirectUrl) {
browser.webRequest.onBeforeRequest.addListener(
() => {
console.log(`Extension redirects from ${fromUrl} to ${redirectUrl}`);
return { redirectUrl };
},
{ urls: [fromUrl] },
["blocking"]
);
}
// Intercepts all script requests from androidTest/assets/www/trackers.html.
// Scripts are executed in order of appearance in the page and block the
// page's "load" event, so the test runner can just wait for the page to
// have loaded and then check the page content to verify that the requests
// were intercepted as expected.
setupRedirect(
"data:text/javascript,document.body.textContent='start'"
);
setupRedirect(
browser.runtime.getURL("web-accessible-script.js")
);
setupRedirect(
`data:text/javascript,document.body.textContent+=',end'`
);
// Work around bug 1300234 to ensure that the webRequest listener has been
// registered before we resume the test. API result doesn't matter, we just
// want to make a roundtrip.
var listenerReady = browser.webRequest.getSecurityInfo("").catch(() => {});
listenerReady.then(() => {
browser.runtime.sendNativeMessage("browser", "setupReadyStartTest");
});