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

Side by Side Diff: trunk/src/content/browser/loader/sync_resource_handler.cc

Issue 26472004: Revert 227318 "Clean up ResourceHandler API." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 2 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/loader/sync_resource_handler.h" 5 #include "content/browser/loader/sync_resource_handler.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "content/browser/devtools/devtools_netlog_observer.h" 8 #include "content/browser/devtools/devtools_netlog_observer.h"
9 #include "content/browser/loader/resource_dispatcher_host_impl.h" 9 #include "content/browser/loader/resource_dispatcher_host_impl.h"
10 #include "content/browser/loader/resource_message_filter.h" 10 #include "content/browser/loader/resource_message_filter.h"
11 #include "content/browser/loader/resource_request_info_impl.h" 11 #include "content/browser/loader/resource_request_info_impl.h"
12 #include "content/common/resource_messages.h" 12 #include "content/common/resource_messages.h"
13 #include "content/public/browser/global_request_id.h" 13 #include "content/public/browser/global_request_id.h"
14 #include "content/public/browser/resource_dispatcher_host_delegate.h" 14 #include "content/public/browser/resource_dispatcher_host_delegate.h"
15 #include "content/public/browser/resource_request_info.h" 15 #include "content/public/browser/resource_request_info.h"
16 #include "net/base/io_buffer.h" 16 #include "net/base/io_buffer.h"
17 #include "net/http/http_response_headers.h" 17 #include "net/http/http_response_headers.h"
18 18
19 namespace content { 19 namespace content {
20 20
21 SyncResourceHandler::SyncResourceHandler( 21 SyncResourceHandler::SyncResourceHandler(
22 net::URLRequest* request, 22 net::URLRequest* request,
23 IPC::Message* result_message, 23 IPC::Message* result_message,
24 ResourceDispatcherHostImpl* resource_dispatcher_host) 24 ResourceDispatcherHostImpl* resource_dispatcher_host)
25 : ResourceHandler(request), 25 : read_buffer_(new net::IOBuffer(kReadBufSize)),
26 read_buffer_(new net::IOBuffer(kReadBufSize)), 26 request_(request),
27 result_message_(result_message), 27 result_message_(result_message),
28 rdh_(resource_dispatcher_host) { 28 rdh_(resource_dispatcher_host) {
29 result_.final_url = request->url(); 29 result_.final_url = request_->url();
30 } 30 }
31 31
32 SyncResourceHandler::~SyncResourceHandler() { 32 SyncResourceHandler::~SyncResourceHandler() {
33 if (result_message_) { 33 if (result_message_) {
34 result_message_->set_reply_error(); 34 result_message_->set_reply_error();
35 ResourceMessageFilter* filter = GetFilter(); 35 const ResourceRequestInfoImpl* info =
36 ResourceRequestInfoImpl::ForRequest(request_);
36 // If the filter doesn't exist at this point, the process has died and isn't 37 // If the filter doesn't exist at this point, the process has died and isn't
37 // waiting for the result message anymore. 38 // waiting for the result message anymore.
38 if (filter) 39 if (info->filter())
39 filter->Send(result_message_); 40 info->filter()->Send(result_message_);
40 } 41 }
41 } 42 }
42 43
43 bool SyncResourceHandler::OnUploadProgress(int request_id, 44 bool SyncResourceHandler::OnUploadProgress(int request_id,
44 uint64 position, 45 uint64 position,
45 uint64 size) { 46 uint64 size) {
46 return true; 47 return true;
47 } 48 }
48 49
49 bool SyncResourceHandler::OnRequestRedirected( 50 bool SyncResourceHandler::OnRequestRedirected(
50 int request_id, 51 int request_id,
51 const GURL& new_url, 52 const GURL& new_url,
52 ResourceResponse* response, 53 ResourceResponse* response,
53 bool* defer) { 54 bool* defer) {
54 if (rdh_->delegate()) { 55 if (rdh_->delegate()) {
56 const ResourceRequestInfoImpl* info =
57 ResourceRequestInfoImpl::ForRequest(request_);
55 rdh_->delegate()->OnRequestRedirected( 58 rdh_->delegate()->OnRequestRedirected(
56 new_url, request(), GetRequestInfo()->GetContext(), response); 59 new_url, request_, info->GetContext(), response);
57 } 60 }
58 61
59 DevToolsNetLogObserver::PopulateResponseInfo(request(), response); 62 DevToolsNetLogObserver::PopulateResponseInfo(request_, response);
60 // TODO(darin): It would be much better if this could live in WebCore, but 63 // TODO(darin): It would be much better if this could live in WebCore, but
61 // doing so requires API changes at all levels. Similar code exists in 64 // doing so requires API changes at all levels. Similar code exists in
62 // WebCore/platform/network/cf/ResourceHandleCFNet.cpp :-( 65 // WebCore/platform/network/cf/ResourceHandleCFNet.cpp :-(
63 if (new_url.GetOrigin() != result_.final_url.GetOrigin()) { 66 if (new_url.GetOrigin() != result_.final_url.GetOrigin()) {
64 LOG(ERROR) << "Cross origin redirect denied"; 67 LOG(ERROR) << "Cross origin redirect denied";
65 return false; 68 return false;
66 } 69 }
67 result_.final_url = new_url; 70 result_.final_url = new_url;
68 return true; 71 return true;
69 } 72 }
70 73
71 bool SyncResourceHandler::OnResponseStarted( 74 bool SyncResourceHandler::OnResponseStarted(
72 int request_id, 75 int request_id,
73 ResourceResponse* response, 76 ResourceResponse* response,
74 bool* defer) { 77 bool* defer) {
75 const ResourceRequestInfoImpl* info = GetRequestInfo(); 78 const ResourceRequestInfoImpl* info =
79 ResourceRequestInfoImpl::ForRequest(request_);
76 if (!info->filter()) 80 if (!info->filter())
77 return false; 81 return false;
78 82
79 if (rdh_->delegate()) { 83 if (rdh_->delegate()) {
80 rdh_->delegate()->OnResponseStarted( 84 rdh_->delegate()->OnResponseStarted(
81 request(), info->GetContext(), response, info->filter()); 85 request_, info->GetContext(), response, info->filter());
82 } 86 }
83 87
84 DevToolsNetLogObserver::PopulateResponseInfo(request(), response); 88 DevToolsNetLogObserver::PopulateResponseInfo(request_, response);
85 89
86 // We don't care about copying the status here. 90 // We don't care about copying the status here.
87 result_.headers = response->head.headers; 91 result_.headers = response->head.headers;
88 result_.mime_type = response->head.mime_type; 92 result_.mime_type = response->head.mime_type;
89 result_.charset = response->head.charset; 93 result_.charset = response->head.charset;
90 result_.download_file_path = response->head.download_file_path; 94 result_.download_file_path = response->head.download_file_path;
91 result_.request_time = response->head.request_time; 95 result_.request_time = response->head.request_time;
92 result_.response_time = response->head.response_time; 96 result_.response_time = response->head.response_time;
93 result_.load_timing = response->head.load_timing; 97 result_.load_timing = response->head.load_timing;
94 result_.devtools_info = response->head.devtools_info; 98 result_.devtools_info = response->head.devtools_info;
95 return true; 99 return true;
96 } 100 }
97 101
98 bool SyncResourceHandler::OnWillStart(int request_id, 102 bool SyncResourceHandler::OnWillStart(int request_id,
99 const GURL& url, 103 const GURL& url,
100 bool* defer) { 104 bool* defer) {
101 return true; 105 return true;
102 } 106 }
103 107
104 bool SyncResourceHandler::OnWillRead(int request_id, 108 bool SyncResourceHandler::OnWillRead(int request_id, net::IOBuffer** buf,
105 scoped_refptr<net::IOBuffer>* buf, 109 int* buf_size, int min_size) {
106 int* buf_size,
107 int min_size) {
108 DCHECK(min_size == -1); 110 DCHECK(min_size == -1);
109 *buf = read_buffer_.get(); 111 *buf = read_buffer_.get();
110 *buf_size = kReadBufSize; 112 *buf_size = kReadBufSize;
111 return true; 113 return true;
112 } 114 }
113 115
114 bool SyncResourceHandler::OnReadCompleted(int request_id, int bytes_read, 116 bool SyncResourceHandler::OnReadCompleted(int request_id, int bytes_read,
115 bool* defer) { 117 bool* defer) {
116 if (!bytes_read) 118 if (!bytes_read)
117 return true; 119 return true;
118 result_.data.append(read_buffer_->data(), bytes_read); 120 result_.data.append(read_buffer_->data(), bytes_read);
119 return true; 121 return true;
120 } 122 }
121 123
122 bool SyncResourceHandler::OnResponseCompleted( 124 bool SyncResourceHandler::OnResponseCompleted(
123 int request_id, 125 int request_id,
124 const net::URLRequestStatus& status, 126 const net::URLRequestStatus& status,
125 const std::string& security_info) { 127 const std::string& security_info) {
126 ResourceMessageFilter* filter = GetFilter(); 128 const ResourceRequestInfoImpl* info =
127 if (!filter) 129 ResourceRequestInfoImpl::ForRequest(request_);
130 if (!info->filter())
128 return false; 131 return false;
129 132
130 result_.error_code = status.error(); 133 result_.error_code = status.error();
131 134
132 result_.encoded_data_length = 135 result_.encoded_data_length =
133 DevToolsNetLogObserver::GetAndResetEncodedDataLength(request()); 136 DevToolsNetLogObserver::GetAndResetEncodedDataLength(request_);
134 137
135 ResourceHostMsg_SyncLoad::WriteReplyParams(result_message_, result_); 138 ResourceHostMsg_SyncLoad::WriteReplyParams(result_message_, result_);
136 filter->Send(result_message_); 139 info->filter()->Send(result_message_);
137 result_message_ = NULL; 140 result_message_ = NULL;
138 return true; 141 return true;
139 } 142 }
140 143
141 void SyncResourceHandler::OnDataDownloaded( 144 void SyncResourceHandler::OnDataDownloaded(
142 int request_id, 145 int request_id,
143 int bytes_downloaded) { 146 int bytes_downloaded) {
144 // Sync requests don't involve ResourceMsg_DataDownloaded messages 147 // Sync requests don't involve ResourceMsg_DataDownloaded messages
145 // being sent back to renderers as progress is made. 148 // being sent back to renderers as progress is made.
146 } 149 }
147 150
148 } // namespace content 151 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698