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

Side by Side Diff: net/url_request/url_request_job.h

Issue 398903002: Plumb redirect info out of net, through content, and into child processes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: darin comments Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « net/url_request/url_request.cc ('k') | net/url_request/url_request_job.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #ifndef NET_URL_REQUEST_URL_REQUEST_JOB_H_ 5 #ifndef NET_URL_REQUEST_URL_REQUEST_JOB_H_
6 #define NET_URL_REQUEST_URL_REQUEST_JOB_H_ 6 #define NET_URL_REQUEST_URL_REQUEST_JOB_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/memory/ref_counted.h" 11 #include "base/memory/ref_counted.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/memory/weak_ptr.h" 13 #include "base/memory/weak_ptr.h"
14 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
15 #include "base/power_monitor/power_observer.h" 15 #include "base/power_monitor/power_observer.h"
16 #include "net/base/host_port_pair.h" 16 #include "net/base/host_port_pair.h"
17 #include "net/base/load_states.h" 17 #include "net/base/load_states.h"
18 #include "net/base/net_export.h" 18 #include "net/base/net_export.h"
19 #include "net/base/request_priority.h" 19 #include "net/base/request_priority.h"
20 #include "net/base/upload_progress.h" 20 #include "net/base/upload_progress.h"
21 #include "net/cookies/canonical_cookie.h" 21 #include "net/cookies/canonical_cookie.h"
22 #include "net/url_request/redirect_info.h"
22 #include "url/gurl.h" 23 #include "url/gurl.h"
23 24
24 namespace net { 25 namespace net {
25 26
26 class AuthChallengeInfo; 27 class AuthChallengeInfo;
27 class AuthCredentials; 28 class AuthCredentials;
28 class CookieOptions; 29 class CookieOptions;
29 class CookieStore; 30 class CookieStore;
30 class Filter; 31 class Filter;
31 class HttpRequestHeaders; 32 class HttpRequestHeaders;
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 // an error occurred (or we are waiting for IO to complete). 358 // an error occurred (or we are waiting for IO to complete).
358 bool ReadRawDataForFilter(int *bytes_read); 359 bool ReadRawDataForFilter(int *bytes_read);
359 360
360 // Invokes ReadRawData and records bytes read if the read completes 361 // Invokes ReadRawData and records bytes read if the read completes
361 // synchronously. 362 // synchronously.
362 bool ReadRawDataHelper(IOBuffer* buf, int buf_size, int* bytes_read); 363 bool ReadRawDataHelper(IOBuffer* buf, int buf_size, int* bytes_read);
363 364
364 // Called in response to a redirect that was not canceled to follow the 365 // Called in response to a redirect that was not canceled to follow the
365 // redirect. The current job will be replaced with a new job loading the 366 // redirect. The current job will be replaced with a new job loading the
366 // given redirect destination. 367 // given redirect destination.
367 void FollowRedirect(const GURL& location, int http_status_code); 368 void FollowRedirect(const RedirectInfo& redirect_info);
368 369
369 // Called after every raw read. If |bytes_read| is > 0, this indicates 370 // Called after every raw read. If |bytes_read| is > 0, this indicates
370 // a successful read of |bytes_read| unfiltered bytes. If |bytes_read| 371 // a successful read of |bytes_read| unfiltered bytes. If |bytes_read|
371 // is 0, this indicates that there is no additional data to read. If 372 // is 0, this indicates that there is no additional data to read. If
372 // |bytes_read| is < 0, an error occurred and no bytes were read. 373 // |bytes_read| is < 0, an error occurred and no bytes were read.
373 void OnRawReadComplete(int bytes_read); 374 void OnRawReadComplete(int bytes_read);
374 375
375 // Updates the profiling info and notifies observers that an additional 376 // Updates the profiling info and notifies observers that an additional
376 // |bytes_read| unfiltered bytes have been read for this job. 377 // |bytes_read| unfiltered bytes have been read for this job.
377 void RecordBytesRead(int bytes_read); 378 void RecordBytesRead(int bytes_read);
378 379
379 // Called to query whether there is data available in the filter to be read 380 // Called to query whether there is data available in the filter to be read
380 // out. 381 // out.
381 bool FilterHasData(); 382 bool FilterHasData();
382 383
383 // Subclasses may implement this method to record packet arrival times. 384 // Subclasses may implement this method to record packet arrival times.
384 // The default implementation does nothing. 385 // The default implementation does nothing.
385 virtual void UpdatePacketReadTimes(); 386 virtual void UpdatePacketReadTimes();
386 387
388 // Computes a new RedirectInfo based on receiving a redirect response of
389 // |location| and |http_status_code|.
390 RedirectInfo ComputeRedirectInfo(const GURL& location, int http_status_code);
391
387 // Indicates that the job is done producing data, either it has completed 392 // Indicates that the job is done producing data, either it has completed
388 // all the data or an error has been encountered. Set exclusively by 393 // all the data or an error has been encountered. Set exclusively by
389 // NotifyDone so that it is kept in sync with the request. 394 // NotifyDone so that it is kept in sync with the request.
390 bool done_; 395 bool done_;
391 396
392 int prefilter_bytes_read_; 397 int prefilter_bytes_read_;
393 int postfilter_bytes_read_; 398 int postfilter_bytes_read_;
394 int64 filter_input_byte_count_; 399 int64 filter_input_byte_count_;
395 400
396 // The data stream filter which is enabled on demand. 401 // The data stream filter which is enabled on demand.
(...skipping 15 matching lines...) Expand all
412 scoped_refptr<IOBuffer> raw_read_buffer_; 417 scoped_refptr<IOBuffer> raw_read_buffer_;
413 418
414 // Used by HandleResponseIfNecessary to track whether we've sent the 419 // Used by HandleResponseIfNecessary to track whether we've sent the
415 // OnResponseStarted callback and potentially redirect callbacks as well. 420 // OnResponseStarted callback and potentially redirect callbacks as well.
416 bool has_handled_response_; 421 bool has_handled_response_;
417 422
418 // Expected content size 423 // Expected content size
419 int64 expected_content_size_; 424 int64 expected_content_size_;
420 425
421 // Set when a redirect is deferred. 426 // Set when a redirect is deferred.
422 GURL deferred_redirect_url_; 427 RedirectInfo deferred_redirect_info_;
423 int deferred_redirect_status_code_;
424 428
425 // The network delegate to use with this request, if any. 429 // The network delegate to use with this request, if any.
426 NetworkDelegate* network_delegate_; 430 NetworkDelegate* network_delegate_;
427 431
428 base::WeakPtrFactory<URLRequestJob> weak_factory_; 432 base::WeakPtrFactory<URLRequestJob> weak_factory_;
429 433
430 DISALLOW_COPY_AND_ASSIGN(URLRequestJob); 434 DISALLOW_COPY_AND_ASSIGN(URLRequestJob);
431 }; 435 };
432 436
433 } // namespace net 437 } // namespace net
434 438
435 #endif // NET_URL_REQUEST_URL_REQUEST_JOB_H_ 439 #endif // NET_URL_REQUEST_URL_REQUEST_JOB_H_
OLDNEW
« no previous file with comments | « net/url_request/url_request.cc ('k') | net/url_request/url_request_job.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698