Index: chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm |
diff --git a/chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm b/chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm |
index d621a69406ca9153afd06fa8829589033cd4ef86..835ba3c004dfc3cca482e2ac7f9f142dc79e1ed1 100644 |
--- a/chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm |
+++ b/chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm |
@@ -12,7 +12,10 @@ |
#include "base/strings/sys_string_conversions.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/extensions/bundle_installer.h" |
+#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/ui/browser.h" |
#import "chrome/browser/ui/chrome_style.h" |
+#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" |
#include "chrome/common/extensions/extension_constants.h" |
#include "chrome/grit/generated_resources.h" |
#include "content/public/browser/page_navigator.h" |
@@ -186,9 +189,10 @@ bool HasAttribute(id item, CellAttributesMask attributeMask) { |
@synthesize userCountField = userCountField_; |
@synthesize storeLinkButton = storeLinkButton_; |
-- (id)initWithNavigator:(content::PageNavigator*)navigator |
- delegate:(ExtensionInstallPrompt::Delegate*)delegate |
- prompt:(scoped_refptr<ExtensionInstallPrompt::Prompt>)prompt { |
+- (id)initWithProfile:(Profile*)profile |
+ navigator:(content::PageNavigator*)navigator |
+ delegate:(ExtensionInstallPrompt::Delegate*)delegate |
+ prompt:(scoped_refptr<ExtensionInstallPrompt::Prompt>)prompt { |
// We use a different XIB in the case of bundle installs, installs with |
// webstore data, or no permission warnings. These are laid out nicely for |
// the data they display. |
@@ -207,6 +211,7 @@ bool HasAttribute(id item, CellAttributesMask attributeMask) { |
if ((self = [super initWithNibName:nibName |
bundle:base::mac::FrameworkBundle()])) { |
+ profile_ = profile; |
navigator_ = navigator; |
delegate_ = delegate; |
prompt_ = prompt; |
@@ -218,9 +223,15 @@ bool HasAttribute(id item, CellAttributesMask attributeMask) { |
- (IBAction)storeLinkClicked:(id)sender { |
GURL store_url(extension_urls::GetWebstoreItemDetailURLPrefix() + |
prompt_->extension()->id()); |
- navigator_->OpenURL(OpenURLParams( |
- store_url, Referrer(), NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_LINK, |
- false)); |
+ OpenURLParams params(store_url, Referrer(), NEW_FOREGROUND_TAB, |
+ ui::PAGE_TRANSITION_LINK, false); |
+ if (navigator_) { |
+ navigator_->OpenURL(params); |
+ } else { |
+ chrome::ScopedTabbedBrowserDisplayer displayer( |
+ profile_, chrome::GetActiveDesktop()); |
+ displayer.browser()->OpenURL(params); |
+ } |
delegate_->InstallUIAbort(/*user_initiated=*/true); |
} |