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

Reply via email to