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

Side by Side Diff: chrome/browser/extensions/api/web_request/web_request_permissions.cc

Issue 515563003: Remove dependency of chrome in WebRequestPermissions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove delegate. Created 6 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/web_request/web_request_permissions.h" 5 #include "chrome/browser/extensions/api/web_request/web_request_permissions.h"
6 6
7 #include "base/strings/string_util.h" 7 #include "base/strings/string_util.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "chrome/common/extensions/extension_constants.h"
10 #include "chrome/common/url_constants.h"
11 #include "content/public/browser/resource_request_info.h" 9 #include "content/public/browser/resource_request_info.h"
10 #include "extensions/browser/api/extensions_api_client.h"
12 #include "extensions/browser/guest_view/web_view/web_view_renderer_state.h" 11 #include "extensions/browser/guest_view/web_view/web_view_renderer_state.h"
13 #include "extensions/browser/info_map.h" 12 #include "extensions/browser/info_map.h"
14 #include "extensions/common/constants.h" 13 #include "extensions/common/constants.h"
15 #include "extensions/common/extension.h" 14 #include "extensions/common/extension.h"
16 #include "extensions/common/permissions/permissions_data.h" 15 #include "extensions/common/permissions/permissions_data.h"
17 #include "net/url_request/url_request.h" 16 #include "net/url_request/url_request.h"
18 #include "url/gurl.h" 17 #include "url/gurl.h"
19 18
20 using content::ResourceRequestInfo; 19 using content::ResourceRequestInfo;
21 20
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 EndsWith(url.host(), ".clients.google.com", true) || 52 EndsWith(url.host(), ".clients.google.com", true) ||
54 url.host() == "sb-ssl.google.com" || 53 url.host() == "sb-ssl.google.com" ||
55 (url.host() == "chrome.google.com" && 54 (url.host() == "chrome.google.com" &&
56 StartsWithASCII(url.path(), "/webstore", true)); 55 StartsWithASCII(url.path(), "/webstore", true));
57 } 56 }
58 GURL::Replacements replacements; 57 GURL::Replacements replacements;
59 replacements.ClearQuery(); 58 replacements.ClearQuery();
60 replacements.ClearRef(); 59 replacements.ClearRef();
61 GURL url_without_query = url.ReplaceComponents(replacements); 60 GURL url_without_query = url.ReplaceComponents(replacements);
62 return sensitive_chrome_url || 61 return sensitive_chrome_url ||
63 extension_urls::IsWebstoreUpdateUrl(url_without_query) || 62 extensions::ExtensionsAPIClient::Get()->MustNotBeModifiedURL(url);
64 extension_urls::IsBlacklistUpdateUrl(url);
65 } 63 }
66 64
67 // Returns true if the scheme is one we want to allow extensions to have access 65 // Returns true if the scheme is one we want to allow extensions to have access
68 // to. Extensions still need specific permissions for a given URL, which is 66 // to. Extensions still need specific permissions for a given URL, which is
69 // covered by CanExtensionAccessURL. 67 // covered by CanExtensionAccessURL.
70 bool HasWebRequestScheme(const GURL& url) { 68 bool HasWebRequestScheme(const GURL& url) {
71 return (url.SchemeIs(url::kAboutScheme) || url.SchemeIs(url::kFileScheme) || 69 return (url.SchemeIs(url::kAboutScheme) || url.SchemeIs(url::kFileScheme) ||
72 url.SchemeIs(url::kFileSystemScheme) || 70 url.SchemeIs(url::kFileSystemScheme) ||
73 url.SchemeIs(url::kFtpScheme) || url.SchemeIs(url::kHttpScheme) || 71 url.SchemeIs(url::kFtpScheme) || url.SchemeIs(url::kHttpScheme) ||
74 url.SchemeIs(url::kHttpsScheme) || 72 url.SchemeIs(url::kHttpsScheme) ||
(...skipping 10 matching lines...) Expand all
85 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); 83 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
86 if (info) { 84 if (info) {
87 int process_id = info->GetChildID(); 85 int process_id = info->GetChildID();
88 // Never hide requests from guest processes. 86 // Never hide requests from guest processes.
89 if (extensions::WebViewRendererState::GetInstance()->IsGuest(process_id)) 87 if (extensions::WebViewRendererState::GetInstance()->IsGuest(process_id))
90 return false; 88 return false;
91 89
92 if (extension_info_map && ( 90 if (extension_info_map && (
93 extension_info_map->IsSigninProcess(process_id) || 91 extension_info_map->IsSigninProcess(process_id) ||
94 extension_info_map->process_map().Contains( 92 extension_info_map->process_map().Contains(
95 extension_misc::kWebStoreAppId, process_id))) { 93 extensions::ExtensionsAPIClient::Get()->WebStoreAppId(),
94 process_id))) {
96 return true; 95 return true;
97 } 96 }
98 } 97 }
99 98
100 const GURL& url = request->url(); 99 const GURL& url = request->url();
101 return IsSensitiveURL(url) || !HasWebRequestScheme(url); 100 return IsSensitiveURL(url) || !HasWebRequestScheme(url);
102 } 101 }
103 102
104 // static 103 // static
105 bool WebRequestPermissions::CanExtensionAccessURL( 104 bool WebRequestPermissions::CanExtensionAccessURL(
(...skipping 28 matching lines...) Expand all
134 } 133 }
135 break; 134 break;
136 case REQUIRE_ALL_URLS: 135 case REQUIRE_ALL_URLS:
137 if (!extension->permissions_data()->HasEffectiveAccessToAllHosts()) 136 if (!extension->permissions_data()->HasEffectiveAccessToAllHosts())
138 return false; 137 return false;
139 break; 138 break;
140 } 139 }
141 140
142 return true; 141 return true;
143 } 142 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698