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 825c15162aa3007cdfed60a17899d5ee60504094..154b8b0c210c34bcbb4dcdd7a249dca1c34cfe54 100644 |
--- a/chrome/browser/extensions/extension_webrequest_api.cc |
+++ b/chrome/browser/extensions/extension_webrequest_api.cc |
@@ -1535,6 +1535,17 @@ bool WebRequestAddEventListener::RunImpl() { |
return false; |
} |
+ // We allow to subscribe to patterns that are broader than the host |
+ // permissions. E.g., we could subscribe to http://www.example.com/* |
+ // while having host permissions for http://www.example.com/foo/* and |
+ // http://www.example.com/bar/*. |
+ // For this reason we do only a coarse check here to warn the extension |
+ // developer if he does something obviously wrong. |
+ if (extension->GetEffectiveHostPermissions().is_empty()) { |
+ error_ = keys::kHostPermissionsRequired; |
+ return false; |
+ } |
+ |
ExtensionWebRequestEventRouter::GetInstance()->AddEventListener( |
profile_id(), extension_id(), extension_name, |
event_name, sub_event_name, filter, |