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

Side by Side Diff: third_party/WebKit/Source/core/loader/PingLoader.cpp

Issue 2230173002: Change WebURLLoaderClient::willFollowRedirect() API to return bool (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase 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 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 StoredCredentials, 197 StoredCredentials,
198 bool); 198 bool);
199 ~PingLoaderImpl() override; 199 ~PingLoaderImpl() override;
200 200
201 DECLARE_VIRTUAL_TRACE(); 201 DECLARE_VIRTUAL_TRACE();
202 202
203 private: 203 private:
204 void dispose(); 204 void dispose();
205 205
206 // WebURLLoaderClient 206 // WebURLLoaderClient
207 void willFollowRedirect(WebURLLoader*, 207 bool willFollowRedirect(WebURLLoader*,
208 WebURLRequest&, 208 WebURLRequest&,
209 const WebURLResponse&) override; 209 const WebURLResponse&) override;
210 void didReceiveResponse(WebURLLoader*, const WebURLResponse&) final; 210 void didReceiveResponse(WebURLLoader*, const WebURLResponse&) final;
211 void didReceiveData(WebURLLoader*, const char*, int, int, int) final; 211 void didReceiveData(WebURLLoader*, const char*, int, int, int) final;
212 void didFinishLoading(WebURLLoader*, double, int64_t) final; 212 void didFinishLoading(WebURLLoader*, double, int64_t) final;
213 void didFail(WebURLLoader*, const WebURLError&) final; 213 void didFail(WebURLLoader*, const WebURLError&) final;
214 214
215 void timeout(TimerBase*); 215 void timeout(TimerBase*);
216 216
217 void didFailLoading(LocalFrame*); 217 void didFailLoading(LocalFrame*);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 281
282 void PingLoaderImpl::dispose() { 282 void PingLoaderImpl::dispose() {
283 if (m_loader) { 283 if (m_loader) {
284 m_loader->cancel(); 284 m_loader->cancel();
285 m_loader = nullptr; 285 m_loader = nullptr;
286 } 286 }
287 m_timeout.stop(); 287 m_timeout.stop();
288 m_keepAlive.clear(); 288 m_keepAlive.clear();
289 } 289 }
290 290
291 void PingLoaderImpl::willFollowRedirect( 291 bool PingLoaderImpl::willFollowRedirect(
292 WebURLLoader*, 292 WebURLLoader*,
293 WebURLRequest& passedNewRequest, 293 WebURLRequest& passedNewRequest,
294 const WebURLResponse& passedRedirectResponse) { 294 const WebURLResponse& passedRedirectResponse) {
295 if (!m_isBeacon) 295 if (!m_isBeacon)
296 return; 296 return true;
297 297
298 // TODO(tyoshino): Check if setAllowStoredCredentials() should be called also 298 // TODO(tyoshino): Check if setAllowStoredCredentials() should be called also
299 // for non beacon cases. 299 // for non beacon cases.
300 passedNewRequest.setAllowStoredCredentials(true); 300 passedNewRequest.setAllowStoredCredentials(true);
301 if (m_corsMode == NotCORSEnabled) 301 if (m_corsMode == NotCORSEnabled)
302 return; 302 return true;
303 303
304 ResourceRequest& newRequest(passedNewRequest.toMutableResourceRequest()); 304 ResourceRequest& newRequest(passedNewRequest.toMutableResourceRequest());
305 const ResourceResponse& redirectResponse( 305 const ResourceResponse& redirectResponse(
306 passedRedirectResponse.toResourceResponse()); 306 passedRedirectResponse.toResourceResponse());
307 307
308 DCHECK(!newRequest.isNull()); 308 DCHECK(!newRequest.isNull());
309 DCHECK(!redirectResponse.isNull()); 309 DCHECK(!redirectResponse.isNull());
310 310
311 String errorDescription; 311 String errorDescription;
312 ResourceLoaderOptions options; 312 ResourceLoaderOptions options;
313 // TODO(tyoshino): Save updated data in options.securityOrigin and pass it 313 // TODO(tyoshino): Save updated data in options.securityOrigin and pass it
314 // on the next time. 314 // on the next time.
315 if (!CrossOriginAccessControl::handleRedirect( 315 if (!CrossOriginAccessControl::handleRedirect(
316 m_origin, newRequest, redirectResponse, AllowStoredCredentials, 316 m_origin, newRequest, redirectResponse, AllowStoredCredentials,
317 options, errorDescription)) { 317 options, errorDescription)) {
318 if (LocalFrame* localFrame = frame()) { 318 if (LocalFrame* localFrame = frame()) {
319 if (localFrame->document()) 319 if (localFrame->document())
320 localFrame->document()->addConsoleMessage(ConsoleMessage::create( 320 localFrame->document()->addConsoleMessage(ConsoleMessage::create(
321 JSMessageSource, ErrorMessageLevel, errorDescription)); 321 JSMessageSource, ErrorMessageLevel, errorDescription));
322 } 322 }
323 // Cancel the load and self destruct. 323 // Cancel the load and self destruct.
324 dispose(); 324 dispose();
325 // Signal WebURLLoader that the redirect musn't be followed. 325
326 passedNewRequest = WebURLRequest(); 326 return false;
327 return;
328 } 327 }
329 // FIXME: http://crbug.com/427429 is needed to correctly propagate updates of 328 // FIXME: http://crbug.com/427429 is needed to correctly propagate updates of
330 // Origin: following this successful redirect. 329 // Origin: following this successful redirect.
330
331 return true;
331 } 332 }
332 333
333 void PingLoaderImpl::didReceiveResponse(WebURLLoader*, 334 void PingLoaderImpl::didReceiveResponse(WebURLLoader*,
334 const WebURLResponse& response) { 335 const WebURLResponse& response) {
335 if (LocalFrame* frame = this->frame()) { 336 if (LocalFrame* frame = this->frame()) {
336 TRACE_EVENT_INSTANT1( 337 TRACE_EVENT_INSTANT1(
337 "devtools.timeline", "ResourceFinish", TRACE_EVENT_SCOPE_THREAD, "data", 338 "devtools.timeline", "ResourceFinish", TRACE_EVENT_SCOPE_THREAD, "data",
338 InspectorResourceFinishEvent::data(m_identifier, 0, true)); 339 InspectorResourceFinishEvent::data(m_identifier, 0, true));
339 const ResourceResponse& resourceResponse = response.toResourceResponse(); 340 const ResourceResponse& resourceResponse = response.toResourceResponse();
340 InspectorInstrumentation::didReceiveResourceResponse(frame, m_identifier, 0, 341 InspectorInstrumentation::didReceiveResourceResponse(frame, m_identifier, 0,
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 bool PingLoader::sendBeacon(LocalFrame* frame, 551 bool PingLoader::sendBeacon(LocalFrame* frame,
551 int allowance, 552 int allowance,
552 const KURL& beaconURL, 553 const KURL& beaconURL,
553 Blob* data, 554 Blob* data,
554 int& payloadLength) { 555 int& payloadLength) {
555 BeaconBlob beacon(data); 556 BeaconBlob beacon(data);
556 return sendBeaconCommon(frame, allowance, beaconURL, beacon, payloadLength); 557 return sendBeaconCommon(frame, allowance, beaconURL, beacon, payloadLength);
557 } 558 }
558 559
559 } // namespace blink 560 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698