RESOLVED FIXED 161264
REGRESSION (r203535): Web Inspector: Inspector overlay node info has disappeared
https://bugs.webkit.org/show_bug.cgi?id=161264
Summary REGRESSION (r203535): Web Inspector: Inspector overlay node info has disappeared
Devin Rousso
Reported 2016-08-26 13:44:20 PDT
In the DOM tree (or for any logged nodes), hovering them shows a highlight overlay for that node in the inspected page. The highlight overlay still shows, but the information about the node (width, height, id, class, role, etc) has disappeared.
Attachments
Patch (1.50 KB, patch)
2016-08-26 16:13 PDT, Devin Rousso
no flags
Patch (3.96 KB, patch)
2016-08-26 17:40 PDT, Devin Rousso
no flags
Patch (3.91 KB, patch)
2016-08-26 19:15 PDT, Devin Rousso
joepeck: review+
Patch (3.73 KB, patch)
2016-08-26 19:25 PDT, Devin Rousso
no flags
Radar WebKit Bug Importer
Comment 1 2016-08-26 13:44:45 PDT
Joseph Pecoraro
Comment 2 2016-08-26 13:53:09 PDT
This appears to have broken with: <https://trac.webkit.org/changeset/203535>
Joseph Pecoraro
Comment 3 2016-08-26 13:54:00 PDT
Maybe this doesn't work anymore? We should audit InspectorOverlayPage.js for issues after that change: DOMBuilder.prototype.appendTextNode = function(content) { var node = document.createTextNode(); node.textContent = content; this.element.appendChild(node); return node; }
Matt Baker
Comment 4 2016-08-26 14:32:55 PDT
Devin Rousso
Comment 5 2016-08-26 16:13:21 PDT
Joseph Pecoraro
Comment 6 2016-08-26 16:41:24 PDT
Comment on attachment 287166 [details] Patch We should be able to test this by crashing on debug builds if there was any exception in the overlay page. We should never have exceptions evaluating something in the overlay page. Here is what we could do: Source/WebCore/inspector/InspectorOverlay.cpp has a few "evaluateInOverlay*" methods that look like: overlayPage()->mainFrame().script().evaluate(ScriptSourceCode(makeString("dispatch(", command->toJSONString(), ')'))); This is using ScriptController's evaluate method which includes optional exception details: JSC::JSValue evaluate(const ScriptSourceCode&, ExceptionDetails* = nullptr); We could pass in exception details and try to ASSERT that there was an exception. ASSERT(exceptionDetails.message.isNull()); Let me know what you decide to do, because ultimately we will want something like this.
Joseph Pecoraro
Comment 7 2016-08-26 16:45:22 PDT
> We could pass in exception details and try to ASSERT that there was an > exception. ASSERT(exceptionDetails.message.isNull()); Or even simpler (based off of WebPage.cpp's use of evaluate()): JSValue result = overlayPage()->mainFrame().script().evaluate(...); ASSERT_UNUSED(result, !result); // Should never have exceptions evaluating in the overlay page.
Devin Rousso
Comment 8 2016-08-26 17:40:34 PDT
Joseph Pecoraro
Comment 9 2016-08-26 18:40:43 PDT
Comment on attachment 287180 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=287180&action=review > Source/WebCore/inspector/InspectorOverlay.cpp:928 > + ExceptionDetails exceptionDetails; > + page->mainFrame().script().evaluate(ScriptSourceCode(makeString("dispatch(", command->toJSONString(), ')')), &exceptionDetails); > + ASSERT(exceptionDetails.message.isNull()); // There should never be exceptions when evaluating in the overlay page. Err instead of this could you just do the other assert? static void evaluateCommandInOverlay(Page* page, Ref<InspectorArray>&& command) { JSValue result = page->mainFrame().script().evaluate(ScriptSourceCode(makeString("dispatch(", command->toJSONString(), ')'))); ASSERT_UNUSED(result, result); // There should never be exceptions when evaluating in the overlay page. }
Devin Rousso
Comment 10 2016-08-26 19:15:58 PDT
Joseph Pecoraro
Comment 11 2016-08-26 19:20:33 PDT
Comment on attachment 287189 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=287189&action=review r=me > Source/WebCore/ChangeLog:8 > + No new tests. Fixing JavaScript error in Inspector overlay. You could say that adding the ASSERT would cause tests to crash if this happens in the future.
Devin Rousso
Comment 12 2016-08-26 19:25:13 PDT
WebKit Commit Bot
Comment 13 2016-08-26 19:55:24 PDT
Comment on attachment 287191 [details] Patch Clearing flags on attachment: 287191 Committed r205068: <http://trac.webkit.org/changeset/205068>
WebKit Commit Bot
Comment 14 2016-08-26 19:55:28 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.