From a245f7469fd60d83fe781524f602866a193717ba Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Mon, 9 Dec 2019 10:28:29 +0900 Subject: [PATCH 1/2] fix: overriding AccessiblePaneView's methods --- patches/chromium/.patches | 1 + patches/chromium/accessible_pane_view.patch | 30 +++++++++++++++++++++ shell/browser/ui/views/menu_bar.h | 5 ++-- 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 patches/chromium/accessible_pane_view.patch diff --git a/patches/chromium/.patches b/patches/chromium/.patches index fb6b61a53c1a9..07ab1235e806d 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -85,3 +85,4 @@ add_trustedauthclient_to_urlloaderfactory.patch make_autocorrect_off_and_spellcheck_false_disable_touch_bar_typing.patch fix_focusowningwebcontents_to_handle_renderwidgethosts_for_oopifs.patch feat_allow_disbaling_blink_scheduler_throttling_per_renderview.patch +accessible_pane_view.patch diff --git a/patches/chromium/accessible_pane_view.patch b/patches/chromium/accessible_pane_view.patch new file mode 100644 index 0000000000000..8f8cf6f883f15 --- /dev/null +++ b/patches/chromium/accessible_pane_view.patch @@ -0,0 +1,30 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Cheng Zhao +Date: Thu, 4 Oct 2018 14:57:02 -0700 +Subject: fix: add back virtual methods in AccessiblePaneView + +Mark SetPaneFocus and RemovePaneFocus as virtual in AccessiblePaneView, as we +need to override them in MenuBar. + +diff --git a/ui/views/accessible_pane_view.h b/ui/views/accessible_pane_view.h +index 813fd13860a8..990c905e8f19 100644 +--- a/ui/views/accessible_pane_view.h ++++ b/ui/views/accessible_pane_view.h +@@ -35,7 +35,7 @@ class VIEWS_EXPORT AccessiblePaneView : public View, + // If |initial_focus| is not NULL, that control will get + // the initial focus, if it's enabled and focusable. Returns true if + // the pane was able to receive focus. +- bool SetPaneFocus(View* initial_focus); ++ virtual bool SetPaneFocus(View* initial_focus); + + bool pane_has_focus() const { return pane_has_focus_; } + +@@ -83,7 +83,7 @@ class VIEWS_EXPORT AccessiblePaneView : public View, + bool ContainsForFocusSearch(View* root, const View* v); + + // Remove pane focus. +- void RemovePaneFocus(); ++ virtual void RemovePaneFocus(); + + View* GetFirstFocusableChild(); + View* GetLastFocusableChild(); diff --git a/shell/browser/ui/views/menu_bar.h b/shell/browser/ui/views/menu_bar.h index c7192ed6c9add..9675ffad27fea 100644 --- a/shell/browser/ui/views/menu_bar.h +++ b/shell/browser/ui/views/menu_bar.h @@ -71,6 +71,8 @@ class MenuBar : public views::AccessiblePaneView, // views::AccessiblePaneView: bool AcceleratorPressed(const ui::Accelerator& accelerator) override; + bool SetPaneFocus(views::View* initial_focus) override; + void RemovePaneFocus() override; protected: // views::View: @@ -82,9 +84,6 @@ class MenuBar : public views::AccessiblePaneView, const ui::Event* event) override; void OnThemeChanged() override; - bool SetPaneFocus(views::View* initial_focus); - void RemovePaneFocus(); - private: friend class MenuBarColorUpdater; From d00f6dc69736f6c82e73d85789928f1bfceab159 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 10 Dec 2019 09:59:04 +0900 Subject: [PATCH 2/2] chore: add CL link --- patches/chromium/accessible_pane_view.patch | 2 ++ 1 file changed, 2 insertions(+) diff --git a/patches/chromium/accessible_pane_view.patch b/patches/chromium/accessible_pane_view.patch index 8f8cf6f883f15..19d534e8e853e 100644 --- a/patches/chromium/accessible_pane_view.patch +++ b/patches/chromium/accessible_pane_view.patch @@ -6,6 +6,8 @@ Subject: fix: add back virtual methods in AccessiblePaneView Mark SetPaneFocus and RemovePaneFocus as virtual in AccessiblePaneView, as we need to override them in MenuBar. +Pending upstream patch: https://crrev.com/c/1959189 + diff --git a/ui/views/accessible_pane_view.h b/ui/views/accessible_pane_view.h index 813fd13860a8..990c905e8f19 100644 --- a/ui/views/accessible_pane_view.h