On 2016年09月23日 11:42, ishikawa wrote: > On 2016年09月22日 17:33, Mark Banner wrote: >> On 22/09/2016 08:44, ISHIKAWA,chiaki wrote: >>> 3:07:56 INFO - 1474488476446 addons.xpi-utils WARN >>> addMetadata: Add-on specialpow...@mozilla.org is invalid: Error: Invalid >>> addon ID: expected addon ID specialpow...@mozilla.org, found >>> special-pow...@mozilla.org in manifest ... >>> >>> >>> I am not sure if this comes from the intended test. >>> Rather it looks a configuration error. >>> The error line seems to appear at beginning of the selected run of each >>> test directory. >>> >> ... >>> cf. 3 results from the comm-central tree: >>> mozilla/testing/specialpowers/Makefile.in >>> ♢7 XPI_PKGNAME = specialpow...@mozilla.org >> >> Looks like this is different from what is specified in >> testing/specialpowers/install.rdf - which is the dashed version, and was >> introduced when it was rewritten last year. >> >> The simplest thing is probably to change the install.rdf to remove the dash >> as then it wouldn't be changing the file name on disk - and also update the >> other couple of instances in the tree. Probably worth a running through a >> few tests on try just to make sure as well. >> >> The test infrastructure has probably got away with it due to the next >> warning of "Could not uninstall invalid item from locked install location", >> so it kept on using it. >> >> Mark > > By changing a few install.rdf as suggested, the particular error messages > are gone, but > I now see different failures. > > https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=de72a169065a2bbb7f69a0e5420992bfca5a77ec > > I am testing other patches as well, the particular patch to modify > install.rdf is > https://hg.mozilla.org/try-comm-central/rev/a135ec33cb11 > > I will investigate more to see if the new errors are due to my changes or > a regression caused by a later change to M-C, etc. > > TIA >
The new errors are obviously related to my change. (linux 64 debug) Assertion failure: IsInAutomation(), at /builds/slave/tb-try-c-cen-l64-d-00000000000/build/mozilla/js/xpconnect/src/xpcprivate.h:3445 (OSX 10.10 debug) Assertion failure: IsInAutomation(), at /builds/slave/tb-try-c-cen-m64-d-00000000000/build/mozilla/js/xpconnect/src/xpcprivate.h:3445 (WIndows 7 debug) Assertion failure: IsInAutomation(), at c:\builds\moz2_slave\tb-try-c-cen-w32-d-00000000000\build\mozilla\js\xpconnect\src\xpcprivate.h:3445 xpprivate.h:3445 is inline void CrashIfNotInAutomation() { MOZ_RELEASE_ASSERT(IsInAutomation()); } So where is CrashIfNotInAutomation() called? 5 results from the comm-central tree: Switch Tree mozilla/js/xpconnect/src/XPCComponents.cpp ♢ 2920 CrashIfNotInAutomation(); ♢ 2931 CrashIfNotInAutomation(); mozilla/js/xpconnect/src/xpcprivate.h ♢ 3443 CrashIfNotInAutomation() mozilla/js/xpconnect/wrappers/WrapperFactory.cpp ♢ 453 CrashIfNotInAutomation(); ♢ 459 CrashIfNotInAutomation(); These places seem to try to use a different variant of XPC API or something depending on where the code is executed (hmm, tricky and not sure if this is a great idea in view of security), and since the string is changed, the assertion now fails, it seems. (Which means then, maybe I need to reverse the change of one python script, and one JavaScript file.) I changed only these: diff --git a/build/mobile/b2gautomation.py b/build/mobile/b2gautomation.py --- a/build/mobile/b2gautomation.py +++ b/build/mobile/b2gautomation.py @@ -89,18 +89,18 @@ class B2GRemoteAutomation(Automation): for rdfChild in document.documentElement.childNodes: if rdfChild.nodeType == Node.ELEMENT_NODE and rdfChild.tagName == "Description": for descChild in rdfChild.childNodes: if descChild.nodeType == Node.ELEMENT_NODE and descChild.tagName == "em:id": return descChild.childNodes[0].data return None def installExtension(self, extensionSource, profileDir, extensionID=None): - # Bug 827504 - installing special-powers extension separately causes problems in B2G - if extensionID != "special-pow...@mozilla.org": + # Bug 827504 - installing specialpowers extension separately causes problems in B2G + if extensionID != "specialpow...@mozilla.org": if not os.path.isdir(profileDir): self.log.info("INFO | automation.py | Cannot install extension, invalid profileDir at: %s", profileDir) return installRDFFilename = "install.rdf" extensionsRootDir = os.path.join(profileDir, "extensions", "staged") if not os.path.isdir(extensionsRootDir): diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -5339,17 +5339,17 @@ pref("dom.mozSettings.SettingsService.ve pref("dom.mozSettings.allowForceReadOnly", false); // The interval at which to check for slow running addons #ifdef NIGHTLY_BUILD pref("browser.addon-watch.interval", 15000); #else pref("browser.addon-watch.interval", -1); #endif -pref("browser.addon-watch.ignore", "[\"mochi...@mozilla.org\",\"special-pow...@mozilla.org\",\"fxdevtools-adapt...@mozilla.org\",\"fx-devtools\"]"); +pref("browser.addon-watch.ignore", "[\"mochi...@mozilla.org\",\"specialpow...@mozilla.org\",\"fxdevtools-adapt...@mozilla.org\",\"fx-devtools\"]"); // Search service settings pref("browser.search.log", false); pref("browser.search.update", true); pref("browser.search.update.log", false); pref("browser.search.update.interval", 21600); pref("browser.search.suggest.enabled", true); pref("browser.search.reset.enabled", false); diff --git a/testing/specialpowers/install.rdf b/testing/specialpowers/install.rdf --- a/testing/specialpowers/install.rdf +++ b/testing/specialpowers/install.rdf @@ -1,15 +1,15 @@ <?xml version="1.0"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> - <em:id>special-pow...@mozilla.org</em:id> + <em:id>specialpow...@mozilla.org</em:id> <em:version>2015.11.16</em:version> <em:type>2</em:type> <em:bootstrap>true</em:bootstrap> <!-- Target Application this extension can install into, with minimum and maximum supported versions. --> <em:targetApplication> <Description> I think I am going to file a bugzilla very soon now. TIA cf. https://dxr.mozilla.org/comm-central/source/mozilla/js/xpconnect/src/XPCComponents.cpp#2920 NS_IMETHODIMP nsXPCComponents_Utils::ForcePermissiveCOWs(JSContext* cx) { CrashIfNotInAutomation(); CompartmentPrivate::Get(CurrentGlobalOrNull(cx))->forcePermissiveCOWs = true; return NS_OK; } NS_IMETHODIMP nsXPCComponents_Utils::ForcePrivilegedComponentsForScope(HandleValue vscope, JSContext* cx) { if (!vscope.isObject()) return NS_ERROR_INVALID_ARG; CrashIfNotInAutomation(); JSObject* scopeObj = js::UncheckedUnwrap(&vscope.toObject()); XPCWrappedNativeScope* scope = ObjectScope(scopeObj); scope->ForcePrivilegedComponents(); return NS_OK; } https://dxr.mozilla.org/comm-central/source/mozilla/js/xpconnect/wrappers/WrapperFactory.cpp#453 // // First, handle the special cases. // // If UniversalXPConnect is enabled, this is just some dumb mochitest. Use // a vanilla CCW. if (xpc::IsUniversalXPConnectEnabled(target)) { CrashIfNotInAutomation(); wrapper = &CrossCompartmentWrapper::singleton; } // Let the SpecialPowers scope make its stuff easily accessible to content. else if (CompartmentPrivate::Get(origin)->forcePermissiveCOWs) { CrashIfNotInAutomation(); wrapper = &CrossCompartmentWrapper::singleton; } _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform