gecko-dev/devtools/client/framework/connect
Luca Greco 0747cbb551 Bug 1302702 - Make WebExtension Addon Debugging oop-compatible. r=ochameau
This patch applies all the changes needed to the devtools actors
and the toolbox-process-window, to be able to debug a webextension
running in an extension child process (as well as a webextension
running in the main process).

The devtools actor used to debug a webextension is splitted into
3 actors:

- the WebExtensionActor is the actor that is created when the
  "root.listTabs" RDP request is received, it provides the addon
  metadata (name, icon and addon id) and two RDP methods:

  - reload: used to reload the addon (e.g. from the "about:debugging#addons" page)
  - connectAddonDebuggingActor: which provides the actorID of the actor
    that is connected to the process where the extension is running
    (used by toolbox-process-window.js to connect the toolbox to the needed
    devtools actors, e.g. console, inspector etc.)

- the WebExtensionParentActor is the actor that connects to the
  process where the extension is running and ensures that a
  WebExtensionChildActor instance is created and connected
  (this actor is only the entrypoint to reach the WebExtensionChildActor,
  and so it does not provide any RDP request on its own, it only connect
  itself to its child counterpart and then it returns the RDP "form" of
  the child actor, and the client is then connected directly to the
  child actor)

- the WebExtensionChildActor is the actor that is running in the same
  process of the target extension, and it provides the same requestTypes
  of a tab actor.

By splitting the WebExtensionActor from the WebExtensionParentActor, we are
able to prevent the RemoteDebuggingServer to connect (and create
instances of the WebExtensionChildActor) for every addon listed by
a root.listAddons() request.

MozReview-Commit-ID: L1vxhA6xQkD

--HG--
extra : rebase_source : 7ed7735084d9351ff32ab1ad822e53dd0828dace
2017-03-21 15:55:35 +01:00
..
connect.css Bug 1334958 - devtools/content/framework/connect/connect.css uses float: inline-end r=jryans 2017-01-30 15:11:12 +02:00
connect.js Bug 1302702 - Make WebExtension Addon Debugging oop-compatible. r=ochameau 2017-03-21 15:55:35 +01:00
connect.xhtml Bug 1342144 - Remove version parameter from the type attribute of script elements. r=jmaher 2017-02-23 06:10:07 +09:00