2023-04-18 23:20:44 +02:00
|
|
|
diff --git chrome/browser/ui/views/frame/browser_frame_mac.h chrome/browser/ui/views/frame/browser_frame_mac.h
|
|
|
|
index ab1d8fd9bfa84..77f65b44e591a 100644
|
|
|
|
--- chrome/browser/ui/views/frame/browser_frame_mac.h
|
|
|
|
+++ chrome/browser/ui/views/frame/browser_frame_mac.h
|
|
|
|
@@ -12,6 +12,7 @@
|
|
|
|
#include "chrome/browser/command_observer.h"
|
|
|
|
#include "ui/views/widget/native_widget_mac.h"
|
|
|
|
|
|
|
|
+class Browser;
|
|
|
|
class BrowserFrame;
|
|
|
|
class BrowserView;
|
|
|
|
@class BrowserWindowTouchBarController;
|
|
|
|
@@ -55,6 +56,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
|
2023-05-30 10:55:32 +02:00
|
|
|
index eb1570b99202a..6f0e0ec08539f 100644
|
2023-04-18 23:20:44 +02:00
|
|
|
--- chrome/browser/ui/views/frame/browser_frame_mac.mm
|
|
|
|
+++ chrome/browser/ui/views/frame/browser_frame_mac.mm
|
2023-04-26 21:55:59 +02:00
|
|
|
@@ -181,7 +181,14 @@ void BrowserFrameMac::OnWindowFullscreenTransitionComplete() {
|
2023-04-18 23:20:44 +02:00
|
|
|
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;
|
2023-04-26 21:55:59 +02:00
|
|
|
@@ -309,8 +316,16 @@ bool BrowserFrameMac::WillExecuteCommand(
|
2023-04-18 23:20:44 +02:00
|
|
|
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
|
2023-04-26 21:55:59 +02:00
|
|
|
@@ -341,11 +356,20 @@ bool BrowserFrameMac::ExecuteCommand(
|
2023-04-18 23:20:44 +02:00
|
|
|
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);
|