Closed Bug 1102245 Opened 10 years ago Closed 9 years ago

Tab actor isn't instantiated in e10s enabled browser

Categories

(DevTools :: General, defect)

x86_64
Windows 7
defect
Not set
normal

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
@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]
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)
(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
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
(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
Whiteboard: [firebug-p1] → [firebug-p1][e10s-m7]
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...
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: 9 years ago
Resolution: --- → INVALID
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.