| Index: chrome/browser/extensions/extension_install_prompt.cc
|
| diff --git a/chrome/browser/extensions/extension_install_prompt.cc b/chrome/browser/extensions/extension_install_prompt.cc
|
| index f0ba3c7ec2c14d8cb1600c9f6447411b1caa55ee..87ecb029ff7742a3aa4b82b6795274e98b9ac4e9 100644
|
| --- a/chrome/browser/extensions/extension_install_prompt.cc
|
| +++ b/chrome/browser/extensions/extension_install_prompt.cc
|
| @@ -493,8 +493,8 @@ ExtensionInstallPrompt::ExtensionInstallPrompt(content::WebContents* contents)
|
| bundle_(NULL),
|
| install_ui_(ExtensionInstallUI::Create(ProfileForWebContents(contents))),
|
| show_params_(contents),
|
| - delegate_(NULL),
|
| - prompt_(UNSET_PROMPT_TYPE) {}
|
| + delegate_(NULL) {
|
| +}
|
|
|
| ExtensionInstallPrompt::ExtensionInstallPrompt(
|
| Profile* profile,
|
| @@ -505,8 +505,8 @@ ExtensionInstallPrompt::ExtensionInstallPrompt(
|
| bundle_(NULL),
|
| install_ui_(ExtensionInstallUI::Create(profile)),
|
| show_params_(native_window, navigator),
|
| - delegate_(NULL),
|
| - prompt_(UNSET_PROMPT_TYPE) {}
|
| + delegate_(NULL) {
|
| +}
|
|
|
| ExtensionInstallPrompt::~ExtensionInstallPrompt() {
|
| }
|
| @@ -518,7 +518,7 @@ void ExtensionInstallPrompt::ConfirmBundleInstall(
|
| bundle_ = bundle;
|
| permissions_ = permissions;
|
| delegate_ = bundle;
|
| - prompt_.set_type(BUNDLE_INSTALL_PROMPT);
|
| + prompt_ = new Prompt(BUNDLE_INSTALL_PROMPT);
|
|
|
| ShowConfirmation();
|
| }
|
| @@ -527,7 +527,7 @@ void ExtensionInstallPrompt::ConfirmStandaloneInstall(
|
| Delegate* delegate,
|
| const Extension* extension,
|
| SkBitmap* icon,
|
| - const ExtensionInstallPrompt::Prompt& prompt) {
|
| + scoped_refptr<Prompt> prompt) {
|
| DCHECK(ui_loop_ == base::MessageLoop::current());
|
| extension_ = extension;
|
| permissions_ = extension->permissions_data()->active_permissions();
|
| @@ -558,7 +558,7 @@ void ExtensionInstallPrompt::ConfirmInstall(
|
| extension_ = extension;
|
| permissions_ = extension->permissions_data()->active_permissions();
|
| delegate_ = delegate;
|
| - prompt_.set_type(INSTALL_PROMPT);
|
| + prompt_ = new Prompt(INSTALL_PROMPT);
|
| show_dialog_callback_ = show_dialog_callback;
|
|
|
| // We special-case themes to not show any confirm UI. Instead they are
|
| @@ -591,12 +591,16 @@ void ExtensionInstallPrompt::ConfirmReEnable(Delegate* delegate,
|
| extension->id(), extensions::Extension::DISABLE_REMOTE_INSTALL);
|
| bool is_ephemeral =
|
| extensions::util::IsEphemeralApp(extension->id(), install_ui_->profile());
|
| +
|
| + PromptType type = UNSET_PROMPT_TYPE;
|
| if (is_ephemeral)
|
| - prompt_.set_type(LAUNCH_PROMPT);
|
| + type = LAUNCH_PROMPT;
|
| else if (is_remote_install)
|
| - prompt_.set_type(REMOTE_INSTALL_PROMPT);
|
| + type = REMOTE_INSTALL_PROMPT;
|
| else
|
| - prompt_.set_type(RE_ENABLE_PROMPT);
|
| + type = RE_ENABLE_PROMPT;
|
| + prompt_ = new Prompt(type);
|
| +
|
| LoadImageIfNeeded();
|
| }
|
|
|
| @@ -604,7 +608,7 @@ void ExtensionInstallPrompt::ConfirmExternalInstall(
|
| Delegate* delegate,
|
| const Extension* extension,
|
| const ShowDialogCallback& show_dialog_callback,
|
| - const Prompt& prompt) {
|
| + scoped_refptr<Prompt> prompt) {
|
| DCHECK(ui_loop_ == base::MessageLoop::current());
|
| extension_ = extension;
|
| permissions_ = extension->permissions_data()->active_permissions();
|
| @@ -623,7 +627,7 @@ void ExtensionInstallPrompt::ConfirmPermissions(
|
| extension_ = extension;
|
| permissions_ = permissions;
|
| delegate_ = delegate;
|
| - prompt_.set_type(PERMISSIONS_PROMPT);
|
| + prompt_ = new Prompt(PERMISSIONS_PROMPT);
|
|
|
| LoadImageIfNeeded();
|
| }
|
| @@ -635,9 +639,9 @@ void ExtensionInstallPrompt::ReviewPermissions(
|
| DCHECK(ui_loop_ == base::MessageLoop::current());
|
| extension_ = extension;
|
| permissions_ = extension->permissions_data()->active_permissions();
|
| - prompt_.set_retained_files(retained_file_paths);
|
| + prompt_ = new Prompt(POST_INSTALL_PERMISSIONS_PROMPT);
|
| + prompt_->set_retained_files(retained_file_paths);
|
| delegate_ = delegate;
|
| - prompt_.set_type(POST_INSTALL_PERMISSIONS_PROMPT);
|
|
|
| LoadImageIfNeeded();
|
| }
|
| @@ -703,29 +707,30 @@ void ExtensionInstallPrompt::LoadImageIfNeeded() {
|
| }
|
|
|
| void ExtensionInstallPrompt::ShowConfirmation() {
|
| - if (prompt_.type() == INSTALL_PROMPT)
|
| - prompt_.set_experiment(ExtensionInstallPromptExperiment::Find());
|
| + if (prompt_->type() == INSTALL_PROMPT)
|
| + prompt_->set_experiment(ExtensionInstallPromptExperiment::Find());
|
| else
|
| - prompt_.set_experiment(ExtensionInstallPromptExperiment::ControlGroup());
|
| + prompt_->set_experiment(ExtensionInstallPromptExperiment::ControlGroup());
|
|
|
| if (permissions_.get()) {
|
| if (extension_) {
|
| const extensions::PermissionsData* permissions_data =
|
| extension_->permissions_data();
|
| - prompt_.SetPermissions(permissions_data->GetPermissionMessageStrings());
|
| - prompt_.SetPermissionsDetails(
|
| + prompt_->SetPermissions(permissions_data->GetPermissionMessageStrings());
|
| + prompt_->SetPermissionsDetails(
|
| permissions_data->GetPermissionMessageDetailsStrings());
|
| } else {
|
| const extensions::PermissionMessageProvider* message_provider =
|
| extensions::PermissionMessageProvider::Get();
|
| - prompt_.SetPermissions(message_provider->GetWarningMessages(
|
| - permissions_, Manifest::TYPE_UNKNOWN));
|
| - prompt_.SetPermissionsDetails(message_provider->GetWarningMessagesDetails(
|
| + prompt_->SetPermissions(message_provider->GetWarningMessages(
|
| permissions_, Manifest::TYPE_UNKNOWN));
|
| + prompt_->SetPermissionsDetails(
|
| + message_provider->GetWarningMessagesDetails(permissions_,
|
| + Manifest::TYPE_UNKNOWN));
|
| }
|
| }
|
|
|
| - switch (prompt_.type()) {
|
| + switch (prompt_->type()) {
|
| case PERMISSIONS_PROMPT:
|
| case RE_ENABLE_PROMPT:
|
| case INLINE_INSTALL_PROMPT:
|
| @@ -734,12 +739,12 @@ void ExtensionInstallPrompt::ShowConfirmation() {
|
| case LAUNCH_PROMPT:
|
| case POST_INSTALL_PERMISSIONS_PROMPT:
|
| case REMOTE_INSTALL_PROMPT: {
|
| - prompt_.set_extension(extension_);
|
| - prompt_.set_icon(gfx::Image::CreateFrom1xBitmap(icon_));
|
| + prompt_->set_extension(extension_);
|
| + prompt_->set_icon(gfx::Image::CreateFrom1xBitmap(icon_));
|
| break;
|
| }
|
| case BUNDLE_INSTALL_PROMPT: {
|
| - prompt_.set_bundle(bundle_);
|
| + prompt_->set_bundle(bundle_);
|
| break;
|
| }
|
| default:
|
|
|