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

Side by Side Diff: content/public/child/request_peer.h

Issue 2540023003: Dispatch encoded_data_length separately in content/child (Closed)
Patch Set: rebase Created 4 years 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 #ifndef CONTENT_PUBLIC_CHILD_REQUEST_PEER_H_ 5 #ifndef CONTENT_PUBLIC_CHILD_REQUEST_PEER_H_
6 #define CONTENT_PUBLIC_CHILD_REQUEST_PEER_H_ 6 #define CONTENT_PUBLIC_CHILD_REQUEST_PEER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 29 matching lines...) Expand all
40 // In order to work with Chrome resource loading IPC, it is desirable to 40 // In order to work with Chrome resource loading IPC, it is desirable to
41 // reclaim data in FIFO order in a RequestPeer in terms of performance. 41 // reclaim data in FIFO order in a RequestPeer in terms of performance.
42 // |payload|, |length|, |encoded_data_length| and |encoded_body_length| 42 // |payload|, |length|, |encoded_data_length| and |encoded_body_length|
43 // functions are thread-safe, but the data object itself must be destroyed on 43 // functions are thread-safe, but the data object itself must be destroyed on
44 // the original thread. 44 // the original thread.
45 class CONTENT_EXPORT ReceivedData { 45 class CONTENT_EXPORT ReceivedData {
46 public: 46 public:
47 virtual ~ReceivedData() {} 47 virtual ~ReceivedData() {}
48 virtual const char* payload() const = 0; 48 virtual const char* payload() const = 0;
49 virtual int length() const = 0; 49 virtual int length() const = 0;
50 // The encoded_data_length is the length of the encoded data transferred
51 // over the network, including headers. It is only set for responses
52 // originating from the network (ie. not the cache). It will usually be
53 // different from length(), and may be smaller if the content was
54 // compressed. -1 means this value is unavailable.
55 virtual int encoded_data_length() const = 0;
56 }; 50 };
57 51
58 // A ThreadSafeReceivedData can be deleted on ANY thread. 52 // A ThreadSafeReceivedData can be deleted on ANY thread.
59 class CONTENT_EXPORT ThreadSafeReceivedData : public ReceivedData {}; 53 class CONTENT_EXPORT ThreadSafeReceivedData : public ReceivedData {};
60 54
61 // Called as upload progress is made. 55 // Called as upload progress is made.
62 // note: only for requests with upload progress enabled. 56 // note: only for requests with upload progress enabled.
63 virtual void OnUploadProgress(uint64_t position, uint64_t size) = 0; 57 virtual void OnUploadProgress(uint64_t position, uint64_t size) = 0;
64 58
65 // Called when a redirect occurs. The implementation may return false to 59 // Called when a redirect occurs. The implementation may return false to
(...skipping 13 matching lines...) Expand all
79 // that case, OnReceivedData will not be called. 73 // that case, OnReceivedData will not be called.
80 // The encoded_data_length is the length of the encoded data transferred 74 // The encoded_data_length is the length of the encoded data transferred
81 // over the network, which could be different from data length (e.g. for 75 // over the network, which could be different from data length (e.g. for
82 // gzipped content). 76 // gzipped content).
83 virtual void OnDownloadedData(int len, int encoded_data_length) = 0; 77 virtual void OnDownloadedData(int len, int encoded_data_length) = 0;
84 78
85 // Called when a chunk of response data is available. This method may 79 // Called when a chunk of response data is available. This method may
86 // be called multiple times or not at all if an error occurs. 80 // be called multiple times or not at all if an error occurs.
87 virtual void OnReceivedData(std::unique_ptr<ReceivedData> data) = 0; 81 virtual void OnReceivedData(std::unique_ptr<ReceivedData> data) = 0;
88 82
83 // Called when the transfer size is updated. This method may be called
84 // multiple times or not at all. The transfer size is the length of the
85 // response (including both headers and the body) over the network.
86 // |transfer_size_diff| is the difference from the value previously reported
87 // one (including the one in OnReceivedResponse). It must be positive.
88 virtual void OnTransferSizeUpdated(int transfer_size_diff) = 0;
kinuko 2016/12/07 04:06:26 Should transfer_size_diff be unsigned if it must a
yhirano 2016/12/07 12:06:58 Google c++ style guide says " You should not use
89
89 // Called when metadata generated by the renderer is retrieved from the 90 // Called when metadata generated by the renderer is retrieved from the
90 // cache. This method may be called zero or one times. 91 // cache. This method may be called zero or one times.
91 virtual void OnReceivedCachedMetadata(const char* data, int len) {} 92 virtual void OnReceivedCachedMetadata(const char* data, int len) {}
92 93
93 // Called when the response is complete. This method signals completion of 94 // Called when the response is complete. This method signals completion of
94 // the resource load. 95 // the resource load.
95 virtual void OnCompletedRequest(int error_code, 96 virtual void OnCompletedRequest(int error_code,
96 bool was_ignored_by_handler, 97 bool was_ignored_by_handler,
97 bool stale_copy_in_cache, 98 bool stale_copy_in_cache,
98 const base::TimeTicks& completion_time, 99 const base::TimeTicks& completion_time,
99 int64_t total_transfer_size, 100 int64_t total_transfer_size,
100 int64_t encoded_body_size) = 0; 101 int64_t encoded_body_size) = 0;
101 102
102 virtual ~RequestPeer() {} 103 virtual ~RequestPeer() {}
103 }; 104 };
104 105
105 } // namespace content 106 } // namespace content
106 107
107 #endif // CONTENT_PUBLIC_CHILD_REQUEST_PEER_H_ 108 #endif // CONTENT_PUBLIC_CHILD_REQUEST_PEER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698