Firefox/Windows 8 Integration: Difference between revisions

Line 455: Line 455:
[http://mxr.mozilla.org/mozilla-central/source/browser/metro/shell/testing/metrotestharness.cpp harness source]
[http://mxr.mozilla.org/mozilla-central/source/browser/metro/shell/testing/metrotestharness.cpp harness source]


== Using Devtools ==
== Using Cleopatra Profiler ==
* Tracking bug https://bugzilla.mozilla.org/show_bug.cgi?id=850019
** There are known issues with the profiler. All other parts should be functional, modulo the refactoring work the devtools team is doing on them.
* This hooks into the tools developed & maintained by the devtools team.
* They have been refactoring & improving their tools, so it <strong>highly encouraged</strong> to use Nightly builds on both sides of the pairing if possible.


* For <strong>remote profiling</strong>, follow the steps here revolving around prefs/settings and read {{bug|886555}} on getting the profiler going.
* Follow all the set up instructions above to get the prefs set right for dev tools / remote debugging.
 
* Install the profiler extension from: https://github.com/bgirard/Gecko-Profiler-Addon/raw/master/geckoprofiler.xpi
* Before you start
* In classic set the pref 'profiler.threads' and 'profiler.stackwalk' to true.
** You must have metro installed & working
* Restart
** You must access to a classic/desktop fx. This need not be a local build
* From the toolbar button dropdown, select TCP, enter the metro browser's ip address, and click connect. You should get a remote connection warning in the metro browser.
** If you are connecting remotely, you must make sure both machines can ping each other before starting. This will save you a lot of grief later
* After you have finishes collecting data, click analyze.
*** on windows ipconfig in the cmdline is helpful in getting your ip address
* Wait for the profile view to load (this may take a while!)
*** on windows 8 this usually means disabling the firewall (not encouraged) or adding inbound/outbound firewall rules to allow them to connect.
* For additional detail read {{bug|886555}} on getting things going.
**** If you need it, Peter in IT now knows a fair bit about setting up those rules if you get lost or stuck.
** If you are on wifi, both devices must be on the same network to communicate. Mozilla != Mozilla-G.
*** It sounds silly but some of the windows devices only see Mozilla-G and the older company issued thinkpads do not have the hardware for it.
 
* Setup
** Go to about:config on classic/desktop fx
*** devtools.debugger.force-local -> false
*** devtools.debugger.remote-enabled -> true
*** Check that these values are what you want
**** devtools.debugger.remote-port -> 6000 (I'd leave this one alone unless you have a compelling reason to change it)
*** If you don't have these, you'll probably want these as well
**** devtools.debugger.log -> true
**** browser.dom.window.dump.enabled  -> true
** Restart classic/desktop fx
*** You need to restart for the next step to work.
** Navigate Firefox button -> Web Developer -> "Connect.." entry 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
** Go to about:config on metrofx
*** devtools.debugger.force-local -> false
*** devtools.debugger.remote-enabled -> true
*** and you may want
**** devtools.debugger.log -> true
**** devtools.errorconsole.enabled -> true
**** browser.dom.window.dump.enabled  -> true
*** devtools.debugger.remote-port -> 6000 (again I'd leave this one alone)
*** It is unclear if a restart is required. I frequently do in the test-build-dev cycle anyway.
** Make sure metrofx is started (and not suspended)
** In classic fx, click the "Connect..." entry
*** Depending on your version, this will launch a new tab or a new panel on firefox
*** Enter the ip of metrofx if you are connecting remotely and the port number if you've changed them.
*** If you are connecting on a localhost, you shouldn't need to change the default settings.
** Click the connect button in classic fx
** On metrofx a strap(the metro version of the modal dialog) will appear about an incoming connection.
*** Click/tap "allow"
** On classic fx, the connect page will reload with a list of active tabs & processes. Usually 'main process' is the most interesting.
** The devtools console will appear & the aforementioned tab on classic fx will disappear
** Sally forth & debug!
 
* Notes
** I usually pair on localhost, using an external monitor so I can see metrofx & classicfx at the same time.
** If you are using localhost without an external monitor, beware of windows suspending the metrofx while its waiting for the incoming connection. This will cause the pairing to fail.
** While you can pair classic/metrofx running out of the same obj dir, I frequently experienced unexpected hangs and crashes as a result.
** if you close the devtools window, this usually results in the metro browser shutting down


== Samsung Series 7 ==
== Samsung Series 7 ==
Confirmed users
1,982

edits