зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1357490: Part 1: Run toolkit xpcshell tests in both in-process and OOP modes. r=aswan
MozReview-Commit-ID: 7YYO8ldupn3 --HG-- rename : toolkit/components/extensions/test/xpcshell/head_remote.js => toolkit/components/extensions/test/xpcshell/head_e10s.js rename : toolkit/components/extensions/test/xpcshell/xpcshell-remote.ini => toolkit/components/extensions/test/xpcshell/xpcshell-e10s.ini extra : source : 33f6f0354aded142e7a41d5a6209d0d95c4c7521 extra : intermediate-source : 663351357fa7791bb6d08bf7b470ca5fcdccb77e extra : histedit_source : b0eeaa1bbcd7e5ef729c5b1c26003a7d1af2af7e%2C0ee5000a87ebb9717ff007608620739e0ae1ee30
This commit is contained in:
Родитель
4390e804ca
Коммит
d58917713b
|
@ -1161,6 +1161,11 @@ this.Extension = class extends ExtensionData {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.rootURI instanceof Ci.nsIJARURI) {
|
||||||
|
let file = this.rootURI.JARFile.QueryInterface(Ci.nsIFileURL).file;
|
||||||
|
Services.ppmm.broadcastAsyncMessage("Extension:FlushJarCache", {path: file.path});
|
||||||
|
}
|
||||||
|
|
||||||
if (this.cleanupFile ||
|
if (this.cleanupFile ||
|
||||||
["ADDON_INSTALL", "ADDON_UNINSTALL", "ADDON_UPGRADE", "ADDON_DOWNGRADE"].includes(reason)) {
|
["ADDON_INSTALL", "ADDON_UNINSTALL", "ADDON_UPGRADE", "ADDON_DOWNGRADE"].includes(reason)) {
|
||||||
StartupCache.clearAddonData(this.id);
|
StartupCache.clearAddonData(this.id);
|
||||||
|
|
|
@ -523,6 +523,13 @@ class AOMExtensionWrapper extends ExtensionWrapper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async _flushCache() {
|
||||||
|
if (this.extension && this.extension.rootURI instanceof Ci.nsIJARURI) {
|
||||||
|
let file = this.extension.rootURI.JARFile.QueryInterface(Ci.nsIFileURL).file;
|
||||||
|
await Services.ppmm.broadcastAsyncMessage("Extension:FlushJarCache", {path: file.path});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
get version() {
|
get version() {
|
||||||
return this.addon && this.addon.version;
|
return this.addon && this.addon.version;
|
||||||
}
|
}
|
||||||
|
@ -540,12 +547,19 @@ class AOMExtensionWrapper extends ExtensionWrapper {
|
||||||
return this._install(this.file);
|
return this._install(this.file);
|
||||||
}
|
}
|
||||||
|
|
||||||
upgrade(data) {
|
async unload() {
|
||||||
|
await this._flushCache();
|
||||||
|
return super.unload();
|
||||||
|
}
|
||||||
|
|
||||||
|
async upgrade(data) {
|
||||||
this.startupPromise = new Promise(resolve => {
|
this.startupPromise = new Promise(resolve => {
|
||||||
this.resolveStartup = resolve;
|
this.resolveStartup = resolve;
|
||||||
});
|
});
|
||||||
this.state = "restarting";
|
this.state = "restarting";
|
||||||
|
|
||||||
|
await this._flushCache();
|
||||||
|
|
||||||
let xpiFile = Extension.generateXPI(data);
|
let xpiFile = Extension.generateXPI(data);
|
||||||
|
|
||||||
this.cleanupFiles.push(xpiFile);
|
this.cleanupFiles.push(xpiFile);
|
||||||
|
|
|
@ -84,6 +84,7 @@ MOCHITEST_MANIFESTS += [
|
||||||
MOCHITEST_CHROME_MANIFESTS += ['test/mochitest/chrome.ini']
|
MOCHITEST_CHROME_MANIFESTS += ['test/mochitest/chrome.ini']
|
||||||
XPCSHELL_TESTS_MANIFESTS += [
|
XPCSHELL_TESTS_MANIFESTS += [
|
||||||
'test/xpcshell/native_messaging.ini',
|
'test/xpcshell/native_messaging.ini',
|
||||||
|
'test/xpcshell/xpcshell-e10s.ini',
|
||||||
'test/xpcshell/xpcshell-remote.ini',
|
'test/xpcshell/xpcshell-remote.ini',
|
||||||
'test/xpcshell/xpcshell.ini',
|
'test/xpcshell/xpcshell.ini',
|
||||||
]
|
]
|
||||||
|
|
|
@ -5,6 +5,7 @@ const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
|
||||||
/* exported createHttpServer, promiseConsoleOutput, cleanupDir */
|
/* exported createHttpServer, promiseConsoleOutput, cleanupDir */
|
||||||
|
|
||||||
Components.utils.import("resource://gre/modules/AppConstants.jsm");
|
Components.utils.import("resource://gre/modules/AppConstants.jsm");
|
||||||
|
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||||
Components.utils.import("resource://gre/modules/Timer.jsm");
|
Components.utils.import("resource://gre/modules/Timer.jsm");
|
||||||
Components.utils.import("resource://testing-common/AddonTestUtils.jsm");
|
Components.utils.import("resource://testing-common/AddonTestUtils.jsm");
|
||||||
|
@ -25,8 +26,8 @@ XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
|
||||||
"resource://gre/modules/NetUtil.jsm");
|
"resource://gre/modules/NetUtil.jsm");
|
||||||
XPCOMUtils.defineLazyModuleGetter(this, "Schemas",
|
XPCOMUtils.defineLazyModuleGetter(this, "Schemas",
|
||||||
"resource://gre/modules/Schemas.jsm");
|
"resource://gre/modules/Schemas.jsm");
|
||||||
XPCOMUtils.defineLazyModuleGetter(this, "Services",
|
|
||||||
"resource://gre/modules/Services.jsm");
|
Services.prefs.setBoolPref("extensions.webextensions.remote", false);
|
||||||
|
|
||||||
ExtensionTestUtils.init(this);
|
ExtensionTestUtils.init(this);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/* globals ExtensionTestUtils */
|
||||||
|
|
||||||
|
ExtensionTestUtils.remoteContentScripts = true;
|
|
@ -1,5 +1,4 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
/* globals ExtensionTestUtils */
|
Services.prefs.setBoolPref("extensions.webextensions.remote", true);
|
||||||
|
Services.prefs.setIntPref("dom.ipc.keepProcessesAlive.extension", 1);
|
||||||
ExtensionTestUtils.remoteContentScripts = true;
|
|
||||||
|
|
|
@ -42,7 +42,6 @@ skip-if = true # This test no longer tests what it is meant to test.
|
||||||
[test_ext_runtime_getPlatformInfo.js]
|
[test_ext_runtime_getPlatformInfo.js]
|
||||||
[test_ext_runtime_onInstalled_and_onStartup.js]
|
[test_ext_runtime_onInstalled_and_onStartup.js]
|
||||||
[test_ext_runtime_sendMessage.js]
|
[test_ext_runtime_sendMessage.js]
|
||||||
[test_ext_runtime_sendMessage_args.js]
|
|
||||||
[test_ext_runtime_sendMessage_errors.js]
|
[test_ext_runtime_sendMessage_errors.js]
|
||||||
[test_ext_runtime_sendMessage_no_receiver.js]
|
[test_ext_runtime_sendMessage_no_receiver.js]
|
||||||
[test_ext_runtime_sendMessage_self.js]
|
[test_ext_runtime_sendMessage_self.js]
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
[DEFAULT]
|
||||||
|
head = head.js head_e10s.js
|
||||||
|
tail =
|
||||||
|
firefox-appdir = browser
|
||||||
|
skip-if = appname == "thunderbird" || os == "android"
|
||||||
|
dupe-manifest =
|
||||||
|
support-files =
|
||||||
|
data/**
|
||||||
|
xpcshell-content.ini
|
||||||
|
tags = webextensions webextensions-e10s
|
||||||
|
|
||||||
|
[include:xpcshell-content.ini]
|
|
@ -1,5 +1,5 @@
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
head = head.js head_remote.js
|
head = head.js head_remote.js head_e10s.js
|
||||||
tail =
|
tail =
|
||||||
firefox-appdir = browser
|
firefox-appdir = browser
|
||||||
skip-if = appname == "thunderbird" || os == "android"
|
skip-if = appname == "thunderbird" || os == "android"
|
||||||
|
@ -7,6 +7,7 @@ dupe-manifest =
|
||||||
support-files =
|
support-files =
|
||||||
data/**
|
data/**
|
||||||
xpcshell-content.ini
|
xpcshell-content.ini
|
||||||
tags = webextensions webextensions-e10s
|
tags = webextensions remote-webextensions
|
||||||
|
|
||||||
|
[include:xpcshell-common.ini]
|
||||||
[include:xpcshell-content.ini]
|
[include:xpcshell-content.ini]
|
||||||
|
|
|
@ -7,7 +7,24 @@ support-files =
|
||||||
data/**
|
data/**
|
||||||
head_sync.js
|
head_sync.js
|
||||||
xpcshell-content.ini
|
xpcshell-content.ini
|
||||||
tags = webextensions
|
tags = webextensions in-process-webextensions
|
||||||
|
|
||||||
|
# This file contains tests which are not affected by multi-process
|
||||||
|
# configuration, or do not support out-of-process content or extensions
|
||||||
|
# for one reason or another.
|
||||||
|
#
|
||||||
|
# Tests which are affected by remote content or remote extensions should
|
||||||
|
# go in one of:
|
||||||
|
#
|
||||||
|
# - xpcshell-common.ini
|
||||||
|
# For tests which should run in all configurations.
|
||||||
|
# - xpcshell-remote.ini
|
||||||
|
# For tests which should only run with both remote extensions and remote content.
|
||||||
|
# - xpcshell-content.ini
|
||||||
|
# For tests which rely on content pages, and should run in all configurations.
|
||||||
|
# - xpcshell-e10s.ini
|
||||||
|
# For tests which rely on conetn pages, and should only run with remote content
|
||||||
|
# but in-process extensions.
|
||||||
|
|
||||||
[test_MatchPattern.js]
|
[test_MatchPattern.js]
|
||||||
[test_WebExtensionContentScript.js]
|
[test_WebExtensionContentScript.js]
|
||||||
|
@ -15,86 +32,28 @@ tags = webextensions
|
||||||
|
|
||||||
[test_csp_custom_policies.js]
|
[test_csp_custom_policies.js]
|
||||||
[test_csp_validator.js]
|
[test_csp_validator.js]
|
||||||
[test_ext_alarms.js]
|
|
||||||
[test_ext_alarms_does_not_fire.js]
|
|
||||||
[test_ext_alarms_periodic.js]
|
|
||||||
[test_ext_alarms_replaces.js]
|
|
||||||
[test_ext_api_permissions.js]
|
|
||||||
[test_ext_background_generated_load_events.js]
|
|
||||||
[test_ext_background_generated_reload.js]
|
|
||||||
[test_ext_background_global_history.js]
|
|
||||||
skip-if = os == "android" # Android does not use Places for history.
|
|
||||||
[test_ext_background_private_browsing.js]
|
|
||||||
[test_ext_background_runtime_connect_params.js]
|
|
||||||
[test_ext_background_sub_windows.js]
|
|
||||||
[test_ext_background_window_properties.js]
|
|
||||||
skip-if = os == "android"
|
|
||||||
[test_ext_browserSettings.js]
|
|
||||||
[test_ext_contexts.js]
|
[test_ext_contexts.js]
|
||||||
[test_ext_contextual_identities.js]
|
|
||||||
skip-if = os == "android" # Containers are not exposed to android.
|
|
||||||
[test_ext_debugging_utils.js]
|
|
||||||
[test_ext_downloads.js]
|
|
||||||
[test_ext_downloads_download.js]
|
|
||||||
skip-if = os == "android"
|
|
||||||
[test_ext_downloads_misc.js]
|
|
||||||
skip-if = os == "android" || (os=='linux' && bits==32) # linux32: bug 1324870
|
|
||||||
[test_ext_downloads_search.js]
|
|
||||||
skip-if = os == "android"
|
|
||||||
[test_ext_experiments.js]
|
|
||||||
[test_ext_extension.js]
|
|
||||||
[test_ext_extension_content_telemetry.js]
|
|
||||||
[test_ext_extension_startup_telemetry.js]
|
|
||||||
[test_ext_extensionPreferencesManager.js]
|
|
||||||
[test_ext_extensionSettingsStore.js]
|
|
||||||
[test_ext_idle.js]
|
|
||||||
[test_ext_json_parser.js]
|
[test_ext_json_parser.js]
|
||||||
[test_ext_localStorage.js]
|
|
||||||
[test_ext_management.js]
|
|
||||||
[test_ext_management_uninstall_self.js]
|
|
||||||
[test_ext_manifest_content_security_policy.js]
|
[test_ext_manifest_content_security_policy.js]
|
||||||
[test_ext_manifest_incognito.js]
|
[test_ext_manifest_incognito.js]
|
||||||
[test_ext_manifest_minimum_chrome_version.js]
|
[test_ext_manifest_minimum_chrome_version.js]
|
||||||
[test_ext_manifest_themes.js]
|
[test_ext_manifest_themes.js]
|
||||||
[test_ext_onmessage_removelistener.js]
|
|
||||||
skip-if = true # This test no longer tests what it is meant to test.
|
|
||||||
[test_ext_permissions.js]
|
|
||||||
skip-if = os == "android" # Bug 1350559
|
|
||||||
[test_ext_privacy.js]
|
|
||||||
[test_ext_privacy_disable.js]
|
|
||||||
[test_ext_privacy_update.js]
|
|
||||||
[test_ext_runtime_connect_no_receiver.js]
|
|
||||||
[test_ext_runtime_getBrowserInfo.js]
|
|
||||||
[test_ext_runtime_getPlatformInfo.js]
|
|
||||||
[test_ext_runtime_onInstalled_and_onStartup.js]
|
|
||||||
[test_ext_runtime_sendMessage.js]
|
|
||||||
[test_ext_runtime_sendMessage_args.js]
|
|
||||||
[test_ext_runtime_sendMessage_errors.js]
|
|
||||||
[test_ext_runtime_sendMessage_no_receiver.js]
|
|
||||||
[test_ext_runtime_sendMessage_self.js]
|
|
||||||
[test_ext_schemas.js]
|
[test_ext_schemas.js]
|
||||||
[test_ext_schemas_async.js]
|
[test_ext_schemas_async.js]
|
||||||
[test_ext_schemas_allowed_contexts.js]
|
[test_ext_schemas_allowed_contexts.js]
|
||||||
[test_ext_schemas_revoke.js]
|
[test_ext_schemas_revoke.js]
|
||||||
[test_ext_shutdown_cleanup.js]
|
|
||||||
[test_ext_simple.js]
|
|
||||||
[test_ext_startup_cache.js]
|
|
||||||
[test_ext_storage.js]
|
|
||||||
[test_ext_storage_sync.js]
|
|
||||||
head = head.js head_sync.js
|
|
||||||
skip-if = os == "android"
|
|
||||||
[test_ext_storage_sync_crypto.js]
|
|
||||||
skip-if = os == "android"
|
|
||||||
[test_ext_storage_telemetry.js]
|
|
||||||
[test_ext_themes_supported_properties.js]
|
[test_ext_themes_supported_properties.js]
|
||||||
[test_ext_topSites.js]
|
|
||||||
skip-if = os == "android"
|
|
||||||
[test_ext_unknown_permissions.js]
|
[test_ext_unknown_permissions.js]
|
||||||
[test_ext_legacy_extension_context.js]
|
|
||||||
[test_ext_legacy_extension_embedding.js]
|
|
||||||
[test_locale_converter.js]
|
[test_locale_converter.js]
|
||||||
[test_locale_data.js]
|
[test_locale_data.js]
|
||||||
[test_native_messaging.js]
|
|
||||||
skip-if = os == "android"
|
[test_ext_permissions.js]
|
||||||
|
skip-if = os == "android" # Bug 1350559
|
||||||
|
[test_ext_runtime_sendMessage_args.js]
|
||||||
|
|
||||||
|
[test_ext_legacy_extension_context.js]
|
||||||
|
[test_ext_legacy_extension_embedding.js]
|
||||||
[test_proxy_scripts.js]
|
[test_proxy_scripts.js]
|
||||||
|
|
||||||
|
[include:xpcshell-common.ini]
|
||||||
[include:xpcshell-content.ini]
|
[include:xpcshell-content.ini]
|
||||||
|
|
Загрузка…
Ссылка в новой задаче