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 {
/**
* @param {!SDK.DOMNode} node
* @param {boolean} focus
* @return {!Promise}
*/
revealAndSelectNode(node) {
revealAndSelectNode(node, focus) {
if (Elements.inspectElementModeController && Elements.inspectElementModeController.isInInspectElementMode())
Elements.inspectElementModeController.stopInspection();
......@@ -708,8 +709,8 @@ Elements.ElementsPanel = class extends UI.Panel {
node = Common.moduleSetting('showUAShadowDOM').get() ? node : this._leaveUserAgentShadowDOM(node);
node.highlightForTwoSeconds();
return UI.viewManager.showView('elements').then(() => {
this.selectDOMNode(node, true);
return UI.viewManager.showView('elements', false, !focus).then(() => {
this.selectDOMNode(node, focus);
delete this._omitDefaultSelection;
if (!this._notFirstInspectElement)
......@@ -887,9 +888,10 @@ Elements.ElementsPanel.DOMNodeRevealer = class {
/**
* @override
* @param {!Object} node
* @param {boolean=} omitFocus
* @return {!Promise}
*/
reveal(node) {
reveal(node, omitFocus) {
var panel = Elements.ElementsPanel.instance();
panel._pendingNodeReveal = true;
......@@ -922,7 +924,7 @@ Elements.ElementsPanel.DOMNodeRevealer = class {
panel._pendingNodeReveal = false;
if (resolvedNode) {
panel.revealAndSelectNode(resolvedNode).then(resolve);
panel.revealAndSelectNode(resolvedNode, !omitFocus).then(resolve);
return;
}
reject(new Error('Could not resolve node to reveal.'));
......
......@@ -346,9 +346,10 @@ UI.ViewManager = class {
/**
* @param {string} viewId
* @param {boolean=} userGesture
* @param {boolean=} omitFocus
* @return {!Promise}
*/
showView(viewId, userGesture) {
showView(viewId, userGesture, omitFocus) {
var view = this._views.get(viewId);
if (!view) {
console.error('Could not find view for id: \'' + viewId + '\' ' + new Error().stack);
......@@ -362,14 +363,14 @@ UI.ViewManager = class {
var location = view[UI.ViewManager._Location.symbol];
if (location) {
location._reveal();
return location.showView(view, undefined, userGesture);
return location.showView(view, undefined, userGesture, omitFocus);
}
return this._resolveLocation(locationName).then(location => {
if (!location)
throw new Error('Could not resolve location for view: ' + viewId);
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 {
* @param {!UI.View} view
* @param {?UI.View=} insertBefore
* @param {boolean=} userGesture
* @param {boolean=} omitFocus
* @return {!Promise}
*/
showView(view, insertBefore, userGesture) {
showView(view, insertBefore, userGesture, omitFocus) {
this.appendView(view, insertBefore);
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()));
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