Closed
Bug 1102245
Opened 10 years ago
Closed 10 years ago
Tab actor isn't instantiated in e10s enabled browser
Categories
(DevTools :: General, defect)
Tracking
(e10s+)
RESOLVED
INVALID
Tracking | Status | |
---|---|---|
e10s | + | --- |
People
(Reporter: Honza, Unassigned)
References
Details
(Whiteboard: [firebug-p1][e10s-m7])
I am seeing the following exception when registering a new actor by an extensions: "Can't manage front without an actor ID"
STR:
1) Clone: https://github.com/firebug/extension-examples/tree/master/CustomActor
(example addon that registers a simple tab actor)
2) Run with Nightly + e10s enabled (it works when e10s is disabled)
3) Open the toolbox and select the new panel "My Panel"
4) Check out the Browser console. There is an exception:
Handler function DebuggerClient.requester request callback threw an exception: Error: Can't manage front without an actor ID.
Ensure server supports myactor.
The actor is not instantiated properly.
The proper message in the Browser Console should be:
"myPanel.connect; (from myActor): Hello from the backend!"
Honza
Reporter | ||
Comment 1•10 years ago
|
||
@Alex: is this known bug?
I know e10s is not yet working for ActorRegistryFront, but in this case it should work, no?
Honza
Flags: needinfo?(poirot.alex)
Whiteboard: [firebug-p1]
Comment 2•10 years ago
|
||
Why would it work if e10s is enabled ?! Your client code is going to miss the actor...
You know need to do things similar to what Luca did for his patch, using his new API on DebuggerServer (DebuggerServer.setupInParent, from attachment 8520257 [details] [diff] [review])
Flags: needinfo?(poirot.alex)
Updated•10 years ago
|
Blocks: dte10s
tracking-e10s:
--- → +
Reporter | ||
Comment 3•10 years ago
|
||
(In reply to Alexandre Poirot [:ochameau] from comment #2)
> Why would it work if e10s is enabled ?! Your client code is going to miss
> the actor...
> You know need to do things similar to what Luca did for his patch, using his
> new API on DebuggerServer (DebuggerServer.setupInParent, from attachment
> 8520257 [details] [diff] [review])
So, this means that built-in tab actors (e.g. GcliActor, StorageActor, etc.) registered using DebuggerServer.registerModule() in DebuggerServer.registerModule() also doesn't work...?
Honza
Comment 4•10 years ago
|
||
Please looks at Luca's documentation in attachment 8520257 [details] [diff] [review].
Regular *static* actor work as the DebuggerServer instanciated call registerModule for all of them.
But as you didn't provided a e10s code for your patch, you are *not* calling registerModule for your dynamically registerered actors *in the child*.
You will have to sync up with Luca in order to land attachment 8520257 [details] [diff] [review] and use it to make ActorActor e10s compatible.
ActorRegistryActor.registerActor call Debugger.addXXXActor in the parent process, but not in the childs.
So you need to use luca helpers to propagate the call to addXXXActor into child DebuggerServer's
Reporter | ||
Comment 5•10 years ago
|
||
(In reply to Alexandre Poirot [:ochameau] from comment #4)
> Regular *static* actor work as the DebuggerServer instanciated call
> registerModule for all of them.
> But as you didn't provided a e10s code for your patch, you are *not* calling
> registerModule for your dynamically registerered actors *in the child*.
No, please read my comment #1, I am not talking about ActorRegistryFront here...
The attached extension *is* using registerModule just like built-in tab actors.
https://github.com/firebug/extension-examples/blob/master/CustomActor/lib/main.js#L15
> You will have to sync up with Luca in order to land attachment 8520257 [details] [diff] [review]
> [details] [diff] [review] and use it to make ActorActor e10s compatible.
Yes, I know and I'll report separate bug for it.
Honza
Updated•10 years ago
|
Whiteboard: [firebug-p1] → [firebug-p1][e10s-m7]
Comment 6•10 years ago
|
||
DebuggerServer.registerModule isn't e10s compatible, it will only register your actor in the parent process (where the addon lives). So it should work against the chrome root actor, and any non-OOP tab.
But it won't in OOP tab, as there is one DebuggerServer instance for each OOP tab, where you also need to call DebuggerServer.registerModule. That's where Luca's helper will help doing that for your ActorRegistry.
Addons should be using either your patch or luca's one to register actors...
Reporter | ||
Comment 7•10 years ago
|
||
OK, understood
I reported a new bug related to e10s and ActorRegistryActor: Bug 1107888
And I am closing this one.
Honza
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → INVALID
Updated•6 years ago
|
Product: Firefox → DevTools
You need to log in
before you can comment on or make changes to this bug.
Description
•