Commit 4c9628e0 authored by Alice Boxhall's avatar Alice Boxhall Committed by Commit Bot

[Devtools] Ensure 'omit_focus' is respected when revealing a DOM node

Bug: 560525
Change-Id: I8ab96299a63d33830d7c779ed15c0bee0bcbc28f
Reviewed-on: https://chromium-review.googlesource.com/644626
Commit-Queue: Alice Boxhall <aboxhall@chromium.org>
Reviewed-by: default avatarJoel Einbinder <einbinder@chromium.org>
Reviewed-by: default avatarAndrey Lushnikov <lushnikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505303}
parent 3e6a96e7
...@@ -697,9 +697,10 @@ Elements.ElementsPanel = class extends UI.Panel { ...@@ -697,9 +697,10 @@ Elements.ElementsPanel = class extends UI.Panel {
/** /**
* @param {!SDK.DOMNode} node * @param {!SDK.DOMNode} node
* @param {boolean} focus
* @return {!Promise} * @return {!Promise}
*/ */
revealAndSelectNode(node) { revealAndSelectNode(node, focus) {
if (Elements.inspectElementModeController && Elements.inspectElementModeController.isInInspectElementMode()) if (Elements.inspectElementModeController && Elements.inspectElementModeController.isInInspectElementMode())
Elements.inspectElementModeController.stopInspection(); Elements.inspectElementModeController.stopInspection();
...@@ -708,8 +709,8 @@ Elements.ElementsPanel = class extends UI.Panel { ...@@ -708,8 +709,8 @@ Elements.ElementsPanel = class extends UI.Panel {
node = Common.moduleSetting('showUAShadowDOM').get() ? node : this._leaveUserAgentShadowDOM(node); node = Common.moduleSetting('showUAShadowDOM').get() ? node : this._leaveUserAgentShadowDOM(node);
node.highlightForTwoSeconds(); node.highlightForTwoSeconds();
return UI.viewManager.showView('elements').then(() => { return UI.viewManager.showView('elements', false, !focus).then(() => {
this.selectDOMNode(node, true); this.selectDOMNode(node, focus);
delete this._omitDefaultSelection; delete this._omitDefaultSelection;
if (!this._notFirstInspectElement) if (!this._notFirstInspectElement)
...@@ -887,9 +888,10 @@ Elements.ElementsPanel.DOMNodeRevealer = class { ...@@ -887,9 +888,10 @@ Elements.ElementsPanel.DOMNodeRevealer = class {
/** /**
* @override * @override
* @param {!Object} node * @param {!Object} node
* @param {boolean=} omitFocus
* @return {!Promise} * @return {!Promise}
*/ */
reveal(node) { reveal(node, omitFocus) {
var panel = Elements.ElementsPanel.instance(); var panel = Elements.ElementsPanel.instance();
panel._pendingNodeReveal = true; panel._pendingNodeReveal = true;
...@@ -922,7 +924,7 @@ Elements.ElementsPanel.DOMNodeRevealer = class { ...@@ -922,7 +924,7 @@ Elements.ElementsPanel.DOMNodeRevealer = class {
panel._pendingNodeReveal = false; panel._pendingNodeReveal = false;
if (resolvedNode) { if (resolvedNode) {
panel.revealAndSelectNode(resolvedNode).then(resolve); panel.revealAndSelectNode(resolvedNode, !omitFocus).then(resolve);
return; return;
} }
reject(new Error('Could not resolve node to reveal.')); reject(new Error('Could not resolve node to reveal.'));
......
...@@ -346,9 +346,10 @@ UI.ViewManager = class { ...@@ -346,9 +346,10 @@ UI.ViewManager = class {
/** /**
* @param {string} viewId * @param {string} viewId
* @param {boolean=} userGesture * @param {boolean=} userGesture
* @param {boolean=} omitFocus
* @return {!Promise} * @return {!Promise}
*/ */
showView(viewId, userGesture) { showView(viewId, userGesture, omitFocus) {
var view = this._views.get(viewId); var view = this._views.get(viewId);
if (!view) { if (!view) {
console.error('Could not find view for id: \'' + viewId + '\' ' + new Error().stack); console.error('Could not find view for id: \'' + viewId + '\' ' + new Error().stack);
...@@ -362,14 +363,14 @@ UI.ViewManager = class { ...@@ -362,14 +363,14 @@ UI.ViewManager = class {
var location = view[UI.ViewManager._Location.symbol]; var location = view[UI.ViewManager._Location.symbol];
if (location) { if (location) {
location._reveal(); location._reveal();
return location.showView(view, undefined, userGesture); return location.showView(view, undefined, userGesture, omitFocus);
} }
return this._resolveLocation(locationName).then(location => { return this._resolveLocation(locationName).then(location => {
if (!location) if (!location)
throw new Error('Could not resolve location for view: ' + viewId); throw new Error('Could not resolve location for view: ' + viewId);
location._reveal(); location._reveal();
return location.showView(view, undefined, userGesture); return location.showView(view, undefined, userGesture, omitFocus);
}); });
} }
...@@ -747,12 +748,14 @@ UI.ViewManager._TabbedLocation = class extends UI.ViewManager._Location { ...@@ -747,12 +748,14 @@ UI.ViewManager._TabbedLocation = class extends UI.ViewManager._Location {
* @param {!UI.View} view * @param {!UI.View} view
* @param {?UI.View=} insertBefore * @param {?UI.View=} insertBefore
* @param {boolean=} userGesture * @param {boolean=} userGesture
* @param {boolean=} omitFocus
* @return {!Promise} * @return {!Promise}
*/ */
showView(view, insertBefore, userGesture) { showView(view, insertBefore, userGesture, omitFocus) {
this.appendView(view, insertBefore); this.appendView(view, insertBefore);
this._tabbedPane.selectTab(view.viewId(), userGesture); this._tabbedPane.selectTab(view.viewId(), userGesture);
this._tabbedPane.focus(); if (!omitFocus)
this._tabbedPane.focus();
var widget = /** @type {!UI.ViewManager._ContainerWidget} */ (this._tabbedPane.tabView(view.viewId())); var widget = /** @type {!UI.ViewManager._ContainerWidget} */ (this._tabbedPane.tabView(view.viewId()));
return widget._materialize(); return widget._materialize();
} }
......
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