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

Side by Side Diff: content/browser/renderer_host/sync_resource_handler.cc

Issue 10644011: Revert r143458 (which re-applies r143341 and r142979). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 6 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
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 "content/browser/renderer_host/sync_resource_handler.h" 5 #include "content/browser/renderer_host/sync_resource_handler.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "content/browser/debugger/devtools_netlog_observer.h" 8 #include "content/browser/debugger/devtools_netlog_observer.h"
9 #include "content/browser/renderer_host/resource_dispatcher_host_impl.h" 9 #include "content/browser/renderer_host/resource_dispatcher_host_impl.h"
10 #include "content/browser/renderer_host/resource_message_filter.h" 10 #include "content/browser/renderer_host/resource_message_filter.h"
11 #include "content/common/resource_messages.h" 11 #include "content/common/resource_messages.h"
12 #include "content/public/browser/global_request_id.h" 12 #include "content/public/browser/global_request_id.h"
13 #include "content/public/browser/resource_dispatcher_host_delegate.h" 13 #include "content/public/browser/resource_dispatcher_host_delegate.h"
14 #include "net/base/io_buffer.h" 14 #include "net/base/io_buffer.h"
15 #include "net/http/http_response_headers.h" 15 #include "net/http/http_response_headers.h"
16 16
17 namespace content { 17 namespace content {
18 18
19 SyncResourceHandler::SyncResourceHandler( 19 SyncResourceHandler::SyncResourceHandler(
20 ResourceMessageFilter* filter, 20 ResourceMessageFilter* filter,
21 const GURL& url, 21 net::URLRequest* request,
22 IPC::Message* result_message, 22 IPC::Message* result_message,
23 ResourceDispatcherHostImpl* resource_dispatcher_host) 23 ResourceDispatcherHostImpl* resource_dispatcher_host)
24 : read_buffer_(new net::IOBuffer(kReadBufSize)), 24 : read_buffer_(new net::IOBuffer(kReadBufSize)),
25 filter_(filter), 25 filter_(filter),
26 request_(request),
26 result_message_(result_message), 27 result_message_(result_message),
27 rdh_(resource_dispatcher_host) { 28 rdh_(resource_dispatcher_host) {
28 result_.final_url = url; 29 result_.final_url = request_->url();
29 } 30 }
30 31
31 SyncResourceHandler::~SyncResourceHandler() { 32 SyncResourceHandler::~SyncResourceHandler() {
32 if (result_message_) { 33 if (result_message_) {
33 result_message_->set_reply_error(); 34 result_message_->set_reply_error();
34 filter_->Send(result_message_); 35 filter_->Send(result_message_);
35 } 36 }
36 } 37 }
37 38
38 bool SyncResourceHandler::OnUploadProgress(int request_id, 39 bool SyncResourceHandler::OnUploadProgress(int request_id,
39 uint64 position, 40 uint64 position,
40 uint64 size) { 41 uint64 size) {
41 return true; 42 return true;
42 } 43 }
43 44
44 bool SyncResourceHandler::OnRequestRedirected( 45 bool SyncResourceHandler::OnRequestRedirected(
45 int request_id, 46 int request_id,
46 const GURL& new_url, 47 const GURL& new_url,
47 ResourceResponse* response, 48 ResourceResponse* response,
48 bool* defer) { 49 bool* defer) {
49 net::URLRequest* request = rdh_->GetURLRequest(
50 GlobalRequestID(filter_->child_id(), request_id));
51 if (rdh_->delegate()) 50 if (rdh_->delegate())
52 rdh_->delegate()->OnRequestRedirected(request, response); 51 rdh_->delegate()->OnRequestRedirected(request_, response);
53 52
54 DevToolsNetLogObserver::PopulateResponseInfo(request, response); 53 DevToolsNetLogObserver::PopulateResponseInfo(request_, response);
55 // TODO(darin): It would be much better if this could live in WebCore, but 54 // TODO(darin): It would be much better if this could live in WebCore, but
56 // doing so requires API changes at all levels. Similar code exists in 55 // doing so requires API changes at all levels. Similar code exists in
57 // WebCore/platform/network/cf/ResourceHandleCFNet.cpp :-( 56 // WebCore/platform/network/cf/ResourceHandleCFNet.cpp :-(
58 if (new_url.GetOrigin() != result_.final_url.GetOrigin()) { 57 if (new_url.GetOrigin() != result_.final_url.GetOrigin()) {
59 LOG(ERROR) << "Cross origin redirect denied"; 58 LOG(ERROR) << "Cross origin redirect denied";
60 return false; 59 return false;
61 } 60 }
62 result_.final_url = new_url; 61 result_.final_url = new_url;
63 return true; 62 return true;
64 } 63 }
65 64
66 bool SyncResourceHandler::OnResponseStarted( 65 bool SyncResourceHandler::OnResponseStarted(
67 int request_id, 66 int request_id,
68 ResourceResponse* response, 67 ResourceResponse* response,
69 bool* defer) { 68 bool* defer) {
70 net::URLRequest* request = rdh_->GetURLRequest(
71 GlobalRequestID(filter_->child_id(), request_id));
72 if (rdh_->delegate()) 69 if (rdh_->delegate())
73 rdh_->delegate()->OnResponseStarted(request, response, filter_); 70 rdh_->delegate()->OnResponseStarted(request_, response, filter_);
74 71
75 DevToolsNetLogObserver::PopulateResponseInfo(request, response); 72 DevToolsNetLogObserver::PopulateResponseInfo(request_, response);
76 73
77 // We don't care about copying the status here. 74 // We don't care about copying the status here.
78 result_.headers = response->headers; 75 result_.headers = response->headers;
79 result_.mime_type = response->mime_type; 76 result_.mime_type = response->mime_type;
80 result_.charset = response->charset; 77 result_.charset = response->charset;
81 result_.download_file_path = response->download_file_path; 78 result_.download_file_path = response->download_file_path;
82 result_.request_time = response->request_time; 79 result_.request_time = response->request_time;
83 result_.response_time = response->response_time; 80 result_.response_time = response->response_time;
84 result_.connection_id = response->connection_id; 81 result_.connection_id = response->connection_id;
85 result_.connection_reused = response->connection_reused; 82 result_.connection_reused = response->connection_reused;
(...skipping 23 matching lines...) Expand all
109 result_.data.append(read_buffer_->data(), *bytes_read); 106 result_.data.append(read_buffer_->data(), *bytes_read);
110 return true; 107 return true;
111 } 108 }
112 109
113 bool SyncResourceHandler::OnResponseCompleted( 110 bool SyncResourceHandler::OnResponseCompleted(
114 int request_id, 111 int request_id,
115 const net::URLRequestStatus& status, 112 const net::URLRequestStatus& status,
116 const std::string& security_info) { 113 const std::string& security_info) {
117 result_.status = status; 114 result_.status = status;
118 115
119 net::URLRequest* request = rdh_->GetURLRequest(
120 GlobalRequestID(filter_->child_id(), request_id));
121 result_.encoded_data_length = 116 result_.encoded_data_length =
122 DevToolsNetLogObserver::GetAndResetEncodedDataLength(request); 117 DevToolsNetLogObserver::GetAndResetEncodedDataLength(request_);
123 118
124 ResourceHostMsg_SyncLoad::WriteReplyParams(result_message_, result_); 119 ResourceHostMsg_SyncLoad::WriteReplyParams(result_message_, result_);
125 filter_->Send(result_message_); 120 filter_->Send(result_message_);
126 result_message_ = NULL; 121 result_message_ = NULL;
127 return true; 122 return true;
128 } 123 }
129 124
130 } // namespace content 125 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698