DevTools: context-aware console.clear, element.hide shortcuts
Before, pressing 'H' or 'Ctrl+L' on ANY panel would perform the
action (hide selected element, clear console). This CL makes both
shortcuts execute only when the respective panel/view is showing.
This allows 'Ctrl+L' to focus Omnibox when Console is not visible.
Bug: 915676
Change-Id: Ie5ef04786fcd240a393524f429cb45a3951cd5d0
Reviewed-on: https://chromium-review.googlesource.com/c/1405701
Reviewed-by: Joel Einbinder <einbinder@chromium.org>
Commit-Queue: Erik Luo <luoe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622211}
diff --git a/third_party/blink/renderer/devtools/front_end/console/ConsolePanel.js b/third_party/blink/renderer/devtools/front_end/console/ConsolePanel.js
index 862721f..9a16cf0 100644
--- a/third_party/blink/renderer/devtools/front_end/console/ConsolePanel.js
+++ b/third_party/blink/renderer/devtools/front_end/console/ConsolePanel.js
@@ -42,6 +42,11 @@
return /** @type {!Console.ConsolePanel} */ (self.runtime.sharedInstance(Console.ConsolePanel));
}
+ static _updateContextFlavor() {
+ const consoleView = Console.ConsolePanel.instance()._view;
+ UI.context.setFlavor(Console.ConsoleView, consoleView.isShowing() ? consoleView : null);
+ }
+
/**
* @override
*/
@@ -51,6 +56,7 @@
if (wrapper && wrapper.isShowing())
UI.inspectorView.setDrawerMinimized(true);
this._view.show(this.element);
+ Console.ConsolePanel._updateContextFlavor();
}
/**
@@ -63,6 +69,7 @@
UI.inspectorView.setDrawerMinimized(false);
if (Console.ConsolePanel.WrapperView._instance)
Console.ConsolePanel.WrapperView._instance._showViewInWrapper();
+ Console.ConsolePanel._updateContextFlavor();
}
/**
@@ -95,6 +102,7 @@
this._showViewInWrapper();
else
UI.inspectorView.setDrawerMinimized(true);
+ Console.ConsolePanel._updateContextFlavor();
}
/**
@@ -102,6 +110,7 @@
*/
willHide() {
UI.inspectorView.setDrawerMinimized(false);
+ Console.ConsolePanel._updateContextFlavor();
}
_showViewInWrapper() {
diff --git a/third_party/blink/renderer/devtools/front_end/console/module.json b/third_party/blink/renderer/devtools/front_end/console/module.json
index a60af8b..9f04380 100644
--- a/third_party/blink/renderer/devtools/front_end/console/module.json
+++ b/third_party/blink/renderer/devtools/front_end/console/module.json
@@ -37,6 +37,9 @@
{
"type": "action",
"category": "Console",
+ "contextTypes": [
+ "Console.ConsoleView"
+ ],
"actionId": "console.clear",
"title": "Clear console",
"iconClass": "largeicon-clear",
diff --git a/third_party/blink/renderer/devtools/front_end/elements/ElementsPanel.js b/third_party/blink/renderer/devtools/front_end/elements/ElementsPanel.js
index c29c85c..1e1b1ba 100644
--- a/third_party/blink/renderer/devtools/front_end/elements/ElementsPanel.js
+++ b/third_party/blink/renderer/devtools/front_end/elements/ElementsPanel.js
@@ -271,6 +271,7 @@
if (this._popoverHelper)
this._popoverHelper.hidePopover();
super.willHide();
+ UI.context.setFlavor(Elements.ElementsPanel, null);
}
/**