# HG changeset patch # User Luca Greco Bug 1219229 - add testcase to check background script loading order on debugging attached --- .../test/mochitest/file_ext_load_extension.js | 27 +++ .../extensions/test/mochitest/mochitest.ini | 3 + .../test_ext_background_debugger_attached.html | 202 +++++++++++++++++++++ 3 files changed, 232 insertions(+) create mode 100644 toolkit/components/extensions/test/mochitest/file_ext_load_extension.js create mode 100644 toolkit/components/extensions/test/mochitest/test_ext_background_debugger_attached.html diff --git a/toolkit/components/extensions/test/mochitest/file_ext_load_extension.js b/toolkit/components/extensions/test/mochitest/file_ext_load_extension.js new file mode 100644 index 0000000..6cf5f67 --- /dev/null +++ b/toolkit/components/extensions/test/mochitest/file_ext_load_extension.js @@ -0,0 +1,27 @@ +"use strict"; + +let { utils: Cu } = Components; + +let { Extension } = Cu.import("resource://gre/modules/Extension.jsm"); +let { AddonManager } = Cu.import("resource://gre/modules/AddonManager.jsm"); + +addMessageListener("load-extension", (extensionData) => { + let listener = { + onInstallEnded: function(install, addon) { + sendAsyncMessage("loaded-extension", addon.id); + }, + + onInstallFailed: function(install) { + sendAsyncMessage("loaded-extension", install.error); + } + }; + let file = Extension.generateXPI(extensionData.id, extensionData); + + AddonManager.getInstallForFile(file, function(aInstall) { + if (aInstall.error != 0) { + sendAsyncMessage("loaded-extension", install.error); + } + aInstall.addListener(listener); + aInstall.install(); + }); +}); diff --git a/toolkit/components/extensions/test/mochitest/mochitest.ini b/toolkit/components/extensions/test/mochitest/mochitest.ini index 7f458d2..0146291 100644 --- a/toolkit/components/extensions/test/mochitest/mochitest.ini +++ b/toolkit/components/extensions/test/mochitest/mochitest.ini @@ -16,16 +16,17 @@ support-files = file_script_good.js file_script_bad.js file_script_redirect.js file_script_xhr.js file_sample.html file_privilege_escalation.html file_ext_background_api_injection.js file_permission_xhr.html + file_ext_load_extension.js [test_ext_simple.html] [test_ext_geturl.html] [test_ext_contentscript.html] [test_ext_i18n_css.html] [test_ext_generate.html] [test_ext_localStorage.html] [test_ext_onmessage_removelistener.html] @@ -44,13 +45,15 @@ support-files = [test_ext_cookies.html] [test_ext_cookies_permissions.html] skip-if = e10s # Uses cookie service via SpecialPowers.Services, which does not support e10s. [test_ext_bookmarks.html] [test_ext_alarms.html] [test_ext_background_window_properties.html] [test_ext_background_sub_windows.html] [test_ext_background_api_injection.html] +[test_ext_background_debugger_attached.html] +skip-if = e10s # Uses the AddonManager which can't be used from a content process. This test case reproduces a bug that doesn't need to run in a tab content process in any case. [test_ext_jsversion.html] skip-if = e10s # Uses a console monitor which doesn't work from a content process. The code being tested doesn't run in a tab content process in any case. [test_ext_i18n.html] [test_ext_webrequest.html] [test_ext_webnavigation.html] diff --git a/toolkit/components/extensions/test/mochitest/test_ext_background_debugger_attached.html b/toolkit/components/extensions/test/mochitest/test_ext_background_debugger_attached.html new file mode 100644 index 0000000..f3fac99 --- /dev/null +++ b/toolkit/components/extensions/test/mochitest/test_ext_background_debugger_attached.html @@ -0,0 +1,202 @@ + + + + Test for attach debugger on a background page + + + + + + + + + + + +