Index: chrome/browser/ui/views/extensions/chooser_dialog_view.cc |
diff --git a/chrome/browser/ui/views/extensions/chooser_dialog_view.cc b/chrome/browser/ui/views/extensions/chooser_dialog_view.cc |
index fb1fba546b4e73580bdc43adfd53c276b8751bb3..2f621f76b11978ab3a476daaba675876fcae5825 100644 |
--- a/chrome/browser/ui/views/extensions/chooser_dialog_view.cc |
+++ b/chrome/browser/ui/views/extensions/chooser_dialog_view.cc |
@@ -17,13 +17,11 @@ |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/views/controls/styled_label.h" |
#include "ui/views/window/dialog_client_view.h" |
-#include "url/origin.h" |
-ChooserDialogView::ChooserDialogView(content::WebContents* web_contents, |
- ChooserController* chooser_controller) |
- : chooser_content_view_(nullptr), |
- web_contents_(web_contents), |
- chooser_controller_(chooser_controller) { |
+ChooserDialogView::ChooserDialogView( |
+ content::WebContents* web_contents, |
+ std::unique_ptr<ChooserController> chooser_controller) |
+ : web_contents_(web_contents), chooser_content_view_(nullptr) { |
// ------------------------------------ |
// | Chooser dialog title | |
// | -------------------------------- | |
@@ -40,29 +38,30 @@ ChooserDialogView::ChooserDialogView(content::WebContents* web_contents, |
// ------------------------------------ |
DCHECK(web_contents_); |
- |
- chooser_content_view_ = new ChooserContentView(this, chooser_controller_); |
+ DCHECK(chooser_controller); |
+ origin_ = chooser_controller->GetOrigin(); |
+ chooser_content_view_ = |
+ new ChooserContentView(this, std::move(chooser_controller)); |
} |
ChooserDialogView::~ChooserDialogView() {} |
base::string16 ChooserDialogView::GetWindowTitle() const { |
base::string16 chooser_title; |
- url::Origin origin = chooser_controller_->GetOrigin(); |
content::BrowserContext* browser_context = web_contents_->GetBrowserContext(); |
extensions::ExtensionRegistry* extension_registry = |
extensions::ExtensionRegistry::Get(browser_context); |
if (extension_registry) { |
const extensions::Extension* extension = |
extension_registry->enabled_extensions().GetExtensionOrAppByURL( |
- GURL(origin.Serialize())); |
+ GURL(origin_.Serialize())); |
if (extension) |
chooser_title = base::UTF8ToUTF16(extension->name()); |
} |
if (chooser_title.empty()) { |
chooser_title = url_formatter::FormatOriginForSecurityDisplay( |
- origin, url_formatter::SchemeDisplay::OMIT_CRYPTOGRAPHIC); |
+ origin_, url_formatter::SchemeDisplay::OMIT_CRYPTOGRAPHIC); |
} |
return l10n_util::GetStringFUTF16(IDS_DEVICE_CHOOSER_PROMPT, chooser_title); |
@@ -131,7 +130,7 @@ views::TableView* ChooserDialogView::table_view_for_test() const { |
} |
void ChromeExtensionChooserDialog::ShowDialogImpl( |
- ChooserController* chooser_controller) const { |
+ std::unique_ptr<ChooserController> chooser_controller) const { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
DCHECK(chooser_controller); |
@@ -139,7 +138,7 @@ void ChromeExtensionChooserDialog::ShowDialogImpl( |
web_modal::WebContentsModalDialogManager::FromWebContents(web_contents_); |
if (manager) { |
constrained_window::ShowWebModalDialogViews( |
- new ChooserDialogView(web_contents_, chooser_controller), |
+ new ChooserDialogView(web_contents_, std::move(chooser_controller)), |
web_contents_); |
} |
} |