Index: chrome/browser/extensions/unpacked_installer.cc |
diff --git a/chrome/browser/extensions/unpacked_installer.cc b/chrome/browser/extensions/unpacked_installer.cc |
index eabbfe6a34e0a409d0608725f79d37d9f2882ff1..10d7c1068add93474fdc78295719f3ee80cb19b3 100644 |
--- a/chrome/browser/extensions/unpacked_installer.cc |
+++ b/chrome/browser/extensions/unpacked_installer.cc |
@@ -10,6 +10,7 @@ |
#include "chrome/browser/extensions/extension_install_ui.h" |
#include "chrome/browser/extensions/extension_prefs.h" |
#include "chrome/browser/extensions/extension_service.h" |
+#include "chrome/browser/extensions/permissions_updater.h" |
#include "chrome/common/extensions/extension.h" |
#include "chrome/common/extensions/extension_file_util.h" |
#include "chrome/common/string_ordinal.h" |
@@ -29,8 +30,8 @@ class SimpleExtensionLoadPrompt : public ExtensionInstallUI::Delegate { |
void ShowPrompt(); |
// ExtensionInstallUI::Delegate |
- virtual void InstallUIProceed(); |
- virtual void InstallUIAbort(bool user_initiated); |
+ virtual void InstallUIProceed() OVERRIDE; |
+ virtual void InstallUIAbort(bool user_initiated) OVERRIDE; |
private: |
base::WeakPtr<ExtensionService> service_weak_; |
@@ -55,9 +56,12 @@ void SimpleExtensionLoadPrompt::ShowPrompt() { |
} |
void SimpleExtensionLoadPrompt::InstallUIProceed() { |
- if (service_weak_.get()) |
+ if (service_weak_.get()) { |
+ extensions::PermissionsUpdater perms_updater(service_weak_->profile()); |
+ perms_updater.GrantActivePermissions(extension_); |
service_weak_->OnExtensionInstalled( |
extension_, false, StringOrdinal()); // Not from web store. |
+ } |
delete this; |
} |
@@ -200,7 +204,7 @@ void UnpackedInstaller::OnLoaded( |
if (service_weak_->show_extensions_prompts() && |
prompt_for_plugins_ && |
!extension->plugins().empty() && |
- disabled_extensions->Contains(extension->id())) { |
+ !disabled_extensions->Contains(extension->id())) { |
SimpleExtensionLoadPrompt* prompt = new SimpleExtensionLoadPrompt( |
service_weak_->profile(), |
service_weak_, |
@@ -208,6 +212,9 @@ void UnpackedInstaller::OnLoaded( |
prompt->ShowPrompt(); |
return; // continues in SimpleExtensionLoadPrompt::InstallUI* |
} |
+ |
+ PermissionsUpdater perms_updater(service_weak_->profile()); |
+ perms_updater.GrantActivePermissions(extension); |
service_weak_->OnExtensionInstalled(extension, |
false, // Not from web store. |
StringOrdinal()); |