98 lines
3.8 KiB
Diff
98 lines
3.8 KiB
Diff
diff --git chrome/browser/ui/views/frame/browser_frame_mac.h chrome/browser/ui/views/frame/browser_frame_mac.h
|
|
index decd0b51ddc3d..17fce2da6ad0e 100644
|
|
--- chrome/browser/ui/views/frame/browser_frame_mac.h
|
|
+++ chrome/browser/ui/views/frame/browser_frame_mac.h
|
|
@@ -11,6 +11,7 @@
|
|
#include "chrome/browser/command_observer.h"
|
|
#include "ui/views/widget/native_widget_mac.h"
|
|
|
|
+class Browser;
|
|
class BrowserFrame;
|
|
class BrowserView;
|
|
@class BrowserWindowTouchBarController;
|
|
@@ -53,6 +54,21 @@ class BrowserFrameMac : public views::NativeWidgetMac,
|
|
bool ShouldUseInitialVisibleOnAllWorkspaces() const override;
|
|
void AnnounceTextInInProcessWindow(const std::u16string& text) override;
|
|
|
|
+ static void ValidateUserInterfaceItem(
|
|
+ Browser* browser,
|
|
+ int32_t command,
|
|
+ remote_cocoa::mojom::ValidateUserInterfaceItemResult* result);
|
|
+ static bool WillExecuteCommand(
|
|
+ Browser* browser,
|
|
+ int32_t command,
|
|
+ WindowOpenDisposition window_open_disposition,
|
|
+ bool is_before_first_responder);
|
|
+ static bool ExecuteCommand(
|
|
+ Browser* browser,
|
|
+ int32_t command,
|
|
+ WindowOpenDisposition window_open_disposition,
|
|
+ bool is_before_first_responder);
|
|
+
|
|
protected:
|
|
~BrowserFrameMac() override;
|
|
|
|
diff --git chrome/browser/ui/views/frame/browser_frame_mac.mm chrome/browser/ui/views/frame/browser_frame_mac.mm
|
|
index 0d7f72e291a14..b0fb3eae5eab6 100644
|
|
--- chrome/browser/ui/views/frame/browser_frame_mac.mm
|
|
+++ chrome/browser/ui/views/frame/browser_frame_mac.mm
|
|
@@ -182,7 +182,14 @@ void BrowserFrameMac::OnWindowFullscreenTransitionComplete() {
|
|
void BrowserFrameMac::ValidateUserInterfaceItem(
|
|
int32_t tag,
|
|
remote_cocoa::mojom::ValidateUserInterfaceItemResult* result) {
|
|
- Browser* browser = browser_view_->browser();
|
|
+ return ValidateUserInterfaceItem(browser_view_->browser(), tag, result);
|
|
+}
|
|
+
|
|
+// static
|
|
+void BrowserFrameMac::ValidateUserInterfaceItem(
|
|
+ Browser* browser,
|
|
+ int32_t tag,
|
|
+ remote_cocoa::mojom::ValidateUserInterfaceItemResult* result) {
|
|
if (!chrome::SupportsCommand(browser, tag)) {
|
|
result->enable = false;
|
|
return;
|
|
@@ -294,8 +301,16 @@ bool BrowserFrameMac::WillExecuteCommand(
|
|
int32_t command,
|
|
WindowOpenDisposition window_open_disposition,
|
|
bool is_before_first_responder) {
|
|
- Browser* browser = browser_view_->browser();
|
|
+ return WillExecuteCommand(browser_view_->browser(), command,
|
|
+ window_open_disposition, is_before_first_responder);
|
|
+}
|
|
|
|
+// static
|
|
+bool BrowserFrameMac::WillExecuteCommand(
|
|
+ Browser* browser,
|
|
+ int32_t command,
|
|
+ WindowOpenDisposition window_open_disposition,
|
|
+ bool is_before_first_responder) {
|
|
if (is_before_first_responder) {
|
|
// The specification for this private extensions API is incredibly vague.
|
|
// For now, we avoid triggering chrome commands prior to giving the
|
|
@@ -326,11 +341,20 @@ bool BrowserFrameMac::ExecuteCommand(
|
|
int32_t command,
|
|
WindowOpenDisposition window_open_disposition,
|
|
bool is_before_first_responder) {
|
|
- if (!WillExecuteCommand(command, window_open_disposition,
|
|
- is_before_first_responder))
|
|
- return false;
|
|
+ return ExecuteCommand(browser_view_->browser(), command,
|
|
+ window_open_disposition, is_before_first_responder);
|
|
+}
|
|
|
|
- Browser* browser = browser_view_->browser();
|
|
+// static
|
|
+bool BrowserFrameMac::ExecuteCommand(
|
|
+ Browser* browser,
|
|
+ int32_t command,
|
|
+ WindowOpenDisposition window_open_disposition,
|
|
+ bool is_before_first_responder) {
|
|
+ if (!WillExecuteCommand(browser, command, window_open_disposition,
|
|
+ is_before_first_responder)) {
|
|
+ return false;
|
|
+ }
|
|
|
|
chrome::ExecuteCommandWithDisposition(browser, command,
|
|
window_open_disposition);
|