Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6437)

Unified Diff: chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.cc

Issue 2086663003: Change ChooserController ownership model (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removed temporary unique ptr at ChooserBubbleUiCocoa Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.cc
diff --git a/chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.cc b/chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.cc
index f0e9ca699e909f970ced84ba33d7bce1752253ca..c60ae660302f7e754dfe68a13d893652d7b42a68 100644
--- a/chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.cc
+++ b/chrome/browser/ui/views/website_settings/chooser_bubble_ui_view.cc
@@ -6,6 +6,8 @@
#include <stddef.h>
+#include <memory>
+
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/strings/string16.h"
@@ -31,7 +33,7 @@
std::unique_ptr<BubbleUi> ChooserBubbleDelegate::BuildBubbleUi() {
return base::WrapUnique(
- new ChooserBubbleUiView(browser_, chooser_controller()));
+ new ChooserBubbleUiView(browser_, std::move(chooser_controller_)));
}
///////////////////////////////////////////////////////////////////////////////
@@ -40,10 +42,10 @@ class ChooserBubbleUiViewDelegate : public views::BubbleDialogDelegateView,
public views::StyledLabelListener,
public views::TableViewObserver {
public:
- ChooserBubbleUiViewDelegate(views::View* anchor_view,
- views::BubbleBorder::Arrow anchor_arrow,
- ChooserController* chooser_controller,
- BubbleReference bubble_reference);
+ ChooserBubbleUiViewDelegate(
+ views::View* anchor_view,
+ views::BubbleBorder::Arrow anchor_arrow,
+ std::unique_ptr<ChooserController> chooser_controller);
~ChooserBubbleUiViewDelegate() override;
// views::WidgetDelegate:
@@ -75,12 +77,12 @@ class ChooserBubbleUiViewDelegate : public views::BubbleDialogDelegateView,
void UpdateAnchor(views::View* anchor_view,
views::BubbleBorder::Arrow anchor_arrow);
+ void set_bubble_reference(BubbleReference bubble_reference);
void UpdateTableModel() const;
private:
+ url::Origin origin_;
ChooserContentView* chooser_content_view_;
-
- ChooserController* chooser_controller_;
BubbleReference bubble_reference_;
DISALLOW_COPY_AND_ASSIGN(ChooserBubbleUiViewDelegate);
@@ -89,12 +91,9 @@ class ChooserBubbleUiViewDelegate : public views::BubbleDialogDelegateView,
ChooserBubbleUiViewDelegate::ChooserBubbleUiViewDelegate(
views::View* anchor_view,
views::BubbleBorder::Arrow anchor_arrow,
- ChooserController* chooser_controller,
- BubbleReference bubble_reference)
+ std::unique_ptr<ChooserController> chooser_controller)
: views::BubbleDialogDelegateView(anchor_view, anchor_arrow),
- chooser_content_view_(nullptr),
- chooser_controller_(chooser_controller),
- bubble_reference_(bubble_reference) {
+ chooser_content_view_(nullptr) {
// ------------------------------------
// | Chooser bubble title |
// | -------------------------------- |
@@ -110,9 +109,9 @@ ChooserBubbleUiViewDelegate::ChooserBubbleUiViewDelegate(
// | Not seeing your device? Get help |
// ------------------------------------
- DCHECK(bubble_reference_);
-
- chooser_content_view_ = new ChooserContentView(this, chooser_controller_);
+ origin_ = chooser_controller->GetOrigin();
+ chooser_content_view_ =
+ new ChooserContentView(this, std::move(chooser_controller));
}
ChooserBubbleUiViewDelegate::~ChooserBubbleUiViewDelegate() {}
@@ -121,8 +120,7 @@ base::string16 ChooserBubbleUiViewDelegate::GetWindowTitle() const {
return l10n_util::GetStringFUTF16(
IDS_DEVICE_CHOOSER_PROMPT,
url_formatter::FormatOriginForSecurityDisplay(
- chooser_controller_->GetOrigin(),
- url_formatter::SchemeDisplay::OMIT_CRYPTOGRAPHIC));
+ origin_, url_formatter::SchemeDisplay::OMIT_CRYPTOGRAPHIC));
}
base::string16 ChooserBubbleUiViewDelegate::GetDialogButtonLabel(
@@ -191,26 +189,32 @@ void ChooserBubbleUiViewDelegate::UpdateAnchor(
SetAnchorView(anchor_view);
}
+void ChooserBubbleUiViewDelegate::set_bubble_reference(
+ BubbleReference bubble_reference) {
+ bubble_reference_ = bubble_reference;
+ DCHECK(bubble_reference_);
+}
+
void ChooserBubbleUiViewDelegate::UpdateTableModel() const {
chooser_content_view_->UpdateTableModel();
}
//////////////////////////////////////////////////////////////////////////////
// ChooserBubbleUiView
-ChooserBubbleUiView::ChooserBubbleUiView(Browser* browser,
- ChooserController* chooser_controller)
- : browser_(browser),
- chooser_controller_(chooser_controller),
- chooser_bubble_ui_view_delegate_(nullptr) {
+ChooserBubbleUiView::ChooserBubbleUiView(
+ Browser* browser,
+ std::unique_ptr<ChooserController> chooser_controller)
+ : browser_(browser), chooser_bubble_ui_view_delegate_(nullptr) {
DCHECK(browser_);
- DCHECK(chooser_controller_);
+ DCHECK(chooser_controller);
+ chooser_bubble_ui_view_delegate_ = new ChooserBubbleUiViewDelegate(
+ GetAnchorView(), GetAnchorArrow(), std::move(chooser_controller));
}
ChooserBubbleUiView::~ChooserBubbleUiView() {}
void ChooserBubbleUiView::Show(BubbleReference bubble_reference) {
- chooser_bubble_ui_view_delegate_ = new ChooserBubbleUiViewDelegate(
- GetAnchorView(), GetAnchorArrow(), chooser_controller_, bubble_reference);
+ chooser_bubble_ui_view_delegate_->set_bubble_reference(bubble_reference);
// Set |parent_window| because some valid anchors can become hidden.
views::Widget* widget = views::Widget::GetWidgetForNativeWindow(

Powered by Google App Engine
This is Rietveld 408576698