Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5212)

Unified Diff: chrome/browser/extensions/api/web_request/web_request_api_helpers.cc

Issue 10831008: Refactor and fix declarative webRequest API permissions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed license headers Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 da746478eecb50346451326db360590858ce4909..b7c88312f8edc6f7acfbee55280f4fa786fdcac0 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
@@ -537,64 +537,6 @@ bool MergeOnAuthRequiredResponses(
return credentials_set;
}
-namespace {
-
-// Returns true if the URL is sensitive and requests to this URL must not be
-// 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;
- if (EndsWith(url.host(), "google.com", true)) {
- sensitive_chrome_url |= (url.host() == "www.google.com") &&
- StartsWithASCII(url.path(), "/chrome", true);
- sensitive_chrome_url |= (url.host() == "chrome.google.com");
- if (StartsWithASCII(url.host(), "client", true)) {
- for (int i = 0; i < 10; ++i) {
- sensitive_chrome_url |=
- (StringPrintf("client%d.google.com", i) == url.host());
- }
- }
- }
- GURL::Replacements replacements;
- replacements.ClearQuery();
- replacements.ClearRef();
- GURL url_without_query = url.ReplaceComponents(replacements);
- return is_webstore_gallery_url || sensitive_chrome_url ||
- extension_urls::IsWebstoreUpdateUrl(url_without_query) ||
- extension_urls::IsBlacklistUpdateUrl(url);
-}
-
-// Returns true if the scheme is one we want to allow extensions to have access
-// to. Extensions still need specific permissions for a given URL, which is
-// covered by CanExtensionAccessURL.
-bool HasWebRequestScheme(const GURL& url) {
- return (url.SchemeIs(chrome::kAboutScheme) ||
- url.SchemeIs(chrome::kFileScheme) ||
- url.SchemeIs(chrome::kFileSystemScheme) ||
- url.SchemeIs(chrome::kFtpScheme) ||
- url.SchemeIs(chrome::kHttpScheme) ||
- url.SchemeIs(chrome::kHttpsScheme) ||
- url.SchemeIs(chrome::kExtensionScheme));
-}
-
-} // namespace
-
-bool HideRequest(const 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))

Powered by Google App Engine
This is Rietveld 408576698