зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1362047 - Fix content_script.run_at default value, add test r=mixedpuppy
MozReview-Commit-ID: CiBaSkZ0TqQ --HG-- extra : rebase_source : 88fed5902a1c8eeaaa19cb6c50ace19f27750a43
This commit is contained in:
Родитель
2483e7b376
Коммит
5e33a4fcc3
|
@ -50,6 +50,10 @@ add_task(async function testExecuteScript() {
|
|||
// Send the executeScript requests in the reverse order that we expect
|
||||
// them to execute in, to avoid them passing only because of timing
|
||||
// races.
|
||||
browser.tabs.executeScript({
|
||||
code: "document.readyState",
|
||||
// Testing default `runAt`.
|
||||
}),
|
||||
browser.tabs.executeScript({
|
||||
code: "document.readyState",
|
||||
runAt: "document_idle",
|
||||
|
@ -77,7 +81,8 @@ add_task(async function testExecuteScript() {
|
|||
// Otherwise, try again.
|
||||
success = (states[0] == "loading" &&
|
||||
states[1] == "interactive" &&
|
||||
states[2] == "complete");
|
||||
states[2] == "complete" &&
|
||||
states[3] == "complete");
|
||||
}
|
||||
|
||||
browser.test.assertTrue(success, "Got the earliest expected states at least once");
|
||||
|
|
|
@ -62,6 +62,7 @@
|
|||
"runAt": {
|
||||
"$ref": "RunAt",
|
||||
"optional": true,
|
||||
"default": "document_idle",
|
||||
"description": "The soonest that the JavaScript or CSS will be injected into the tab. Defaults to \"document_idle\"."
|
||||
},
|
||||
"cssOrigin": {
|
||||
|
|
|
@ -362,6 +362,7 @@
|
|||
"run_at": {
|
||||
"$ref": "extensionTypes.RunAt",
|
||||
"optional": true,
|
||||
"default": "document_idle",
|
||||
"description": "The soonest that the JavaScript or CSS will be injected into the tab. Defaults to \"document_idle\"."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ const BASE_URL = `http://localhost:${server.identity.primaryPort}/data`;
|
|||
|
||||
ExtensionTestUtils.mockAppInfo();
|
||||
|
||||
add_task(async function test_contentscript() {
|
||||
add_task(async function test_contentscript_runAt() {
|
||||
function background() {
|
||||
browser.runtime.onMessage.addListener(([msg, expectedStates, readyState], sender) => {
|
||||
if (msg == "chrome-namespace-ok") {
|
||||
|
@ -57,6 +57,11 @@ add_task(async function test_contentscript() {
|
|||
"js": ["content_script_idle.js"],
|
||||
"run_at": "document_idle",
|
||||
},
|
||||
{
|
||||
"matches": ["http://*/*/file_sample.html"],
|
||||
"js": ["content_script_idle.js"],
|
||||
// Test default `run_at`.
|
||||
},
|
||||
{
|
||||
"matches": ["http://*/*/file_sample.html"],
|
||||
"js": ["content_script.js"],
|
||||
|
@ -83,7 +88,12 @@ add_task(async function test_contentscript() {
|
|||
extension.onMessage("script-run-interactive", () => { interactiveCount++; });
|
||||
|
||||
let completePromise = new Promise(resolve => {
|
||||
extension.onMessage("script-run-complete", () => { completeCount++; resolve(); });
|
||||
extension.onMessage("script-run-complete", () => {
|
||||
completeCount++;
|
||||
if (completeCount > 1) {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
let chromeNamespacePromise = extension.awaitMessage("chrome-namespace-ok");
|
||||
|
@ -98,7 +108,7 @@ add_task(async function test_contentscript() {
|
|||
|
||||
equal(loadingCount, 1, "document_start script ran exactly once");
|
||||
equal(interactiveCount, 1, "document_end script ran exactly once");
|
||||
equal(completeCount, 1, "document_idle script ran exactly once");
|
||||
equal(completeCount, 2, "document_idle script ran exactly twice");
|
||||
|
||||
await extension.unload();
|
||||
});
|
||||
|
|
Загрузка…
Ссылка в новой задаче