Index: chrome/browser/extensions/api/permissions/permissions_api.cc |
diff --git a/chrome/browser/extensions/api/permissions/permissions_api.cc b/chrome/browser/extensions/api/permissions/permissions_api.cc |
index cbaf1d9055f362b27f2567d2e3381f4fe7008bc3..d39ab661c75f22e4bd5d18a6c67439ce924f2327 100644 |
--- a/chrome/browser/extensions/api/permissions/permissions_api.cc |
+++ b/chrome/browser/extensions/api/permissions/permissions_api.cc |
@@ -147,7 +147,9 @@ PermissionsRequestFunction::~PermissionsRequestFunction() {} |
bool PermissionsRequestFunction::RunImpl() { |
results_ = Request::Results::Create(false); |
- if (!user_gesture() && !ignore_user_gesture_for_tests) { |
+ if (!user_gesture() && |
+ !ignore_user_gesture_for_tests && |
+ extension_->location() != Manifest::COMPONENT) { |
error_ = kUserGestureRequiredError; |
return false; |
} |
@@ -211,7 +213,8 @@ bool PermissionsRequestFunction::RunImpl() { |
// are allowed to silently increase their permission level. |
bool has_no_warnings = requested_permissions_->GetWarningMessages( |
GetExtension()->GetType()).empty(); |
- if (auto_confirm_for_tests == PROCEED || has_no_warnings) { |
+ if (auto_confirm_for_tests == PROCEED || has_no_warnings || |
+ extension_->location() == Manifest::COMPONENT) { |
InstallUIProceed(); |
} else if (auto_confirm_for_tests == ABORT) { |
// Pretend the user clicked cancel. |