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

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

Issue 267973002: Revert of Remove webkit's ResourceLoaderBridge interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | Annotate | Revision Log
« no previous file with comments | « chrome/renderer/security_filter_peer.h ('k') | content/child/blink_platform_impl.h » ('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 #include "chrome/renderer/security_filter_peer.h" 5 #include "chrome/renderer/security_filter_peer.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "grit/generated_resources.h" 9 #include "grit/generated_resources.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
11 #include "net/http/http_response_headers.h" 11 #include "net/http/http_response_headers.h"
12 #include "ui/base/l10n/l10n_util.h" 12 #include "ui/base/l10n/l10n_util.h"
13 13
14 SecurityFilterPeer::SecurityFilterPeer(content::RequestPeer* peer) 14 SecurityFilterPeer::SecurityFilterPeer(
15 : original_peer_(peer) {} 15 webkit_glue::ResourceLoaderBridge* resource_loader_bridge,
16 content::RequestPeer* peer)
17 : original_peer_(peer),
18 resource_loader_bridge_(resource_loader_bridge) {
19 }
16 20
17 SecurityFilterPeer::~SecurityFilterPeer() { 21 SecurityFilterPeer::~SecurityFilterPeer() {
18 } 22 }
19 23
20 // static 24 // static
21 SecurityFilterPeer* 25 SecurityFilterPeer*
22 SecurityFilterPeer::CreateSecurityFilterPeerForDeniedRequest( 26 SecurityFilterPeer::CreateSecurityFilterPeerForDeniedRequest(
23 ResourceType::Type resource_type, 27 ResourceType::Type resource_type,
24 content::RequestPeer* peer, 28 content::RequestPeer* peer,
25 int os_error) { 29 int os_error) {
26 // Create a filter for SSL and CERT errors. 30 // Create a filter for SSL and CERT errors.
27 switch (os_error) { 31 switch (os_error) {
28 case net::ERR_SSL_PROTOCOL_ERROR: 32 case net::ERR_SSL_PROTOCOL_ERROR:
29 case net::ERR_CERT_COMMON_NAME_INVALID: 33 case net::ERR_CERT_COMMON_NAME_INVALID:
30 case net::ERR_CERT_DATE_INVALID: 34 case net::ERR_CERT_DATE_INVALID:
31 case net::ERR_CERT_AUTHORITY_INVALID: 35 case net::ERR_CERT_AUTHORITY_INVALID:
32 case net::ERR_CERT_CONTAINS_ERRORS: 36 case net::ERR_CERT_CONTAINS_ERRORS:
33 case net::ERR_CERT_NO_REVOCATION_MECHANISM: 37 case net::ERR_CERT_NO_REVOCATION_MECHANISM:
34 case net::ERR_CERT_UNABLE_TO_CHECK_REVOCATION: 38 case net::ERR_CERT_UNABLE_TO_CHECK_REVOCATION:
35 case net::ERR_CERT_REVOKED: 39 case net::ERR_CERT_REVOKED:
36 case net::ERR_CERT_INVALID: 40 case net::ERR_CERT_INVALID:
37 case net::ERR_CERT_WEAK_SIGNATURE_ALGORITHM: 41 case net::ERR_CERT_WEAK_SIGNATURE_ALGORITHM:
38 case net::ERR_CERT_WEAK_KEY: 42 case net::ERR_CERT_WEAK_KEY:
39 case net::ERR_CERT_NAME_CONSTRAINT_VIOLATION: 43 case net::ERR_CERT_NAME_CONSTRAINT_VIOLATION:
40 case net::ERR_INSECURE_RESPONSE: 44 case net::ERR_INSECURE_RESPONSE:
41 case net::ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN: 45 case net::ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN:
42 if (ResourceType::IsFrame(resource_type)) 46 if (ResourceType::IsFrame(resource_type))
43 return CreateSecurityFilterPeerForFrame(peer, os_error); 47 return CreateSecurityFilterPeerForFrame(peer, os_error);
44 // Any other content is entirely filtered-out. 48 // Any other content is entirely filtered-out.
45 return new ReplaceContentPeer(peer, std::string(), std::string()); 49 return new ReplaceContentPeer(NULL, peer, std::string(), std::string());
46 default: 50 default:
47 // For other errors, we use our normal error handling. 51 // For other errors, we use our normal error handling.
48 return NULL; 52 return NULL;
49 } 53 }
50 } 54 }
51 55
52 // static 56 // static
53 SecurityFilterPeer* SecurityFilterPeer::CreateSecurityFilterPeerForFrame( 57 SecurityFilterPeer* SecurityFilterPeer::CreateSecurityFilterPeerForFrame(
54 content::RequestPeer* peer, 58 content::RequestPeer* peer,
55 int os_error) { 59 int os_error) {
56 // TODO(jcampan): use a different message when getting a phishing/malware 60 // TODO(jcampan): use a different message when getting a phishing/malware
57 // error. 61 // error.
58 std::string html = base::StringPrintf( 62 std::string html = base::StringPrintf(
59 "<html><meta charset='UTF-8'>" 63 "<html><meta charset='UTF-8'>"
60 "<body style='background-color:#990000;color:white;'>" 64 "<body style='background-color:#990000;color:white;'>"
61 "%s</body></html>", 65 "%s</body></html>",
62 l10n_util::GetStringUTF8(IDS_UNSAFE_FRAME_MESSAGE).c_str()); 66 l10n_util::GetStringUTF8(IDS_UNSAFE_FRAME_MESSAGE).c_str());
63 return new ReplaceContentPeer(peer, "text/html", html); 67 return new ReplaceContentPeer(NULL, peer, "text/html", html);
64 } 68 }
65 69
66 void SecurityFilterPeer::OnUploadProgress(uint64 position, uint64 size) { 70 void SecurityFilterPeer::OnUploadProgress(uint64 position, uint64 size) {
67 original_peer_->OnUploadProgress(position, size); 71 original_peer_->OnUploadProgress(position, size);
68 } 72 }
69 73
70 bool SecurityFilterPeer::OnReceivedRedirect( 74 bool SecurityFilterPeer::OnReceivedRedirect(
71 const GURL& new_url, 75 const GURL& new_url,
72 const webkit_glue::ResourceResponseInfo& info, 76 const webkit_glue::ResourceResponseInfo& info,
73 bool* has_new_first_party_for_cookies, 77 bool* has_new_first_party_for_cookies,
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 } 126 }
123 raw_headers.push_back('\0'); 127 raw_headers.push_back('\0');
124 net::HttpResponseHeaders* new_headers = 128 net::HttpResponseHeaders* new_headers =
125 new net::HttpResponseHeaders(raw_headers); 129 new net::HttpResponseHeaders(raw_headers);
126 info_out->headers = new_headers; 130 info_out->headers = new_headers;
127 } 131 }
128 132
129 //////////////////////////////////////////////////////////////////////////////// 133 ////////////////////////////////////////////////////////////////////////////////
130 // BufferedPeer 134 // BufferedPeer
131 135
132 BufferedPeer::BufferedPeer(content::RequestPeer* peer, 136 BufferedPeer::BufferedPeer(
133 const std::string& mime_type) 137 webkit_glue::ResourceLoaderBridge* resource_loader_bridge,
134 : SecurityFilterPeer(peer), mime_type_(mime_type) {} 138 content::RequestPeer* peer,
139 const std::string& mime_type)
140 : SecurityFilterPeer(resource_loader_bridge, peer),
141 mime_type_(mime_type) {
142 }
135 143
136 BufferedPeer::~BufferedPeer() { 144 BufferedPeer::~BufferedPeer() {
137 } 145 }
138 146
139 void BufferedPeer::OnReceivedResponse( 147 void BufferedPeer::OnReceivedResponse(
140 const webkit_glue::ResourceResponseInfo& info) { 148 const webkit_glue::ResourceResponseInfo& info) {
141 ProcessResponseInfo(info, &response_info_, mime_type_); 149 ProcessResponseInfo(info, &response_info_, mime_type_);
142 } 150 }
143 151
144 void BufferedPeer::OnReceivedData(const char* data, 152 void BufferedPeer::OnReceivedData(const char* data,
(...skipping 28 matching lines...) Expand all
173 static_cast<int>(data_.size()), 181 static_cast<int>(data_.size()),
174 -1); 182 -1);
175 original_peer_->OnCompletedRequest(error_code, was_ignored_by_handler, 183 original_peer_->OnCompletedRequest(error_code, was_ignored_by_handler,
176 stale_copy_in_cache, security_info, 184 stale_copy_in_cache, security_info,
177 completion_time, total_transfer_size); 185 completion_time, total_transfer_size);
178 } 186 }
179 187
180 //////////////////////////////////////////////////////////////////////////////// 188 ////////////////////////////////////////////////////////////////////////////////
181 // ReplaceContentPeer 189 // ReplaceContentPeer
182 190
183 ReplaceContentPeer::ReplaceContentPeer(content::RequestPeer* peer, 191 ReplaceContentPeer::ReplaceContentPeer(
184 const std::string& mime_type, 192 webkit_glue::ResourceLoaderBridge* resource_loader_bridge,
185 const std::string& data) 193 content::RequestPeer* peer,
186 : SecurityFilterPeer(peer), 194 const std::string& mime_type,
195 const std::string& data)
196 : SecurityFilterPeer(resource_loader_bridge, peer),
187 mime_type_(mime_type), 197 mime_type_(mime_type),
188 data_(data) {} 198 data_(data) {
199 }
189 200
190 ReplaceContentPeer::~ReplaceContentPeer() { 201 ReplaceContentPeer::~ReplaceContentPeer() {
191 } 202 }
192 203
193 void ReplaceContentPeer::OnReceivedResponse( 204 void ReplaceContentPeer::OnReceivedResponse(
194 const webkit_glue::ResourceResponseInfo& info) { 205 const webkit_glue::ResourceResponseInfo& info) {
195 // Ignore this, we'll serve some alternate content in OnCompletedRequest. 206 // Ignore this, we'll serve some alternate content in OnCompletedRequest.
196 } 207 }
197 208
198 void ReplaceContentPeer::OnReceivedData(const char* data, 209 void ReplaceContentPeer::OnReceivedData(const char* data,
(...skipping 21 matching lines...) Expand all
220 original_peer_->OnCompletedRequest(net::OK, 231 original_peer_->OnCompletedRequest(net::OK,
221 false, 232 false,
222 stale_copy_in_cache, 233 stale_copy_in_cache,
223 security_info, 234 security_info,
224 completion_time, 235 completion_time,
225 total_transfer_size); 236 total_transfer_size);
226 237
227 // The request processing is complete, we must delete ourselves. 238 // The request processing is complete, we must delete ourselves.
228 delete this; 239 delete this;
229 } 240 }
OLDNEW
« no previous file with comments | « chrome/renderer/security_filter_peer.h ('k') | content/child/blink_platform_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698