Closed Bug 982281 Opened 10 years ago Closed 10 years ago

[app manager] Closing remote browser tab crashes remote browser tabs list render in App Manager

Categories

(DevTools Graveyard :: WebIDE, defect)

x86
All
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: rtnpro, Unassigned)

References

(Blocks 2 open bugs)

Details

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36

Steps to reproduce:

In https://bugzilla.mozilla.org/show_bug.cgi?id=912900, we implemented showing remote browser tabs in App Manager to allow remote debugging. However, when we close a tab in the remote browser, App Manager fails to re render the updated list of remote tabs.

Steps to reproduce:
1. Connect your android phone with Firefox to your computer.
2. Connect App Manager to your android phone's Firefox browser.
3. Switch to "Browser tabs" tab to see the list of open tabs in your remote browser.
4. Close a tab in your Android phone's Firefox. App Manager will fail to re render the updated list of remote tabs and will get disconnected.


Actual results:

Following logs were captured in the console during the above event:

[89146] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80040111: file /Users/rtnpro/Mozilla/devtools/fx-team/dom/events/nsContentEventHandler.cpp, line 96
DBG-CLIENT: Got: {
  "from": "root",
  "type": "tabListChanged"
}
DBG-CLIENT: Got: {
  "error": "unknownError",
  "message": "error occurred while processing 'listTabs: TypeError: this.window is undefined\nStack: BTA_form@resource://gre/modules/devtools/dbg-server.jsm -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/webbrowser.js:590\n@resource://gre/modules/devtools/dbg-server.jsm -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/root.js:271\nresolve@resource://gre/modules/commonjs/sdk/core/promise.js:118\nthen@resource://gre/modules/commonjs/sdk/core/promise.js:43\nthen@resource://gre/modules/commonjs/sdk/core/promise.js:153\n@resource://gre/modules/devtools/dbg-server.jsm -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/actors/root.js:245\nDSC_onPacket@resource://gre/modules/devtools/dbg-server.jsm -> resource://gre/modules/devtools/server/main.js:1019\n@resource://gre/modules/devtools/dbg-server.jsm -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/transport.js:201\n@resource://gre/modules/devtools/dbg-server.jsm -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/DevToolsUtils.js:75\n",
  "from": "root"
}


Expected results:

The list of remote tabs should have been updated and should have kept working.
Component: Untriaged → Developer Tools: App Manager
OS: Mac OS X → All
Status: UNCONFIRMED → NEW
Ever confirmed: true
Hey @jryans,

Any pointers on where and how to start to fix this bug?

Regards,
rtnpro
Flags: needinfo?(jryans)
Hmm, I'm not sure what needs to be done here just from looking at the code.  This may take some investigation via logging or other means of the root actor's |onListTabs| method to see how it performs on Android in this case.

Panos, any guesses here, given that mentioned seeing something similar in the past?
Flags: needinfo?(jryans) → needinfo?(past)
Indeed logging is invaluable in this case. Note that Fennec has about:config where you can toggle devtools.debugger.log to see protocol traffic in adb (adb logcat | grep -i gecko).

I see 2 problems here:

1. tabListChanged packets are no longer sent. This must be a recent regression, since I'm sure I saw them on 3/7 when I closed bug 813545.
2. The App Manager improperly caches the available targets or something, as I can debug the tab that is still open when I use the "Connect..." menu item. Trying to connect to the closed tab will of course not work.
Flags: needinfo?(past)
@jryans,

Any lead where can I start looking to fix this bug?

Regards,
rtnpro
Flags: needinfo?(jryans)
(In reply to rtnpro from comment #4)
> @jryans,
> 
> Any lead where can I start looking to fix this bug?
> 
> Regards,
> rtnpro

Unfortunately, I don't have any more info for now than what's in this bug.  I have a feeling there's an easy fix here, but I wouldn't know what it is without doing quite a lot of debugging to figure out what's going wrong, and by then I'd likely have a fix I could add myself. :)

I think this bug requires more knowledge about Dev Tools actor internals, so it may not be a good fit for you to take on at this time.  But, there are many other Dev Tools bugs you could take a look at[1].

[1]: http://mzl.la/1czTRyL
Flags: needinfo?(jryans)
I can no longer duplicate this using WebIDE and Fennec Nightly.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
Product: Firefox → DevTools
Product: DevTools → DevTools Graveyard
You need to log in before you can comment on or make changes to this bug.