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

Unified Diff: chrome/browser/extensions/extension_install_prompt.cc

Issue 313203004: Make ExtensionInstallPrompt::Prompt ref-counted (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Latest master for CQ Created 6 years, 6 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/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:
« no previous file with comments | « chrome/browser/extensions/extension_install_prompt.h ('k') | chrome/browser/extensions/external_install_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698