Closed Bug 1143067 Opened 9 years ago Closed 7 years ago

Profiles created from console should only appear in the same target's toolbox, not others

Categories

(DevTools :: Performance Tools (Profiler/Timeline), defect, P3)

defect

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: jsantell, Unassigned)

References

(Blocks 1 open bug)

Details

Since console.profile/End uses a SharedPerformanceConnection, it does not record the original window's ID.

In current profiler:
Window A: No tools open, but a loop that profile("x")/profileEnd("x") every n seconds
Window B: Tools open, can be looking at profiler, doesn't matter. The profiles created in Window A are shown here.

In Perf++, I imagine we'll have the same issue unless we track target/window ID from the console.profile/End originator.

Chrome does not have this issue.
Summary: Scope console.profile/End logs to current target → Profiles created from console should only appear in the same target's toolbox, not others
Also, starting a profile in one window and stopping it another adds it to both.
Assignee: nobody → jsantell
Starting a profile in a window with profile("foo"), and closing the window, and then in another tab, open up tools, and doing profileEnd("foo") throws an error, because the profiler doesn't stop when the window closes -- it should if no other profiles are running, but should atleast nullify the still in-progress profile("foo"). Scoping would help this too. Have to make sure we remove the profile if the window is destroyed (not refreshed).


Handler function ProfilerActor.prototype.observe threw an exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIMessageSender.sendAsyncMessage]"  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/transport/transport.js :: ChildDebuggerTransport.prototype.send :: line 739"  data: no]
Stack: ChildDebuggerTransport.prototype.send@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/transport/transport.js:739:4
DSC_send@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js:1209:4
ProfilerActor.prototype.observe</reply@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/profiler.js:202:0
ProfilerActor.prototype.observe<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/profiler.js:214:0
makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:82:13
@debugger eval code:1:0
WCA_evalWithDebugger@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/webconsole.js:1165:15
WCA_onEvaluateJS@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/webconsole.js:787:19
WCA_onEvaluateJSAsync@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/webconsole.js:758:19
DSC_onPacket@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/main.js:1458:14
ChildDebuggerTransport.prototype.receiveMessage@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/transport/transport.js:734:4
Line: 739, column: 0
Depends on: 1077464
Not specifically blocking v2.
No longer blocks: perf-tool-v2
Assignee: jsantell → nobody
Triaging. Filter on ADRENOCORTICOTROPIC (yes).
OS: Mac OS X → Unspecified
Priority: -- → P3
Hardware: x86 → Unspecified
Version: 37 Branch → unspecified
The implementation of console.profile will change quite a bit with the new recording panel, and it's not currently implemented. Closing this issue for now.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.