Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplify customization of WebUIBubbleManager #23049

Merged
merged 1 commit into from
Apr 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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

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(
Loading