| Index: chrome/browser/extensions/external_install_ui.cc
|
| diff --git a/chrome/browser/extensions/external_install_ui.cc b/chrome/browser/extensions/external_install_ui.cc
|
| index 901b26c1c694648ea89cf4d7c701d6930811ac47..94cd0e5d195d407847376fdae37ea87c92621903 100644
|
| --- a/chrome/browser/extensions/external_install_ui.cc
|
| +++ b/chrome/browser/extensions/external_install_ui.cc
|
| @@ -101,7 +101,7 @@ class ExternalInstallDialogDelegate
|
|
|
| // The UI for showing the install dialog when enabling.
|
| scoped_ptr<ExtensionInstallPrompt> install_ui_;
|
| - scoped_ptr<ExtensionInstallPrompt::Prompt> prompt_;
|
| + scoped_refptr<ExtensionInstallPrompt::Prompt> prompt_;
|
|
|
| Browser* browser_;
|
| base::WeakPtr<ExtensionService> service_weak_;
|
| @@ -167,10 +167,11 @@ class ExternalInstallMenuAlert : public GlobalErrorWithStandardBubble,
|
| // Shows a menu item and a global error bubble, replacing the install dialog.
|
| class ExternalInstallGlobalError : public ExternalInstallMenuAlert {
|
| public:
|
| - ExternalInstallGlobalError(ExtensionService* service,
|
| - const Extension* extension,
|
| - ExternalInstallDialogDelegate* delegate,
|
| - const ExtensionInstallPrompt::Prompt& prompt);
|
| + ExternalInstallGlobalError(
|
| + ExtensionService* service,
|
| + const Extension* extension,
|
| + ExternalInstallDialogDelegate* delegate,
|
| + scoped_refptr<ExtensionInstallPrompt::Prompt> prompt);
|
| virtual ~ExternalInstallGlobalError();
|
|
|
| virtual void ExecuteMenuItem(Browser* browser) OVERRIDE;
|
| @@ -189,7 +190,7 @@ class ExternalInstallGlobalError : public ExternalInstallMenuAlert {
|
| // having been clicked (perhaps because the user enabled the extension
|
| // manually).
|
| ExternalInstallDialogDelegate* delegate_;
|
| - const ExtensionInstallPrompt::Prompt* prompt_;
|
| + scoped_refptr<ExtensionInstallPrompt::Prompt> prompt_;
|
|
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(ExternalInstallGlobalError);
|
| @@ -200,7 +201,7 @@ static void CreateExternalInstallGlobalError(
|
| const std::string& extension_id,
|
| const ExtensionInstallPrompt::ShowParams& show_params,
|
| ExtensionInstallPrompt::Delegate* prompt_delegate,
|
| - const ExtensionInstallPrompt::Prompt& prompt) {
|
| + scoped_refptr<ExtensionInstallPrompt::Prompt> prompt) {
|
| if (!service.get())
|
| return;
|
| const Extension* extension = service->GetInstalledExtension(extension_id);
|
| @@ -242,8 +243,8 @@ ExternalInstallDialogDelegate::ExternalInstallDialogDelegate(
|
| use_global_error_(use_global_error) {
|
| AddRef(); // Balanced in Proceed or Abort.
|
|
|
| - prompt_.reset(new ExtensionInstallPrompt::Prompt(
|
| - ExtensionInstallPrompt::EXTERNAL_INSTALL_PROMPT));
|
| + prompt_ = new ExtensionInstallPrompt::Prompt(
|
| + ExtensionInstallPrompt::EXTERNAL_INSTALL_PROMPT);
|
|
|
| // If we don't have a browser, we can't go to the webstore to fetch data.
|
| // This should only happen in tests.
|
| @@ -324,7 +325,7 @@ void ExternalInstallDialogDelegate::ShowInstallUI() {
|
| extension_id_) :
|
| ExtensionInstallPrompt::GetDefaultShowDialogCallback();
|
|
|
| - install_ui_->ConfirmExternalInstall(this, extension, callback, *prompt_);
|
| + install_ui_->ConfirmExternalInstall(this, extension, callback, prompt_);
|
| }
|
|
|
| ExternalInstallDialogDelegate::~ExternalInstallDialogDelegate() {
|
| @@ -461,10 +462,10 @@ ExternalInstallGlobalError::ExternalInstallGlobalError(
|
| ExtensionService* service,
|
| const Extension* extension,
|
| ExternalInstallDialogDelegate* delegate,
|
| - const ExtensionInstallPrompt::Prompt& prompt)
|
| + scoped_refptr<ExtensionInstallPrompt::Prompt> prompt)
|
| : ExternalInstallMenuAlert(service, extension),
|
| delegate_(delegate),
|
| - prompt_(&prompt) {
|
| + prompt_(prompt) {
|
| }
|
|
|
| ExternalInstallGlobalError::~ExternalInstallGlobalError() {
|
|
|