Thanks for your help, John, it's really appreciated. :-)
On Tue, Jul 28, 2009 at 21:53, johnjbarton<[email protected]> wrote: > > Run Firebug with tracing and set up for your page. Then use Tracing > option FBS_CREATION and FBS_SRCUNITS. Run the Greasemonkey code and > look for the jsdIScript creation messages. (You will want to turn off > these tracing options, they have high overhead). So, i did run FB-1.4X.1 with FBS_CREATION and FBS_SRCUNITS. I guess the following output is what i'm looking for: traces for the GM script (#178), from creation to destruction: 85. [extensions.firebug] onScriptCreated: 178@(302-314)file:/home/olivier/dev/webmonkey/src/components/webmonkey.js file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1512) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (2555) () ### webmonkey.js:302 is indeed where Components.utils.evalInSandbox(scriptSource, sandbox) is located. 86. [extensions.firebug] onScriptCreated: '' file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1514) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (2555) () ### Here, Object->data shows the GM script source code. 87. [extensions.firebug] createdScriptHasCaller 4 FF3.1:false file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1600) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1524) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (2555) () 88. [extensions.firebug] createdScriptHasCaller null file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1525) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (2555) () ### Looking at the code, i suppose from these last 2 that the script is considered as having "no caller" (FYI, createdScriptHasCaller() returns on line 1617). 89. [extensions.firebug] onScriptCreated: set BP at PC 0 in top level tag=178:file:/home/olivier/dev/webmonkey/src/components/webmonkey.js jsd depth:1 file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1538) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (2555) () 90. [extensions.firebug] onBreakpoint frame.script.tag=178 file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1169) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (2555) file:///home/olivier/dev/webmonkey/src/components/webmonkey.js (302) 91. [extensions.firebug] FBS.onTopLevelScriptCreated no debuggr for 178 file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1446) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1181) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (2555) file:///home/olivier/dev/webmonkey/src/components/webmonkey.js (302) ### It seems fbs.findDebugger(frame):1435 fails to find the associated context (see below). 92. [extensions.firebug] fbs.onTopLevelScriptCreated script.tag:178 href: no sourceFile file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1456) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1181) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (2555) file:///home/olivier/dev/webmonkey/src/components/webmonkey.js (302) 93. [extensions.firebug] Top Scripts Uncleared: file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1190) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (2555) file:///home/olivier/dev/webmonkey/src/components/webmonkey.js (302) 94. [extensions.firebug] fbs.onScriptDestroyed 178 file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (1634) file:///home/olivier/.mozilla/firefox/gmdev/extensions/[email protected]/components/firebug-service.js (2555) >From here, i turned on FBS_FINDDEBUGGER to get more feedback on why/how findDebugger() failed. It yielded: [extensions.firebug] fbs.getFrameScopeWindowAncestor found scope chain bottom, not Window: Sandbox [extensions.firebug] fbs.findDebugger no frame Window, looking down the stack [extensions.firebug] fbs.findDebugger fell thru bottom of stack As it seems a Sandbox is not a "supported" scope, i tried this quick-&-dirty-hack(TM) in getFrameScopeWindowAncestor(): --- firebug-service.js~ 2009-07-29 13:25:51.913450368 +0200 +++ firebug-service.js 2009-07-29 13:26:42.293449931 +0200 @@ -2573,7 +2573,7 @@ while(scope.jsParent) scope = scope.jsParent; - if (scope.jsClassName == "Window" || scope.jsClassName == "ChromeWindow") + if (scope.jsClassName == "Window" || scope.jsClassName == "ChromeWindow" || scope.jsClassName == "Sandbox") return scope.getWrappedValue(); if (FBTrace.DBG_FBS_FINDDEBUGGER) Apart of the fact that this throws "too much recursion" errors at firebug-service:2559 (hook()), webmonkey.js (the add-on XPCOM, not the script unfortunately) appears in FB scripts tab. Nevertheless, it's a tiny progress. :-p > Once you figure out what jsd things of the GM scripts, you need to > convince Firebug to add them to the context for the web page. After > that I guess Firebug will work for you. I'm not there yet! I guess i'll have to keep on working in this direction... Any hint will be much appreciated. :-) I guess one of my problems at this stage will be that getFrameScopeWindowAncestor() is expected to return an object that is _both_ a Window and a JS scope: in the context of a GM script, these are two different things (the scope is the Sandbox). Patched as shown above, the console tab does not work (it doesn't answer commands). If i return the associated window instead of the sandbox, the console works... in the scope of the window, i.e. scripts vars are unreachable (and, as a side note, entered console commands show up in the scripts tab as evals -- is that normal?). -- Olivier --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Firebug" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/firebug?hl=en -~----------~----~----~----~------~----~------~--~---
