Commit 593242ce authored by Alex Rudenko's avatar Alex Rudenko Committed by Chromium LUCI CQ

Don't trigger Overlay.nodeHighlightRequested if the hovered element is the same

We already store the last hovered node in SearchingForNodeTool so we can skip
sending duplicate Overlay.nodeHighlightRequested events if the hovered node
does not change.

Bug: 1169020
Change-Id: Id112e22127ec04d57695ab82a0bd4d41eb51793d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2640408
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: default avatarSigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#845994}
parent c94bdb45
...@@ -236,6 +236,7 @@ bool SearchingForNodeTool::HandleMouseMove(const WebMouseEvent& event) { ...@@ -236,6 +236,7 @@ bool SearchingForNodeTool::HandleMouseMove(const WebMouseEvent& event) {
} }
// Store values for the highlight. // Store values for the highlight.
bool hovered_node_changed = node != hovered_node_;
hovered_node_ = node; hovered_node_ = node;
event_target_node_ = (event.GetModifiers() & WebInputEvent::kShiftKey) event_target_node_ = (event.GetModifiers() & WebInputEvent::kShiftKey)
? HoveredNodeForEvent(frame, event, false) ? HoveredNodeForEvent(frame, event, false)
...@@ -246,6 +247,7 @@ bool SearchingForNodeTool::HandleMouseMove(const WebMouseEvent& event) { ...@@ -246,6 +247,7 @@ bool SearchingForNodeTool::HandleMouseMove(const WebMouseEvent& event) {
(WebInputEvent::kControlKey | WebInputEvent::kMetaKey); (WebInputEvent::kControlKey | WebInputEvent::kMetaKey);
contrast_info_ = FetchContrast(node); contrast_info_ = FetchContrast(node);
if (hovered_node_changed)
NodeHighlightRequested(node); NodeHighlightRequested(node);
return true; return true;
} }
......
Tests inspect mode. Tests inspect mode.
DOM.inspectNodeRequested: div DOM.inspectNodeRequested: div
Number of nodeHighlightRequested events: 1
Overlay.nodeHighlightRequested: div
...@@ -12,6 +12,9 @@ ...@@ -12,6 +12,9 @@
testRunner.die(message.error.message); testRunner.die(message.error.message);
return; return;
} }
const highlightRequests = [];
dp.Overlay.onNodeHighlightRequested(event => highlightRequests.push(event));
dp.Input.dispatchMouseEvent({type: 'mouseMoved', button: 'left', buttons: 0, clickCount: 1, x: 175, y: 175 });
dp.Input.dispatchMouseEvent({type: 'mouseMoved', button: 'left', buttons: 0, clickCount: 1, x: 150, y: 150 }); dp.Input.dispatchMouseEvent({type: 'mouseMoved', button: 'left', buttons: 0, clickCount: 1, x: 150, y: 150 });
dp.Input.dispatchMouseEvent({type: 'mousePressed', button: 'left', buttons: 0, clickCount: 1, x: 150, y: 150 }); dp.Input.dispatchMouseEvent({type: 'mousePressed', button: 'left', buttons: 0, clickCount: 1, x: 150, y: 150 });
dp.Input.dispatchMouseEvent({type: 'mouseReleased', button: 'left', buttons: 1, clickCount: 1, x: 150, y: 150 }); dp.Input.dispatchMouseEvent({type: 'mouseReleased', button: 'left', buttons: 1, clickCount: 1, x: 150, y: 150 });
...@@ -19,6 +22,8 @@ ...@@ -19,6 +22,8 @@
var message = await dp.Overlay.onceInspectNodeRequested(); var message = await dp.Overlay.onceInspectNodeRequested();
message = await dp.DOM.pushNodesByBackendIdsToFrontend({backendNodeIds: [message.params.backendNodeId]}); message = await dp.DOM.pushNodesByBackendIdsToFrontend({backendNodeIds: [message.params.backendNodeId]});
testRunner.log('DOM.inspectNodeRequested: ' + nodeTracker.nodeForId(message.result.nodeIds[0]).localName); testRunner.log('DOM.inspectNodeRequested: ' + nodeTracker.nodeForId(message.result.nodeIds[0]).localName);
testRunner.log('Number of nodeHighlightRequested events: ' + highlightRequests.length);
testRunner.log('Overlay.nodeHighlightRequested: ' + nodeTracker.nodeForId(highlightRequests[0].params.nodeId).localName);
testRunner.completeTest(); testRunner.completeTest();
}) })
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment