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(); |
} |
} |