diff --git chrome/browser/ui/views/frame/browser_frame_mac.h chrome/browser/ui/views/frame/browser_frame_mac.h index 986c2b47ee1f4..c3b6806e0c20a 100644 --- chrome/browser/ui/views/frame/browser_frame_mac.h +++ chrome/browser/ui/views/frame/browser_frame_mac.h @@ -15,6 +15,7 @@ #error "This file requires ARC support." #endif +class Browser; class BrowserFrame; class BrowserView; @class BrowserWindowTouchBarController; @@ -58,6 +59,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 ef5f9343dc024..60cf660a8e63c 100644 --- chrome/browser/ui/views/frame/browser_frame_mac.mm +++ chrome/browser/ui/views/frame/browser_frame_mac.mm @@ -185,7 +185,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; @@ -313,8 +320,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 @@ -345,11 +360,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);