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

Unified Diff: chrome/browser/ui/views/extensions/extension_install_dialog_view.cc

Issue 660643002: [Refactor] Move creating a browser if necessary to ExtensionInstallDialogView (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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/extensions/extension_install_dialog_view.cc
diff --git a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
index 5eefc58026efb4b4f33ce79b9eec29b8be5b2372..53582e6e61f7962528ecebe185e7191f26a47fb6 100644
--- a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
+++ b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
@@ -19,6 +19,8 @@
#include "chrome/browser/extensions/extension_install_prompt_experiment.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
#include "chrome/browser/ui/views/constrained_window_views.h"
#include "chrome/common/extensions/extension_constants.h"
#include "chrome/grit/generated_resources.h"
@@ -170,9 +172,12 @@ void ShowExtensionInstallDialogImpl(
ExtensionInstallPrompt::Delegate* delegate,
scoped_refptr<ExtensionInstallPrompt::Prompt> prompt) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- CreateBrowserModalDialogViews(
- new ExtensionInstallDialogView(show_params.navigator, delegate, prompt),
- show_params.parent_window)->Show();
+ ExtensionInstallDialogView* dialog =
+ new ExtensionInstallDialogView(show_params.profile,
+ show_params.parent_web_contents,
+ delegate,
+ prompt);
+ CreateBrowserModalDialogViews(dialog, show_params.parent_window)->Show();
}
CustomScrollableView::CustomScrollableView() {}
@@ -184,10 +189,12 @@ void CustomScrollableView::Layout() {
}
ExtensionInstallDialogView::ExtensionInstallDialogView(
+ Profile* profile,
content::PageNavigator* navigator,
ExtensionInstallPrompt::Delegate* delegate,
scoped_refptr<ExtensionInstallPrompt::Prompt> prompt)
- : navigator_(navigator),
+ : profile_(profile),
+ navigator_(navigator),
delegate_(delegate),
prompt_(prompt),
scroll_view_(NULL),
@@ -851,7 +858,14 @@ void ExtensionInstallDialogView::LinkClicked(views::Link* source,
store_url, Referrer(), NEW_FOREGROUND_TAB,
ui::PAGE_TRANSITION_LINK,
false);
- navigator_->OpenURL(params);
+
+ if (navigator_) {
+ navigator_->OpenURL(params);
+ } else {
+ chrome::ScopedTabbedBrowserDisplayer displayer(
+ profile_, chrome::GetActiveDesktop());
+ displayer.browser()->OpenURL(params);
+ }
GetWidget()->Close();
}
}

Powered by Google App Engine
This is Rietveld 408576698