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

Side by Side Diff: chrome/browser/net/chrome_extensions_network_delegate.cc

Issue 2432153003: Make sure the default CSP is used for <webview> with PlzNavigate. (Closed)
Patch Set: add comment Created 4 years, 2 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/net/chrome_extensions_network_delegate.h" 5 #include "chrome/browser/net/chrome_extensions_network_delegate.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 76
77 int process_id, render_frame_id; 77 int process_id, render_frame_id;
78 if (info->GetAssociatedRenderFrame(&process_id, &render_frame_id)) { 78 if (info->GetAssociatedRenderFrame(&process_id, &render_frame_id)) {
79 BrowserThread::PostTask( 79 BrowserThread::PostTask(
80 BrowserThread::UI, FROM_HERE, 80 BrowserThread::UI, FROM_HERE,
81 base::Bind(&NotifyEPMRequestStatus, status, profile_id, 81 base::Bind(&NotifyEPMRequestStatus, status, profile_id,
82 request->identifier(), process_id, render_frame_id)); 82 request->identifier(), process_id, render_frame_id));
83 } 83 }
84 } 84 }
85 85
86 extensions::ExtensionNavigationUIData* GetExtensionNavigationUIData(
87 net::URLRequest* request) {
88 const content::ResourceRequestInfo* info =
89 content::ResourceRequestInfo::ForRequest(request);
90 if (!info)
91 return nullptr;
92 ChromeNavigationUIData* navigation_data =
93 static_cast<ChromeNavigationUIData*>(info->GetNavigationUIData());
94 if (!navigation_data)
95 return nullptr;
96 return navigation_data->GetExtensionNavigationUIData();
97 }
98
99 class ChromeExtensionsNetworkDelegateImpl 86 class ChromeExtensionsNetworkDelegateImpl
100 : public ChromeExtensionsNetworkDelegate { 87 : public ChromeExtensionsNetworkDelegate {
101 public: 88 public:
102 explicit ChromeExtensionsNetworkDelegateImpl( 89 explicit ChromeExtensionsNetworkDelegateImpl(
103 extensions::EventRouterForwarder* event_router); 90 extensions::EventRouterForwarder* event_router);
104 ~ChromeExtensionsNetworkDelegateImpl() override; 91 ~ChromeExtensionsNetworkDelegateImpl() override;
105 92
106 private: 93 private:
107 // ChromeExtensionsNetworkDelegate implementation. 94 // ChromeExtensionsNetworkDelegate implementation.
108 void ForwardProxyErrors(net::URLRequest* request, int net_error) override; 95 void ForwardProxyErrors(net::URLRequest* request, int net_error) override;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 void ChromeExtensionsNetworkDelegateImpl::ForwardDoneRequestStatus( 158 void ChromeExtensionsNetworkDelegateImpl::ForwardDoneRequestStatus(
172 net::URLRequest* request) { 159 net::URLRequest* request) {
173 ForwardRequestStatus(REQUEST_DONE, request, profile_); 160 ForwardRequestStatus(REQUEST_DONE, request, profile_);
174 } 161 }
175 162
176 int ChromeExtensionsNetworkDelegateImpl::OnBeforeURLRequest( 163 int ChromeExtensionsNetworkDelegateImpl::OnBeforeURLRequest(
177 net::URLRequest* request, 164 net::URLRequest* request,
178 const net::CompletionCallback& callback, 165 const net::CompletionCallback& callback,
179 GURL* new_url) { 166 GURL* new_url) {
180 return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRequest( 167 return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRequest(
181 profile_, extension_info_map_.get(), 168 profile_, extension_info_map_.get(), request, callback, new_url);
182 GetExtensionNavigationUIData(request), request, callback, new_url);
183 } 169 }
184 170
185 int ChromeExtensionsNetworkDelegateImpl::OnBeforeStartTransaction( 171 int ChromeExtensionsNetworkDelegateImpl::OnBeforeStartTransaction(
186 net::URLRequest* request, 172 net::URLRequest* request,
187 const net::CompletionCallback& callback, 173 const net::CompletionCallback& callback,
188 net::HttpRequestHeaders* headers) { 174 net::HttpRequestHeaders* headers) {
189 return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeSendHeaders( 175 return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeSendHeaders(
190 profile_, extension_info_map_.get(), 176 profile_, extension_info_map_.get(), request, callback, headers);
191 GetExtensionNavigationUIData(request), request, callback, headers);
192 } 177 }
193 178
194 void ChromeExtensionsNetworkDelegateImpl::OnStartTransaction( 179 void ChromeExtensionsNetworkDelegateImpl::OnStartTransaction(
195 net::URLRequest* request, 180 net::URLRequest* request,
196 const net::HttpRequestHeaders& headers) { 181 const net::HttpRequestHeaders& headers) {
197 ExtensionWebRequestEventRouter::GetInstance()->OnSendHeaders( 182 ExtensionWebRequestEventRouter::GetInstance()->OnSendHeaders(
198 profile_, extension_info_map_.get(), 183 profile_, extension_info_map_.get(), request, headers);
199 GetExtensionNavigationUIData(request), request, headers);
200 } 184 }
201 185
202 int ChromeExtensionsNetworkDelegateImpl::OnHeadersReceived( 186 int ChromeExtensionsNetworkDelegateImpl::OnHeadersReceived(
203 net::URLRequest* request, 187 net::URLRequest* request,
204 const net::CompletionCallback& callback, 188 const net::CompletionCallback& callback,
205 const net::HttpResponseHeaders* original_response_headers, 189 const net::HttpResponseHeaders* original_response_headers,
206 scoped_refptr<net::HttpResponseHeaders>* override_response_headers, 190 scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
207 GURL* allowed_unsafe_redirect_url) { 191 GURL* allowed_unsafe_redirect_url) {
208 return ExtensionWebRequestEventRouter::GetInstance()->OnHeadersReceived( 192 return ExtensionWebRequestEventRouter::GetInstance()->OnHeadersReceived(
209 profile_, extension_info_map_.get(), 193 profile_, extension_info_map_.get(), request, callback,
210 GetExtensionNavigationUIData(request), request, callback,
211 original_response_headers, override_response_headers, 194 original_response_headers, override_response_headers,
212 allowed_unsafe_redirect_url); 195 allowed_unsafe_redirect_url);
213 } 196 }
214 197
215 void ChromeExtensionsNetworkDelegateImpl::OnBeforeRedirect( 198 void ChromeExtensionsNetworkDelegateImpl::OnBeforeRedirect(
216 net::URLRequest* request, 199 net::URLRequest* request,
217 const GURL& new_location) { 200 const GURL& new_location) {
218 ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRedirect( 201 ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRedirect(
219 profile_, extension_info_map_.get(), 202 profile_, extension_info_map_.get(), request, new_location);
220 GetExtensionNavigationUIData(request), request, new_location);
221 } 203 }
222 204
223 void ChromeExtensionsNetworkDelegateImpl::OnResponseStarted( 205 void ChromeExtensionsNetworkDelegateImpl::OnResponseStarted(
224 net::URLRequest* request, 206 net::URLRequest* request,
225 int net_error) { 207 int net_error) {
226 ExtensionWebRequestEventRouter::GetInstance()->OnResponseStarted( 208 ExtensionWebRequestEventRouter::GetInstance()->OnResponseStarted(
227 profile_, extension_info_map_.get(), 209 profile_, extension_info_map_.get(), request, net_error);
228 GetExtensionNavigationUIData(request), request, net_error);
229 ForwardProxyErrors(request, net_error); 210 ForwardProxyErrors(request, net_error);
230 } 211 }
231 212
232 void ChromeExtensionsNetworkDelegateImpl::OnCompleted(net::URLRequest* request, 213 void ChromeExtensionsNetworkDelegateImpl::OnCompleted(net::URLRequest* request,
233 bool started, 214 bool started,
234 int net_error) { 215 int net_error) {
235 DCHECK_NE(net::ERR_IO_PENDING, net_error); 216 DCHECK_NE(net::ERR_IO_PENDING, net_error);
236 217
237 if (net_error != net::OK) { 218 if (net_error != net::OK) {
238 ExtensionWebRequestEventRouter::GetInstance()->OnErrorOccurred( 219 ExtensionWebRequestEventRouter::GetInstance()->OnErrorOccurred(
239 profile_, extension_info_map_.get(), 220 profile_, extension_info_map_.get(), request, started, net_error);
240 GetExtensionNavigationUIData(request), request, started, net_error);
241 return; 221 return;
242 } 222 }
243 223
244 bool is_redirect = request->response_headers() && 224 bool is_redirect = request->response_headers() &&
245 net::HttpResponseHeaders::IsRedirectResponseCode( 225 net::HttpResponseHeaders::IsRedirectResponseCode(
246 request->response_headers()->response_code()); 226 request->response_headers()->response_code());
247 if (!is_redirect) { 227 if (!is_redirect) {
248 ExtensionWebRequestEventRouter::GetInstance()->OnCompleted( 228 ExtensionWebRequestEventRouter::GetInstance()->OnCompleted(
249 profile_, extension_info_map_.get(), 229 profile_, extension_info_map_.get(), request, net_error);
250 GetExtensionNavigationUIData(request), request, net_error);
251 } 230 }
252 } 231 }
253 232
254 void ChromeExtensionsNetworkDelegateImpl::OnURLRequestDestroyed( 233 void ChromeExtensionsNetworkDelegateImpl::OnURLRequestDestroyed(
255 net::URLRequest* request) { 234 net::URLRequest* request) {
256 ExtensionWebRequestEventRouter::GetInstance()->OnURLRequestDestroyed( 235 ExtensionWebRequestEventRouter::GetInstance()->OnURLRequestDestroyed(
257 profile_, request); 236 profile_, request);
258 } 237 }
259 238
260 void ChromeExtensionsNetworkDelegateImpl::OnPACScriptError( 239 void ChromeExtensionsNetworkDelegateImpl::OnPACScriptError(
261 int line_number, 240 int line_number,
262 const base::string16& error) { 241 const base::string16& error) {
263 extensions::ProxyEventRouter::GetInstance()->OnPACScriptError( 242 extensions::ProxyEventRouter::GetInstance()->OnPACScriptError(
264 event_router_.get(), profile_, line_number, error); 243 event_router_.get(), profile_, line_number, error);
265 } 244 }
266 245
267 net::NetworkDelegate::AuthRequiredResponse 246 net::NetworkDelegate::AuthRequiredResponse
268 ChromeExtensionsNetworkDelegateImpl::OnAuthRequired( 247 ChromeExtensionsNetworkDelegateImpl::OnAuthRequired(
269 net::URLRequest* request, 248 net::URLRequest* request,
270 const net::AuthChallengeInfo& auth_info, 249 const net::AuthChallengeInfo& auth_info,
271 const AuthCallback& callback, 250 const AuthCallback& callback,
272 net::AuthCredentials* credentials) { 251 net::AuthCredentials* credentials) {
273 return ExtensionWebRequestEventRouter::GetInstance()->OnAuthRequired( 252 return ExtensionWebRequestEventRouter::GetInstance()->OnAuthRequired(
274 profile_, extension_info_map_.get(), 253 profile_, extension_info_map_.get(), request, auth_info, callback,
275 GetExtensionNavigationUIData(request), request, auth_info, callback,
276 credentials); 254 credentials);
277 } 255 }
278 256
279 } // namespace 257 } // namespace
280 258
281 #endif // defined(ENABLE_EXTENSIONS) 259 #endif // defined(ENABLE_EXTENSIONS)
282 260
283 // static 261 // static
284 ChromeExtensionsNetworkDelegate* ChromeExtensionsNetworkDelegate::Create( 262 ChromeExtensionsNetworkDelegate* ChromeExtensionsNetworkDelegate::Create(
285 extensions::EventRouterForwarder* event_router) { 263 extensions::EventRouterForwarder* event_router) {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 } 343 }
366 344
367 net::NetworkDelegate::AuthRequiredResponse 345 net::NetworkDelegate::AuthRequiredResponse
368 ChromeExtensionsNetworkDelegate::OnAuthRequired( 346 ChromeExtensionsNetworkDelegate::OnAuthRequired(
369 net::URLRequest* request, 347 net::URLRequest* request,
370 const net::AuthChallengeInfo& auth_info, 348 const net::AuthChallengeInfo& auth_info,
371 const AuthCallback& callback, 349 const AuthCallback& callback,
372 net::AuthCredentials* credentials) { 350 net::AuthCredentials* credentials) {
373 return net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION; 351 return net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION;
374 } 352 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/chrome_extensions_browser_client.cc ('k') | extensions/browser/api/web_request/web_request_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698