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

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

Issue 63933003: Moved ExtensionInfoMap and ExtensionsQuotaService to extensions/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comment fix Created 7 years, 1 month 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 | Annotate | Revision Log
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/browser/extensions/extension_info_map.h"
10 #include "chrome/browser/extensions/extension_renderer_state.h" 9 #include "chrome/browser/extensions/extension_renderer_state.h"
11 #include "chrome/common/extensions/extension.h" 10 #include "chrome/common/extensions/extension.h"
12 #include "chrome/common/extensions/extension_constants.h" 11 #include "chrome/common/extensions/extension_constants.h"
13 #include "chrome/common/extensions/permissions/permissions_data.h" 12 #include "chrome/common/extensions/permissions/permissions_data.h"
14 #include "chrome/common/url_constants.h" 13 #include "chrome/common/url_constants.h"
15 #include "content/public/browser/resource_request_info.h" 14 #include "content/public/browser/resource_request_info.h"
15 #include "extensions/browser/info_map.h"
16 #include "extensions/common/constants.h" 16 #include "extensions/common/constants.h"
17 #include "net/url_request/url_request.h" 17 #include "net/url_request/url_request.h"
18 #include "url/gurl.h" 18 #include "url/gurl.h"
19 19
20 using content::ResourceRequestInfo; 20 using content::ResourceRequestInfo;
21 21
22 namespace { 22 namespace {
23 23
24 // Returns true if the URL is sensitive and requests to this URL must not be 24 // Returns true if the URL is sensitive and requests to this URL must not be
25 // modified/canceled by extensions, e.g. because it is targeted to the webstore 25 // modified/canceled by extensions, e.g. because it is targeted to the webstore
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 url.SchemeIs(chrome::kFtpScheme) || 72 url.SchemeIs(chrome::kFtpScheme) ||
73 url.SchemeIs(content::kHttpScheme) || 73 url.SchemeIs(content::kHttpScheme) ||
74 url.SchemeIs(content::kHttpsScheme) || 74 url.SchemeIs(content::kHttpsScheme) ||
75 url.SchemeIs(extensions::kExtensionScheme)); 75 url.SchemeIs(extensions::kExtensionScheme));
76 } 76 }
77 77
78 } // namespace 78 } // namespace
79 79
80 // static 80 // static
81 bool WebRequestPermissions::HideRequest( 81 bool WebRequestPermissions::HideRequest(
82 const ExtensionInfoMap* extension_info_map, 82 const extensions::InfoMap* extension_info_map,
83 const net::URLRequest* request) { 83 const net::URLRequest* request) {
84 // Hide requests from the Chrome WebStore App or signin process. 84 // Hide requests from the Chrome WebStore App or signin process.
85 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); 85 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
86 if (info) { 86 if (info) {
87 int process_id = info->GetChildID(); 87 int process_id = info->GetChildID();
88 int route_id = info->GetRouteID(); 88 int route_id = info->GetRouteID();
89 ExtensionRendererState::WebViewInfo webview_info; 89 ExtensionRendererState::WebViewInfo webview_info;
90 // Never hide requests from guest processes. 90 // Never hide requests from guest processes.
91 if (ExtensionRendererState::GetInstance()->GetWebViewInfo( 91 if (ExtensionRendererState::GetInstance()->GetWebViewInfo(
92 process_id, route_id, &webview_info)) { 92 process_id, route_id, &webview_info)) {
93 return false; 93 return false;
94 } 94 }
95 if (extension_info_map && ( 95 if (extension_info_map && (
96 extension_info_map->IsSigninProcess(process_id) || 96 extension_info_map->IsSigninProcess(process_id) ||
97 extension_info_map->process_map().Contains( 97 extension_info_map->process_map().Contains(
98 extension_misc::kWebStoreAppId, process_id))) { 98 extension_misc::kWebStoreAppId, process_id))) {
99 return true; 99 return true;
100 } 100 }
101 } 101 }
102 102
103 const GURL& url = request->url(); 103 const GURL& url = request->url();
104 return IsSensitiveURL(url) || !HasWebRequestScheme(url); 104 return IsSensitiveURL(url) || !HasWebRequestScheme(url);
105 } 105 }
106 106
107 // static 107 // static
108 bool WebRequestPermissions::CanExtensionAccessURL( 108 bool WebRequestPermissions::CanExtensionAccessURL(
109 const ExtensionInfoMap* extension_info_map, 109 const extensions::InfoMap* extension_info_map,
110 const std::string& extension_id, 110 const std::string& extension_id,
111 const GURL& url, 111 const GURL& url,
112 bool crosses_incognito, 112 bool crosses_incognito,
113 HostPermissionsCheck host_permissions_check) { 113 HostPermissionsCheck host_permissions_check) {
114 // extension_info_map can be NULL in testing. 114 // extension_info_map can be NULL in testing.
115 if (!extension_info_map) 115 if (!extension_info_map)
116 return true; 116 return true;
117 117
118 const extensions::Extension* extension = 118 const extensions::Extension* extension =
119 extension_info_map->extensions().GetByID(extension_id); 119 extension_info_map->extensions().GetByID(extension_id);
(...skipping 17 matching lines...) Expand all
137 } 137 }
138 break; 138 break;
139 case REQUIRE_ALL_URLS: 139 case REQUIRE_ALL_URLS:
140 if (!extensions::PermissionsData::HasEffectiveAccessToAllHosts(extension)) 140 if (!extensions::PermissionsData::HasEffectiveAccessToAllHosts(extension))
141 return false; 141 return false;
142 break; 142 break;
143 } 143 }
144 144
145 return true; 145 return true;
146 } 146 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698