| Index: chrome/browser/extensions/extension_webrequest_api.cc
|
| diff --git a/chrome/browser/extensions/extension_webrequest_api.cc b/chrome/browser/extensions/extension_webrequest_api.cc
|
| index fa1282226dde18a054df5c6206f1b790b516cda9..42399e874885497c69492e0fd051c6b7e102fd7a 100644
|
| --- a/chrome/browser/extensions/extension_webrequest_api.cc
|
| +++ b/chrome/browser/extensions/extension_webrequest_api.cc
|
| @@ -1477,6 +1477,18 @@ bool WebRequestAddEventListener::RunImpl() {
|
| extension_info_map()->extensions().GetByID(extension_id());
|
| std::string extension_name = extension ? extension->name() : extension_id();
|
|
|
| + // We check automatically whether the extension has the 'webRequest'
|
| + // permission. For blocking calls we require the additional permission
|
| + // 'webRequest_blocking'.
|
| + if ((extra_info_spec &
|
| + (ExtensionWebRequestEventRouter::ExtraInfoSpec::BLOCKING |
|
| + ExtensionWebRequestEventRouter::ExtraInfoSpec::ASYNC_BLOCKING)) &&
|
| + !extension->HasAPIPermission(
|
| + ExtensionAPIPermission::kWebRequestBlocking)) {
|
| + error_ = keys::kBlockingPermissionRequired;
|
| + return false;
|
| + }
|
| +
|
| ExtensionWebRequestEventRouter::GetInstance()->AddEventListener(
|
| profile_id(), extension_id(), extension_name,
|
| event_name, sub_event_name, filter,
|
|
|