Skip to content

Commit

Permalink
Simplify customization of WebUIBubbleManager
Browse files Browse the repository at this point in the history
  • Loading branch information
zenparsing committed Apr 16, 2024
1 parent eb30d51 commit c2daa7a
Show file tree
Hide file tree
Showing 11 changed files with 42 additions and 100 deletions.
1 change: 0 additions & 1 deletion browser/ui/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,6 @@ source_set("ui") {
"views/brave_shields/cookie_list_opt_in_bubble_host.h",
"views/brave_tab_search_bubble_host.cc",
"views/brave_tab_search_bubble_host.h",
"views/bubble/brave_webui_bubble_manager.h",
"views/commands/default_accelerators_views.cc",
"views/crash_report_permission_ask_dialog_view.cc",
"views/crash_report_permission_ask_dialog_view.h",
Expand Down
4 changes: 2 additions & 2 deletions browser/ui/views/brave_actions/brave_rewards_action_view.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
#include "brave/app/vector_icons/vector_icons.h"
#include "brave/browser/brave_rewards/rewards_service_factory.h"
#include "brave/browser/ui/brave_icon_with_badge_image_source.h"
#include "brave/browser/ui/views/bubble/brave_webui_bubble_manager.h"
#include "brave/browser/ui/webui/brave_rewards/rewards_panel_ui.h"
#include "brave/components/brave_rewards/browser/rewards_p3a.h"
#include "brave/components/brave_rewards/browser/rewards_service.h"
Expand All @@ -26,6 +25,7 @@
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/omnibox/omnibox_theme.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/views/bubble/webui_bubble_manager.h"
#include "chrome/browser/ui/views/chrome_layout_provider.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/location_bar/location_bar_view.h"
Expand Down Expand Up @@ -182,7 +182,7 @@ BraveRewardsActionView::BraveRewardsActionView(Browser* browser)
nullptr,
false),
browser_(browser),
bubble_manager_(std::make_unique<BraveWebUIBubbleManager<RewardsPanelUI>>(
bubble_manager_(WebUIBubbleManager::Create<RewardsPanelUI>(
this,
browser_->profile(),
GURL(kBraveRewardsPanelURL),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

#include "base/memory/weak_ptr.h"
#include "brave/browser/ui/brave_icon_with_badge_image_source.h"
#include "brave/browser/ui/views/bubble/brave_webui_bubble_manager.h"
#include "brave/browser/ui/webui/brave_shields/shields_panel_ui.h"
#include "brave/components/constants/pref_names.h"
#include "brave/components/constants/url_constants.h"
Expand All @@ -21,6 +20,7 @@
#include "chrome/browser/ui/layout_constants.h"
#include "chrome/browser/ui/omnibox/omnibox_theme.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/views/bubble/webui_bubble_manager.h"
#include "chrome/browser/ui/views/chrome_layout_provider.h"
#include "chrome/browser/ui/views/toolbar/toolbar_ink_drop_util.h"
#include "components/grit/brave_components_resources.h"
Expand Down
14 changes: 7 additions & 7 deletions browser/ui/views/brave_rewards/tip_panel_bubble_host.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
#include <utility>

#include "brave/browser/brave_rewards/rewards_util.h"
#include "brave/browser/ui/views/bubble/brave_webui_bubble_manager.h"
#include "brave/browser/ui/webui/brave_rewards/tip_panel_ui.h"
#include "brave/components/constants/webui_url_constants.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/views/bubble/webui_bubble_manager.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/location_bar/location_bar_view.h"
#include "components/grit/brave_components_strings.h"
Expand All @@ -26,13 +26,13 @@ namespace brave_rewards {
namespace {

// `TipPanelBubbleManager` disables web contents caching for the tip panel.
class TipPanelBubbleManager : public BraveWebUIBubbleManager<TipPanelUI> {
class TipPanelBubbleManager : public WebUIBubbleManagerImpl<TipPanelUI> {
public:
TipPanelBubbleManager(views::View* anchor_view, Profile* profile)
: BraveWebUIBubbleManager(anchor_view,
profile,
GURL(kBraveTipPanelURL),
IDS_BRAVE_UI_BRAVE_REWARDS) {}
: WebUIBubbleManagerImpl(anchor_view,
profile,
GURL(kBraveTipPanelURL),
IDS_BRAVE_UI_BRAVE_REWARDS) {}

~TipPanelBubbleManager() override = default;

Expand All @@ -44,7 +44,7 @@ class TipPanelBubbleManager : public BraveWebUIBubbleManager<TipPanelUI> {
const std::optional<gfx::Rect>& anchor,
views::BubbleBorder::Arrow arrow) override {
set_cached_contents_wrapper(nullptr);
return BraveWebUIBubbleManager::CreateWebUIBubbleDialog(anchor, arrow);
return WebUIBubbleManagerImpl::CreateWebUIBubbleDialog(anchor, arrow);
}
};

Expand Down
37 changes: 0 additions & 37 deletions browser/ui/views/bubble/brave_webui_bubble_manager.h

This file was deleted.

7 changes: 3 additions & 4 deletions browser/ui/views/toolbar/brave_vpn_panel_controller.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@

#include "brave/browser/ui/views/toolbar/brave_vpn_panel_controller.h"

#include "brave/browser/ui/views/bubble/brave_webui_bubble_manager.h"
#include "brave/browser/ui/views/frame/brave_browser_view.h"
#include "brave/components/constants/webui_url_constants.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/views/bubble/webui_bubble_manager.h"
#include "components/grit/brave_components_strings.h"
#include "url/gurl.h"

Expand All @@ -27,9 +27,8 @@ void BraveVPNPanelController::ShowBraveVPNPanel() {

if (!webui_bubble_manager_) {
auto* profile = browser_view_->browser()->profile();
webui_bubble_manager_ =
std::make_unique<BraveWebUIBubbleManager<VPNPanelUI>>(
anchor_view, profile, GURL(kVPNPanelURL), IDS_BRAVE_VPN_PANEL_NAME);
webui_bubble_manager_ = WebUIBubbleManager::Create<VPNPanelUI>(
anchor_view, profile, GURL(kVPNPanelURL), IDS_BRAVE_VPN_PANEL_NAME);
}

if (webui_bubble_manager_->GetBubbleWidget()) {
Expand Down
2 changes: 1 addition & 1 deletion browser/ui/views/toolbar/brave_vpn_panel_controller.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class BraveVPNPanelController {

private:
raw_ptr<BraveBrowserView> browser_view_ = nullptr;
std::unique_ptr<WebUIBubbleManagerImpl<VPNPanelUI>> webui_bubble_manager_;
std::unique_ptr<WebUIBubbleManager> webui_bubble_manager_;
};

#endif // BRAVE_BROWSER_UI_VIEWS_TOOLBAR_BRAVE_VPN_PANEL_CONTROLLER_H_
17 changes: 8 additions & 9 deletions browser/ui/wallet_bubble_manager_delegate_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@

#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "brave/browser/ui/views/bubble/brave_webui_bubble_manager.h"
#include "brave/browser/ui/views/frame/brave_browser_view.h"
#include "brave/browser/ui/views/wallet_bubble_focus_observer.h"
#include "brave/browser/ui/webui/brave_wallet/wallet_common_ui.h"
#include "chrome/browser/file_select_helper.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/views/bubble/webui_bubble_manager.h"
#include "chrome/browser/ui/views/frame/top_container_view.h"
#include "components/grit/brave_components_strings.h"
#include "content/public/browser/web_contents.h"
Expand Down Expand Up @@ -58,17 +58,17 @@ class WalletWebUIBubbleDialogView : public WebUIBubbleDialogView {
BEGIN_METADATA(WalletWebUIBubbleDialogView)
END_METADATA

class WalletWebUIBubbleManager : public BraveWebUIBubbleManager<WalletPanelUI>,
class WalletWebUIBubbleManager : public WebUIBubbleManagerImpl<WalletPanelUI>,
public views::ViewObserver {
public:
WalletWebUIBubbleManager(views::View* anchor_view,
Browser* browser,
const GURL& webui_url,
int task_manager_string_id)
: BraveWebUIBubbleManager(anchor_view,
browser->profile(),
webui_url,
task_manager_string_id),
: WebUIBubbleManagerImpl(anchor_view,
browser->profile(),
webui_url,
task_manager_string_id),
browser_(browser),
anchor_view_(anchor_view) {}

Expand All @@ -79,7 +79,7 @@ class WalletWebUIBubbleManager : public BraveWebUIBubbleManager<WalletPanelUI>,
// so we close WebUIBubbleDialogView and re-create bubble with
// WalletWebUIBubbleDialogView.
auto bubble_view_to_close =
BraveWebUIBubbleManager::CreateWebUIBubbleDialog(anchor, arrow);
WebUIBubbleManagerImpl::CreateWebUIBubbleDialog(anchor, arrow);
auto* widget = bubble_view_to_close->GetWidget();
if (widget) {
widget->CloseNow();
Expand All @@ -88,7 +88,6 @@ class WalletWebUIBubbleManager : public BraveWebUIBubbleManager<WalletPanelUI>,
CHECK(contents_wrapper);
auto bubble_view = std::make_unique<WalletWebUIBubbleDialogView>(
anchor_view_, contents_wrapper, anchor, arrow);
BraveWebUIBubbleManager::CustomizeBubbleDialogView(*bubble_view);
auto bubble_view_weak_ptr = bubble_view->GetWeakPtr();
bubble_view_ = bubble_view_weak_ptr.get();
views::BubbleDialogDelegateView::CreateBubble(std::move(bubble_view));
Expand Down Expand Up @@ -155,7 +154,7 @@ class WalletWebUIBubbleManager : public BraveWebUIBubbleManager<WalletPanelUI>,

void OnWidgetDestroying(views::Widget* widget) override {
CloseOpenedPopups();
BraveWebUIBubbleManager::OnWidgetDestroying(widget);
WebUIBubbleManagerImpl::OnWidgetDestroying(widget);
}

void SetCloseOnDeactivate(bool close) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/* Copyright (c) 2024 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at https://mozilla.org/MPL/2.0/. */

#include "chrome/browser/ui/views/bubble/webui_bubble_dialog_view.h"

// In the `WebUIBubbleDialogView` constructor, give the bubble rounded corners.
// `SetPaintClientToLayer` is required for proper cross-platform rounded corner
// clipping. See `BubbleDialogDelegate::CreateClientView` for more.
#define SetLayoutManager(LAYOUT) \
SetPaintClientToLayer(true); \
set_use_round_corners(true); \
set_corner_radius(16); \
SetLayoutManager(LAYOUT)

#include "src/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.cc"

#undef SetLayoutManager
29 changes: 0 additions & 29 deletions chromium_src/chrome/browser/ui/views/bubble/webui_bubble_manager.h

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/ui/views/bubble/webui_bubble_manager.h b/chrome/browser/ui/views/bubble/webui_bubble_manager.h
index ea2b2c5f0e7127677cbeb1a500ca778b544c7709..4b7659c8869acf513e5481fcf8b0546f2c46a4df 100644
index ea2b2c5f0e7127677cbeb1a500ca778b544c7709..ac063ba5f52082673d297a5c6e70cc7a559d03ac 100644
--- a/chrome/browser/ui/views/bubble/webui_bubble_manager.h
+++ b/chrome/browser/ui/views/bubble/webui_bubble_manager.h
@@ -149,9 +149,11 @@ class WebUIBubbleManagerImpl : public WebUIBubbleManager {
Expand All @@ -14,11 +14,3 @@ index ea2b2c5f0e7127677cbeb1a500ca778b544c7709..4b7659c8869acf513e5481fcf8b0546f

const raw_ptr<views::View> anchor_view_;
const raw_ptr<Profile, DanglingUntriaged> profile_;
@@ -231,6 +233,7 @@ WebUIBubbleManagerImpl<T>::CreateWebUIBubbleDialog(

auto bubble_view = std::make_unique<WebUIBubbleDialogView>(
anchor_view_, contents_wrapper->GetWeakPtr(), anchor, arrow);
+ BRAVE_WEBUI_BUBBLE_MANAGER_T_CREATE_WEB_UI_BUBBLE_DIALOG

if (!widget_initialization_callback_.is_null()) {
bubble_view->RegisterWidgetInitializedCallback(

0 comments on commit c2daa7a

Please sign in to comment.