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

Side by Side Diff: chrome/renderer/security_filter_peer.h

Issue 1103813002: Make WebURLLoader capable of retaining received buffers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 CHROME_RENDERER_SECURITY_FILTER_PEER_H_ 5 #ifndef CHROME_RENDERER_SECURITY_FILTER_PEER_H_
6 #define CHROME_RENDERER_SECURITY_FILTER_PEER_H_ 6 #define CHROME_RENDERER_SECURITY_FILTER_PEER_H_
7 7
8 #include <string>
9
8 #include "content/public/child/request_peer.h" 10 #include "content/public/child/request_peer.h"
9 #include "content/public/common/resource_response_info.h" 11 #include "content/public/common/resource_response_info.h"
10 #include "content/public/common/resource_type.h" 12 #include "content/public/common/resource_type.h"
11 13
12 // The SecurityFilterPeer is a proxy to a 14 // The SecurityFilterPeer is a proxy to a
13 // content::RequestPeer instance. It is used to pre-process 15 // content::RequestPeer instance. It is used to pre-process
14 // unsafe resources (such as mixed-content resource). 16 // unsafe resources (such as mixed-content resource).
15 // Call the factory method CreateSecurityFilterPeer() to obtain an instance of 17 // Call the factory method CreateSecurityFilterPeer() to obtain an instance of
16 // SecurityFilterPeer based on the original Peer. 18 // SecurityFilterPeer based on the original Peer.
17 // NOTE: subclasses should ensure they delete themselves at the end of the 19 // NOTE: subclasses should ensure they delete themselves at the end of the
(...skipping 10 matching lines...) Expand all
28 static SecurityFilterPeer* CreateSecurityFilterPeerForFrame( 30 static SecurityFilterPeer* CreateSecurityFilterPeerForFrame(
29 content::RequestPeer* peer, 31 content::RequestPeer* peer,
30 int os_error); 32 int os_error);
31 33
32 // content::RequestPeer methods. 34 // content::RequestPeer methods.
33 void OnUploadProgress(uint64 position, uint64 size) override; 35 void OnUploadProgress(uint64 position, uint64 size) override;
34 bool OnReceivedRedirect(const net::RedirectInfo& redirect_info, 36 bool OnReceivedRedirect(const net::RedirectInfo& redirect_info,
35 const content::ResourceResponseInfo& info) override; 37 const content::ResourceResponseInfo& info) override;
36 void OnReceivedResponse(const content::ResourceResponseInfo& info) override; 38 void OnReceivedResponse(const content::ResourceResponseInfo& info) override;
37 void OnDownloadedData(int len, int encoded_data_length) override {} 39 void OnDownloadedData(int len, int encoded_data_length) override {}
38 void OnReceivedData(const char* data, 40 void OnReceivedData(scoped_ptr<ReceivedData> data) override;
39 int data_length,
40 int encoded_data_length) override;
41 void OnCompletedRequest(int error_code, 41 void OnCompletedRequest(int error_code,
42 bool was_ignored_by_handler, 42 bool was_ignored_by_handler,
43 bool stale_copy_in_cache, 43 bool stale_copy_in_cache,
44 const std::string& security_info, 44 const std::string& security_info,
45 const base::TimeTicks& completion_time, 45 const base::TimeTicks& completion_time,
46 int64 total_transfer_size) override; 46 int64 total_transfer_size) override;
47 47
48 protected: 48 protected:
49 explicit SecurityFilterPeer(content::RequestPeer* peer); 49 explicit SecurityFilterPeer(content::RequestPeer* peer);
50 50
51 content::RequestPeer* original_peer_; 51 content::RequestPeer* original_peer_;
52 52
53 private: 53 private:
54 DISALLOW_COPY_AND_ASSIGN(SecurityFilterPeer); 54 DISALLOW_COPY_AND_ASSIGN(SecurityFilterPeer);
55 }; 55 };
56 56
57 // The BufferedPeer reads all the data of the request into an internal buffer. 57 // The BufferedPeer reads all the data of the request into an internal buffer.
58 // Subclasses should implement DataReady() to process the data as necessary. 58 // Subclasses should implement DataReady() to process the data as necessary.
59 class BufferedPeer : public SecurityFilterPeer { 59 class BufferedPeer : public SecurityFilterPeer {
60 public: 60 public:
61 BufferedPeer(content::RequestPeer* peer, const std::string& mime_type); 61 BufferedPeer(content::RequestPeer* peer, const std::string& mime_type);
62 ~BufferedPeer() override; 62 ~BufferedPeer() override;
63 63
64 // content::RequestPeer Implementation. 64 // content::RequestPeer Implementation.
65 void OnReceivedResponse(const content::ResourceResponseInfo& info) override; 65 void OnReceivedResponse(const content::ResourceResponseInfo& info) override;
66 void OnReceivedData(const char* data, 66 void OnReceivedData(scoped_ptr<ReceivedData> data) override;
67 int data_length,
68 int encoded_data_length) override;
69 void OnCompletedRequest(int error_code, 67 void OnCompletedRequest(int error_code,
70 bool was_ignored_by_handler, 68 bool was_ignored_by_handler,
71 bool stale_copy_in_cache, 69 bool stale_copy_in_cache,
72 const std::string& security_info, 70 const std::string& security_info,
73 const base::TimeTicks& completion_time, 71 const base::TimeTicks& completion_time,
74 int64 total_transfer_size) override; 72 int64 total_transfer_size) override;
75 73
76 protected: 74 protected:
77 // Invoked when the entire request has been processed before the data is sent 75 // Invoked when the entire request has been processed before the data is sent
78 // to the original peer, giving an opportunity to subclasses to process the 76 // to the original peer, giving an opportunity to subclasses to process the
(...skipping 18 matching lines...) Expand all
97 // ignored. 95 // ignored.
98 class ReplaceContentPeer : public SecurityFilterPeer { 96 class ReplaceContentPeer : public SecurityFilterPeer {
99 public: 97 public:
100 ReplaceContentPeer(content::RequestPeer* peer, 98 ReplaceContentPeer(content::RequestPeer* peer,
101 const std::string& mime_type, 99 const std::string& mime_type,
102 const std::string& data); 100 const std::string& data);
103 ~ReplaceContentPeer() override; 101 ~ReplaceContentPeer() override;
104 102
105 // content::RequestPeer Implementation. 103 // content::RequestPeer Implementation.
106 void OnReceivedResponse(const content::ResourceResponseInfo& info) override; 104 void OnReceivedResponse(const content::ResourceResponseInfo& info) override;
107 void OnReceivedData(const char* data, 105 void OnReceivedData(scoped_ptr<ReceivedData> data) override;
108 int data_length,
109 int encoded_data_length) override;
110 void OnCompletedRequest(int error_code, 106 void OnCompletedRequest(int error_code,
111 bool was_ignored_by_handler, 107 bool was_ignored_by_handler,
112 bool stale_copy_in_cache, 108 bool stale_copy_in_cache,
113 const std::string& security_info, 109 const std::string& security_info,
114 const base::TimeTicks& completion_time, 110 const base::TimeTicks& completion_time,
115 int64 total_transfer_size) override; 111 int64 total_transfer_size) override;
116 112
117 private: 113 private:
118 content::ResourceResponseInfo response_info_; 114 content::ResourceResponseInfo response_info_;
119 std::string mime_type_; 115 std::string mime_type_;
120 std::string data_; 116 std::string data_;
121 117
122 DISALLOW_COPY_AND_ASSIGN(ReplaceContentPeer); 118 DISALLOW_COPY_AND_ASSIGN(ReplaceContentPeer);
123 }; 119 };
124 120
125 #endif // CHROME_RENDERER_SECURITY_FILTER_PEER_H_ 121 #endif // CHROME_RENDERER_SECURITY_FILTER_PEER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698