diff --git a/mobile/android/components/extensions/ext-pageAction.js b/mobile/android/components/extensions/ext-pageAction.js index 88d5bb9b439b..4e134ebbaf87 100644 --- a/mobile/android/components/extensions/ext-pageAction.js +++ b/mobile/android/components/extensions/ext-pageAction.js @@ -32,7 +32,7 @@ function PageAction(options, extension) { this.options = { title: options.default_title || extension.name, - id: extension.id, + id: `{${extension.uuid}}`, clickCallback: () => { if (this.popupUrl) { let win = Services.wm.getMostRecentWindow("navigator:browser"); diff --git a/mobile/android/components/extensions/test/mochitest/head.js b/mobile/android/components/extensions/test/mochitest/head.js index 3d618d3ed148..be9683682f1c 100644 --- a/mobile/android/components/extensions/test/mochitest/head.js +++ b/mobile/android/components/extensions/test/mochitest/head.js @@ -6,10 +6,10 @@ const {classes: Cc, interfaces: Ci, utils: Cu} = Components; Cu.import("resource://gre/modules/PageActions.jsm"); -function isPageActionShown(extensionId) { - return PageActions.isShown(extensionId); +function isPageActionShown(uuid) { + return PageActions.isShown(uuid); } -function clickPageAction(extensionId) { - PageActions.synthesizeClick(extensionId); +function clickPageAction(uuid) { + PageActions.synthesizeClick(uuid); } diff --git a/mobile/android/components/extensions/test/mochitest/test_ext_pageAction.html b/mobile/android/components/extensions/test/mochitest/test_ext_pageAction.html index 4acb041ceeb6..b13c551bdc56 100644 --- a/mobile/android/components/extensions/test/mochitest/test_ext_pageAction.html +++ b/mobile/android/components/extensions/test/mochitest/test_ext_pageAction.html @@ -41,10 +41,15 @@ function background() { browser.test.sendMessage("page-action-clicked"); }); - browser.test.sendMessage("ready"); + let extensionInfo = { + // Extract the assigned uuid from the background page url. + uuid: `{${window.location.hostname}}`, + }; + + browser.test.sendMessage("ready", extensionInfo); } -add_task(function* test_contentscript() { +add_task(function* test_pageAction() { let extension = ExtensionTestUtils.loadExtension({ background, manifest: { @@ -55,6 +60,11 @@ add_task(function* test_contentscript() { "18": "extension.png", }, }, + "applications": { + "gecko": { + "id": "foo@bar.com", + }, + }, }, files: { "extension.png": IMAGE_ARRAYBUFFER, @@ -62,26 +72,26 @@ add_task(function* test_contentscript() { }); yield extension.startup(); - yield extension.awaitMessage("ready"); + let {uuid} = yield extension.awaitMessage("ready"); extension.sendMessage("pageAction-show"); yield extension.awaitMessage("page-action-shown"); - ok(isPageActionShown(extension.id), "The PageAction should be shown"); + ok(isPageActionShown(uuid), "The PageAction should be shown"); extension.sendMessage("pageAction-hide"); yield extension.awaitMessage("page-action-hidden"); - ok(!isPageActionShown(extension.id), "The PageAction should be hidden"); + ok(!isPageActionShown(uuid), "The PageAction should be hidden"); extension.sendMessage("pageAction-show"); yield extension.awaitMessage("page-action-shown"); - ok(isPageActionShown(extension.id), "The PageAction should be shown"); + ok(isPageActionShown(uuid), "The PageAction should be shown"); - clickPageAction(extension.id); + clickPageAction(uuid); yield extension.awaitMessage("page-action-clicked"); - ok(isPageActionShown(extension.id), "The PageAction should still be shown after being clicked"); + ok(isPageActionShown(uuid), "The PageAction should still be shown after being clicked"); yield extension.unload(); - ok(!isPageActionShown(extension.id), "The PageAction should be removed after unload"); + ok(!isPageActionShown(uuid), "The PageAction should be removed after unload"); }); diff --git a/mobile/android/components/extensions/test/mochitest/test_ext_pageAction_popup.html b/mobile/android/components/extensions/test/mochitest/test_ext_pageAction_popup.html index e0b6036bc9fb..89edc7c298e8 100644 --- a/mobile/android/components/extensions/test/mochitest/test_ext_pageAction_popup.html +++ b/mobile/android/components/extensions/test/mochitest/test_ext_pageAction_popup.html @@ -54,7 +54,12 @@ add_task(function* test_contentscript() { browser.test.sendMessage("page-action-onClicked-fired"); }); - browser.test.sendMessage("ready"); + let extensionInfo = { + // Extract the assigned uuid from the background page url. + uuid: `{${window.location.hostname}}`, + }; + + browser.test.sendMessage("ready", extensionInfo); } function popupScript() { @@ -107,7 +112,7 @@ add_task(function* test_contentscript() { }); }; - function* testPopup(name) { + function* testPopup(name, uuid) { // We don't need to set the popup when testing default_popup. if (name != "default.html") { extension.sendMessage("page-action-set-popup", {name}); @@ -124,7 +129,7 @@ add_task(function* test_contentscript() { extension.sendMessage("page-action-enable-onClicked-listener"); yield extension.awaitMessage("page-action-onClicked-listener-enabled"); - clickPageAction(extension.id); + clickPageAction(uuid); yield extension.awaitMessage("page-action-onClicked-fired"); extension.sendMessage("page-action-disable-onClicked-listener"); @@ -132,7 +137,7 @@ add_task(function* test_contentscript() { } else { ok(url.includes(name), "Calling pageAction.getPopup should return the correct popup URL when the popup is set."); - clickPageAction(extension.id); + clickPageAction(uuid); let location = yield extension.awaitMessage("page-action-from-popup"); ok(location.includes(name), "The popup with the correct URL should be shown."); @@ -144,19 +149,19 @@ add_task(function* test_contentscript() { } yield extension.startup(); - yield extension.awaitMessage("ready"); + let {uuid} = yield extension.awaitMessage("ready"); extension.sendMessage("page-action-show"); yield extension.awaitMessage("page-action-shown"); - ok(isPageActionShown(extension.id), "The PageAction should be shown."); + ok(isPageActionShown(uuid), "The PageAction should be shown."); - yield testPopup("default.html"); - yield testPopup("a.html"); - yield testPopup(""); - yield testPopup("b.html"); + yield testPopup("default.html", uuid); + yield testPopup("a.html", uuid); + yield testPopup("", uuid); + yield testPopup("b.html", uuid); yield extension.unload(); - ok(!isPageActionShown(extension.id), "The PageAction should be removed after unload."); + ok(!isPageActionShown(uuid), "The PageAction should be removed after unload."); });