Closed Bug 886546 Opened 8 years ago Closed 8 years ago

implement metro debug actors for developer tools

Categories

(Firefox for Metro Graveyard :: Browser, defect)

x86_64
Windows 8
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: ally, Assigned: ally)

References

Details

Attachments

(1 file)

forking work from bug 850019, and making that into a proper story. This will bug will enable metro to connect remotely and start the devtools. 

Note that currently not all the tools will work, there are separate bugs for those issues, such as the missing content profiler and missing chrome profiler.
Attachment #766940 - Flags: review?(sfoster)
about:config on desktop
  set
    devtools.debugger.force-local -> false
    devtools.debugger.remote-enabled -> true
  if you don't have them set, you'll probably need these as well
    devtools.debugger.log -> true
    browser.dom.window.dump.enabled  -> true
    devtools.errorconsole.enabled -> true
  check that (these are the default values)
    devtools.debugger.remote-port -> 6000
    devtools.debugger.remote-host -> localhost

about:config on metrofx
  set
    devtools.debugger.force-local -> false
    devtools.debugger.remote-enabled -> true
  if you don't have them set, you'll probably need these as well
    devtools.debugger.log -> true
  check that (these are the default values)
    devtools.debugger.remote-port -> 6000


STR
0) This assumes you are connecting classic fx & metrofx running on the
same machine. I generally do this with an external monitor running
classic and metrofx immersive running on the touch screen.
    - If you would like to run them through a remote connection, make
      sure the remote-host is the address of the metrofx box.
    - You may have to disable the firewall on win8 for this. check that
      you can ping the box
1) Update classic fx's about:config
2) Restart classic fx
3) You should see Fx button -> Web Developer -> "Connect.." between the
Error Console" & "Get More Tools" Entry
  - https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Debugging/Setting_up
    is what this step is based on
4) update metrofx's about:config 
  - (afaik a restart is not required, but I often do because I'm rebuilding often)
5) make sure metrofx is started
6) go to classic fx, click the "Connect..." entry
  - this will launch a new tab
  - make sure the remote host & remote port are what you expect
7) Click the connect button
8) On metrofx, a strap will pop up about the incoming connection. Click
"allow"
9) On classic fx, the connect page will reload with a list of active
tabs & processes. Click on 'main process'
10) the devtools console will appear & the aforementioned tab on classic
fx will disappear
11) Enjoy!
Assignee: nobody → ally
Note, if you use two machines, eg remote. You will be both machines to be able to ping each other.

at this time, that may require disabling the windows firewall on both machines. Peter from IT has promised me a visit to try and sort that out today.
Comment on attachment 766940 [details] [diff] [review]
hooking up the actors

Review of attachment 766940 [details] [diff] [review]:
-----------------------------------------------------------------

Looks good so far. r=me with comments

::: browser/metro/base/content/browser-ui.js
@@ +1609,5 @@
>        if (section.init)
>          section.init();
>      });
> +
> +    if (!DebuggerServer.initialized) {

Maybe in a followup we can hide this behind a pref or flag or something? Seems like most of the time we we don't want this using resources, and can take the initialization hit when we do

@@ +1614,5 @@
> +      DebuggerServer.init();
> +      DebuggerServer.addBrowserActors();
> +      DebuggerServer.addActors('chrome://browser/content/dbg-metro-actors.js');
> +    }
> +    DebuggerServer.openListener(6000);

Shouldnt the port number come from pref? Or is that only configurable from the client/connecting side

::: browser/metro/base/content/dbg-metro-actors.js
@@ +10,5 @@
> +
> +/** aConnection DebuggerServerConnection, the conection to the client.
> + */
> +function createRootActor(aConnection)
> +{

nit: lets either put braces on new line, or not. Just not both
Attachment #766940 - Flags: review?(sfoster) → review+
Followup on the firewall stuff:
-You have to uncheck the 'block all incoming connections' boxes on the main firewall page
-add an inbound firewall rule for icmpv4
-add a firewall rule for port 6000 (or whichever youve picked)

classic fx needs to be a nightly build at this time
Blocks: 888079
https://hg.mozilla.org/mozilla-central/rev/13c021faebb7
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.