This avoids an issue described in https://github.com/mozilla-services/screenshots/issues/3027 Bug 1372750 and Bug 1373749 where a cached version of Screenshot's manifest.json is retained after upgrade
r?aswan
MozReview-Commit-ID: 9RMKTFN1ugI
Also removes some dead code.
A lot of the code in ExtensionUtils.jsm is not needed in all processes, and a
lot of the rest isn't needed until extension code runs. Most of it winds up
being loaded into all processes way earlier than necessary.
MozReview-Commit-ID: CMRjCPOjRF2
This change prepare the WebExtensions internals to the changes applied to the
addon debugging facilities in the other patches from this queue.
In ExtensionParent.jsm, a HiddenXULWindow helper class has been refactored out
of the HiddenExtensionPage and then reused by both HiddenExtensionPage and
the new DebugUtils object.
The DebugUtils object provides the utility methods used by the
devtools actors related to the addon debugging, which are used to retrieve
an "extension process browser XUL element" (a XUL browser element that has been
configured by DebugUtils to be used to connect the devtools parent
actor to the process where the target extension is running), and then release it
when it is not needed anymore (because the developer toolbox has been closed and
all the devtools actors destroyed).
The DebugUtils object used the HiddenXULWindow class to lazily create
an hidden XUL window to contain the "extension process browser XUL elements"
described above (and the HiddenXULWindow istance is then destroyed when there
is no devtools actor that is using it anymore).
MozReview-Commit-ID: 31RYQk1DMvE
This change prepare the WebExtensions internals to the changes applied to the
addon debugging facilities in the other patches from this queue.
In ExtensionParent.jsm, a HiddenXULWindow helper class has been refactored out
of the HiddenExtensionPage and then reused by both HiddenExtensionPage and
the new DebugUtils object.
The DebugUtils object provides the utility methods used by the
devtools actors related to the addon debugging, which are used to retrieve
an "extension process browser XUL element" (a XUL browser element that has been
configured by DebugUtils to be used to connect the devtools parent
actor to the process where the target extension is running), and then release it
when it is not needed anymore (because the developer toolbox has been closed and
all the devtools actors destroyed).
The DebugUtils object used the HiddenXULWindow class to lazily create
an hidden XUL window to contain the "extension process browser XUL elements"
described above (and the HiddenXULWindow istance is then destroyed when there
is no devtools actor that is using it anymore).
MozReview-Commit-ID: 31RYQk1DMvE
- a DevToolsExtensionPageContextParent instance can be missing a devToolsTarget
property when it is destroyed (because the devToolsTarget property is set lazily
if the extension page is using any API that actually needs a TabTarget instance)
- the DevToolsExtensionPageContextParent's shutdown method should
call super.shutdown to complete its cleanup.
MozReview-Commit-ID: EnxEZ0rrnTT
This patch introduces the new DevToolsExtensionPageContextParent class,
a class specialized for the devtools extension contexts needs, and
other changes needed to support the DevTools Extension contexts
(e.g. the devtools pages and devtools panels).
MozReview-Commit-ID: dIeVpNJGN