Index: chrome/browser/extensions/api/web_request/web_request_api_helpers.cc |
diff --git a/chrome/browser/extensions/api/web_request/web_request_api_helpers.cc b/chrome/browser/extensions/api/web_request/web_request_api_helpers.cc |
index 871f29aeb4a517602ce967d6f2c76f434fd9d286..5e29a4efc5c43f403347f850263b3c90502e7357 100644 |
--- a/chrome/browser/extensions/api/web_request/web_request_api_helpers.cc |
+++ b/chrome/browser/extensions/api/web_request/web_request_api_helpers.cc |
@@ -10,6 +10,7 @@ |
#include "chrome/browser/extensions/api/web_request/web_request_api.h" |
#include "chrome/common/url_constants.h" |
#include "net/http/http_util.h" |
+#include "net/url_request/url_request.h" |
namespace extension_web_request_api_helpers { |
@@ -593,6 +594,8 @@ namespace { |
// modified/canceled by extensions, e.g. because it is targeted to the webstore |
// to check for updates, extension blacklisting, etc. |
bool IsSensitiveURL(const GURL& url) { |
+ // TODO(battre) Merge this, CanExtensionAccessURL of web_request_api.cc and |
+ // Extension::CanExecuteScriptOnPage into one function. |
bool is_webstore_gallery_url = |
StartsWithASCII(url.spec(), extension_urls::kGalleryBrowsePrefix, true); |
bool sensitive_chrome_url = false; |
@@ -631,8 +634,17 @@ bool HasWebRequestScheme(const GURL& url) { |
} // namespace |
-bool HideRequestForURL(const GURL& url) { |
- return IsSensitiveURL(url) || !HasWebRequestScheme(url); |
+bool HideRequest(net::URLRequest* request) { |
+ const GURL& url = request->url(); |
+ const GURL& first_party_url = request->first_party_for_cookies(); |
+ bool hide = false; |
+ if (first_party_url.is_valid()) { |
+ hide = IsSensitiveURL(first_party_url) || |
+ !HasWebRequestScheme(first_party_url); |
+ } |
+ if (!hide) |
+ hide = IsSensitiveURL(url) || !HasWebRequestScheme(url); |
+ return hide; |
} |
#define ARRAYEND(array) (array + arraysize(array)) |