Closed Bug 924899 Opened 12 years ago Closed 10 years ago

[Highlighter] Selecting nodes during page navigation

Categories

(DevTools :: Inspector, defect, P3)

x86
macOS
defect

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: pbro, Unassigned)

References

Details

Here is another navigation scenario that ends up in an exception. STR: - Open the inspector on any page - Start loading a new page (preferably one that takes some time to load) - Before the load is finished, activate the highlighter and move your mouse over the content document You should have JS exceptions: Message: TypeError: this.rootDoc is null Stack: @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/inspector.js:982 @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:906 DSC_onPacket@resource://gre/modules/devtools/dbg-server.jsm -> resource://gre/modules/devtools/server/main.js:1018 @resource://gre/modules/devtools/dbg-server.jsm -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/transport.js:258 @resource://gre/modules/devtools/dbg-server.jsm -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/DevToolsUtils.js:75 And Message: TypeError: this.rawNode.ownerDocument.location is null Stack: @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/actors/styles.js:676 @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:275 @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:185 @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:217 @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:475 @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:610 @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:608 @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:914 resolve@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/core/promise.js:118 then@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/core/promise.js:43 then@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/core/promise.js:153 @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:927 @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:830 @resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/server/protocol.js:924 DSC_onPacket@resource://gre/modules/devtools/dbg-server.jsm -> resource://gre/modules/devtools/server/main.js:1018 @resource://gre/modules/devtools/dbg-server.jsm -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/server/transport.js:258 @resource://gre/modules/devtools/dbg-server.jsm -> resource://gre/modules/devtools/server/main.js -> resource://gre/modules/devtools/DevToolsUtils.js:75
(In reply to Patrick Brosset from comment #0) > Here is another navigation scenario that ends up in an exception. > > STR: > > - Open the inspector on any page > - Start loading a new page (preferably one that takes some time to load) > - Before the load is finished, activate the highlighter and move your mouse > over the content document > > You should have JS exceptions: > > Message: TypeError: this.rootDoc is null > Stack: > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/actors/inspector.js:982 > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/protocol.js:906 > DSC_onPacket@resource://gre/modules/devtools/dbg-server.jsm -> > resource://gre/modules/devtools/server/main.js:1018 > @resource://gre/modules/devtools/dbg-server.jsm -> > resource://gre/modules/devtools/server/main.js -> > resource://gre/modules/devtools/server/transport.js:258 > @resource://gre/modules/devtools/dbg-server.jsm -> > resource://gre/modules/devtools/server/main.js -> > resource://gre/modules/devtools/DevToolsUtils.js:75 > > And > > Message: TypeError: this.rawNode.ownerDocument.location is null > Stack: > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/actors/styles.js:676 > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/protocol.js:275 > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/protocol.js:185 > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/protocol.js:217 > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/protocol.js:475 > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/protocol.js:610 > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/protocol.js:608 > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/protocol.js:914 > resolve@resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/commonjs/sdk/core/promise.js:118 > then@resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/commonjs/sdk/core/promise.js:43 > then@resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/commonjs/sdk/core/promise.js:153 > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/protocol.js:927 > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/protocol.js:830 > @resource://gre/modules/commonjs/toolkit/loader.js -> > resource://gre/modules/devtools/server/protocol.js:924 > DSC_onPacket@resource://gre/modules/devtools/dbg-server.jsm -> > resource://gre/modules/devtools/server/main.js:1018 > @resource://gre/modules/devtools/dbg-server.jsm -> > resource://gre/modules/devtools/server/main.js -> > resource://gre/modules/devtools/server/transport.js:258 > @resource://gre/modules/devtools/dbg-server.jsm -> > resource://gre/modules/devtools/server/main.js -> > resource://gre/modules/devtools/DevToolsUtils.js:75 Related to this: 1) Could we redraw the markup tree on DOMContentLoaded rather than waiting for load for redrawing the inspector? This would probably make the biggest difference as far as snappiness and how the whole inspector panel feels during navigation. 2) Should we empty out the markup tree when it is invalid (in between page loads)? Alternatively, we could draw a markup tree like this during the time between the page loading: <html><head></head><body></body></html>
I agree with both of these points. Let's try and land bug 922125 first, which empties the markup view during navigation and which waits for the load event. And right after this is done, let's work on this one to fix the issue mentioned and make things feel snappier. Thanks.
See Also: → 1036324
Can't reproduce as the markup view is cleared as soon as we navigate. Do you agree ?
Flags: needinfo?(pbrosset)
Priority: -- → P3
Right, this works fine now.
Status: NEW → RESOLVED
Closed: 10 years ago
Flags: needinfo?(pbrosset)
Resolution: --- → WORKSFORME
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.