Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(743)

Unified Diff: third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js

Issue 2446163004: Revert of DevTools: properly restore selected DOMNode in Elements panel. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/inspector/elements/elements-panel-rewrite-href-expected.txt ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js
diff --git a/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js b/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js
index 73777b3c25fb49dfecb7ffd64b448c0b6a009b0d..3686992e756f08f1dacd49923786a4e897233559 100644
--- a/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js
+++ b/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js
@@ -329,6 +329,9 @@
this._treeOutlines[i].selectDOMNode(null);
}
+ if (!selectedNode && this._lastValidSelectedNode)
+ this._selectedPathOnReset = this._lastValidSelectedNode.path();
+
this._breadcrumbs.setSelectedNode(selectedNode);
WebInspector.context.setFlavor(WebInspector.DOMNode, selectedNode);
@@ -336,10 +339,7 @@
if (!selectedNode)
return;
selectedNode.setAsInspectedNode();
- if (!this._isSettingDefaultSelectedNode) {
- this._selectedNodeOnReset = selectedNode;
- this._hasNonDefaultSelectedNode = true;
- }
+ this._lastValidSelectedNode = selectedNode;
var executionContexts = selectedNode.target().runtimeModel.executionContexts();
var nodeFrameId = selectedNode.frameId();
@@ -382,66 +382,53 @@
return;
}
- this._hasNonDefaultSelectedNode = false;
WebInspector.domBreakpointsSidebarPane.restoreBreakpoints(inspectedRootDocument);
- if (this._omitDefaultSelection)
- return;
-
- var savedSelectedNodeOnReset = this._selectedNodeOnReset;
- restoreNode.call(this, domModel, this._selectedNodeOnReset);
-
/**
- * @param {!WebInspector.DOMModel} domModel
- * @param {?WebInspector.DOMNode} staleNode
+ * @this {WebInspector.ElementsPanel}
+ * @param {?WebInspector.DOMNode} candidateFocusNode
+ */
+ function selectNode(candidateFocusNode)
+ {
+ if (!candidateFocusNode)
+ candidateFocusNode = inspectedRootDocument.body || inspectedRootDocument.documentElement;
+
+ if (!candidateFocusNode)
+ return;
+
+ if (!this._pendingNodeReveal) {
+ this.selectDOMNode(candidateFocusNode);
+ if (treeOutline.selectedTreeElement)
+ treeOutline.selectedTreeElement.expand();
+ }
+ }
+
+ /**
+ * @param {?DOMAgent.NodeId} nodeId
* @this {WebInspector.ElementsPanel}
*/
- function restoreNode(domModel, staleNode)
+ function selectLastSelectedNode(nodeId)
{
- var nodePath = staleNode ? staleNode.path() : null;
- if (!nodePath) {
- onNodeRestored.call(this, null);
+ if (this.selectedDOMNode()) {
+ // Focused node has been explicitly set while reaching out for the last selected node.
return;
}
- domModel.pushNodeByPathToFrontend(nodePath, onNodeRestored.bind(this));
- }
-
- /**
- * @param {?DOMAgent.NodeId} restoredNodeId
- * @this {WebInspector.ElementsPanel}
- */
- function onNodeRestored(restoredNodeId)
- {
- if (savedSelectedNodeOnReset !== this._selectedNodeOnReset)
- return;
- var node = restoredNodeId ? domModel.nodeForId(restoredNodeId) : null;
- if (!node) {
- var inspectedDocument = domModel.existingDocument();
- node = inspectedDocument ? inspectedDocument.body || inspectedDocument.documentElement : null;
- }
- this._setDefaultSelectedNode(node);
+ var node = nodeId ? domModel.nodeForId(nodeId) : null;
+ selectNode.call(this, node);
this._lastSelectedNodeSelectedForTest();
}
+
+ if (this._omitDefaultSelection)
+ return;
+
+ if (this._selectedPathOnReset)
+ domModel.pushNodeByPathToFrontend(this._selectedPathOnReset, selectLastSelectedNode.bind(this));
+ else
+ selectNode.call(this, null);
+ delete this._selectedPathOnReset;
},
_lastSelectedNodeSelectedForTest: function() { },
-
- /**
- * @param {?WebInspector.DOMNode} node
- */
- _setDefaultSelectedNode: function(node)
- {
- if (!node || this._hasNonDefaultSelectedNode || this._pendingNodeReveal)
- return;
- var treeOutline = WebInspector.ElementsTreeOutline.forDOMModel(node.domModel());
- if (!treeOutline)
- return;
- this._isSettingDefaultSelectedNode = true;
- this.selectDOMNode(node);
- this._isSettingDefaultSelectedNode = false;
- if (treeOutline.selectedTreeElement)
- treeOutline.selectedTreeElement.expand();
- },
/**
* @override
@@ -732,7 +719,7 @@
var treeOutline = null;
for (var i = 0; i < this._treeOutlines.length; ++i) {
- if (this._treeOutlines[i].selectedDOMNode())
+ if (this._treeOutlines[i].selectedDOMNode() === this._lastValidSelectedNode)
treeOutline = this._treeOutlines[i];
}
if (!treeOutline)
« no previous file with comments | « third_party/WebKit/LayoutTests/inspector/elements/elements-panel-rewrite-href-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698