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 7526a7d9f484006aeeb5789154e2e55af3cbc833..9f0ad7dc6db2a52b45eb14c4711ea3eb0a28d35e 100644 |
--- a/chrome/browser/extensions/extension_install_prompt.cc |
+++ b/chrome/browser/extensions/extension_install_prompt.cc |
@@ -623,10 +623,10 @@ ExtensionInstallPrompt::~ExtensionInstallPrompt() { |
void ExtensionInstallPrompt::ConfirmBundleInstall( |
extensions::BundleInstaller* bundle, |
const SkBitmap* icon, |
- const PermissionSet* permissions) { |
+ scoped_ptr<const PermissionSet> permissions) { |
DCHECK(ui_loop_ == base::MessageLoop::current()); |
bundle_ = bundle; |
- custom_permissions_ = permissions; |
+ custom_permissions_ = permissions.Pass(); |
delegate_ = bundle; |
prompt_ = new Prompt(BUNDLE_INSTALL_PROMPT); |
@@ -638,11 +638,11 @@ void ExtensionInstallPrompt::ConfirmPermissionsForDelegatedBundleInstall( |
extensions::BundleInstaller* bundle, |
const std::string& delegated_username, |
const SkBitmap* icon, |
- const extensions::PermissionSet* permissions) { |
+ scoped_ptr<const extensions::PermissionSet> permissions) { |
DCHECK(ui_loop_ == base::MessageLoop::current()); |
bundle_ = bundle; |
delegated_username_ = delegated_username; |
- custom_permissions_ = permissions; |
+ custom_permissions_ = permissions.Pass(); |
delegate_ = bundle; |
prompt_ = new Prompt(DELEGATED_BUNDLE_PERMISSIONS_PROMPT); |
@@ -759,10 +759,10 @@ void ExtensionInstallPrompt::ConfirmExternalInstall( |
void ExtensionInstallPrompt::ConfirmPermissions( |
Delegate* delegate, |
const Extension* extension, |
- const PermissionSet* permissions) { |
+ scoped_ptr<const PermissionSet> permissions) { |
DCHECK(ui_loop_ == base::MessageLoop::current()); |
extension_ = extension; |
- custom_permissions_ = permissions; |
+ custom_permissions_ = permissions.Pass(); |
delegate_ = delegate; |
prompt_ = new Prompt(PERMISSIONS_PROMPT); |
@@ -845,9 +845,10 @@ void ExtensionInstallPrompt::LoadImageIfNeeded() { |
} |
void ExtensionInstallPrompt::ShowConfirmation() { |
- scoped_refptr<const PermissionSet> permissions_to_display; |
+ scoped_ptr<const PermissionSet> permissions_wrapper; |
+ const PermissionSet* permissions_to_display = nullptr; |
if (custom_permissions_.get()) { |
- permissions_to_display = custom_permissions_; |
+ permissions_to_display = custom_permissions_.get(); |
} else if (extension_) { |
// Initialize permissions if they have not already been set so that |
// withheld permissions are displayed properly in the install prompt. |
@@ -860,14 +861,15 @@ void ExtensionInstallPrompt::ShowConfirmation() { |
// person who triggers the install, so add them to the list. |
if (prompt_->type() == DELEGATED_PERMISSIONS_PROMPT || |
prompt_->type() == DELEGATED_BUNDLE_PERMISSIONS_PROMPT) { |
- scoped_refptr<const PermissionSet> optional_permissions = |
+ const PermissionSet* optional_permissions = |
extensions::PermissionsParser::GetOptionalPermissions(extension_); |
- permissions_to_display = PermissionSet::CreateUnion( |
- *permissions_to_display, *optional_permissions); |
+ permissions_wrapper = PermissionSet::CreateUnion(*permissions_to_display, |
+ *optional_permissions); |
+ permissions_to_display = permissions_wrapper.get(); |
} |
} |
- if (permissions_to_display.get() && |
+ if (permissions_to_display && |
(!extension_ || |
!extensions::PermissionsData::ShouldSkipPermissionWarnings( |
extension_->id()))) { |
@@ -878,16 +880,16 @@ void ExtensionInstallPrompt::ShowConfirmation() { |
prompt_->SetPermissions(message_provider->GetPermissionMessages( |
message_provider->GetAllPermissionIDs( |
- permissions_to_display.get(), type)), |
+ permissions_to_display, type)), |
REGULAR_PERMISSIONS); |
- scoped_refptr<const extensions::PermissionSet> withheld = |
+ const PermissionSet* withheld = |
extension_ ? extension_->permissions_data()->withheld_permissions() |
: nullptr; |
if (withheld && !withheld->IsEmpty()) { |
prompt_->SetPermissions( |
message_provider->GetPermissionMessages( |
- message_provider->GetAllPermissionIDs(withheld.get(), type)), |
+ message_provider->GetAllPermissionIDs(withheld, type)), |
WITHHELD_PERMISSIONS); |
} |
} |