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/loader/sync_resource_handler.cc

Issue 23851010: Modify ResourceMessageFilter so that it can support attaching to PluginProcessHost. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync Created 7 years, 3 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/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 ResourceContext* resource_context,
21 net::URLRequest* request, 22 net::URLRequest* request,
22 IPC::Message* result_message, 23 IPC::Message* result_message,
23 ResourceDispatcherHostImpl* resource_dispatcher_host) 24 ResourceDispatcherHostImpl* resource_dispatcher_host)
24 : read_buffer_(new net::IOBuffer(kReadBufSize)), 25 : read_buffer_(new net::IOBuffer(kReadBufSize)),
25 filter_(filter), 26 filter_(filter),
27 resource_context_(resource_context),
26 request_(request), 28 request_(request),
27 result_message_(result_message), 29 result_message_(result_message),
28 rdh_(resource_dispatcher_host) { 30 rdh_(resource_dispatcher_host) {
29 result_.final_url = request_->url(); 31 result_.final_url = request_->url();
30 } 32 }
31 33
32 SyncResourceHandler::~SyncResourceHandler() { 34 SyncResourceHandler::~SyncResourceHandler() {
33 if (result_message_) { 35 if (result_message_) {
34 result_message_->set_reply_error(); 36 result_message_->set_reply_error();
35 filter_->Send(result_message_); 37 filter_->Send(result_message_);
36 } 38 }
37 } 39 }
38 40
39 bool SyncResourceHandler::OnUploadProgress(int request_id, 41 bool SyncResourceHandler::OnUploadProgress(int request_id,
40 uint64 position, 42 uint64 position,
41 uint64 size) { 43 uint64 size) {
42 return true; 44 return true;
43 } 45 }
44 46
45 bool SyncResourceHandler::OnRequestRedirected( 47 bool SyncResourceHandler::OnRequestRedirected(
46 int request_id, 48 int request_id,
47 const GURL& new_url, 49 const GURL& new_url,
48 ResourceResponse* response, 50 ResourceResponse* response,
49 bool* defer) { 51 bool* defer) {
50 if (rdh_->delegate()) { 52 if (rdh_->delegate()) {
51 rdh_->delegate()->OnRequestRedirected(new_url, request_, 53 rdh_->delegate()->OnRequestRedirected(
52 filter_->resource_context(), 54 new_url, request_, resource_context_, response);
53 response);
54 } 55 }
55 56
56 DevToolsNetLogObserver::PopulateResponseInfo(request_, response); 57 DevToolsNetLogObserver::PopulateResponseInfo(request_, response);
57 // TODO(darin): It would be much better if this could live in WebCore, but 58 // TODO(darin): It would be much better if this could live in WebCore, but
58 // doing so requires API changes at all levels. Similar code exists in 59 // doing so requires API changes at all levels. Similar code exists in
59 // WebCore/platform/network/cf/ResourceHandleCFNet.cpp :-( 60 // WebCore/platform/network/cf/ResourceHandleCFNet.cpp :-(
60 if (new_url.GetOrigin() != result_.final_url.GetOrigin()) { 61 if (new_url.GetOrigin() != result_.final_url.GetOrigin()) {
61 LOG(ERROR) << "Cross origin redirect denied"; 62 LOG(ERROR) << "Cross origin redirect denied";
62 return false; 63 return false;
63 } 64 }
64 result_.final_url = new_url; 65 result_.final_url = new_url;
65 return true; 66 return true;
66 } 67 }
67 68
68 bool SyncResourceHandler::OnResponseStarted( 69 bool SyncResourceHandler::OnResponseStarted(
69 int request_id, 70 int request_id,
70 ResourceResponse* response, 71 ResourceResponse* response,
71 bool* defer) { 72 bool* defer) {
72 if (rdh_->delegate()) { 73 if (rdh_->delegate()) {
73 rdh_->delegate()->OnResponseStarted( 74 rdh_->delegate()->OnResponseStarted(
74 request_, filter_->resource_context(), response, filter_.get()); 75 request_, resource_context_, response, filter_.get());
75 } 76 }
76 77
77 DevToolsNetLogObserver::PopulateResponseInfo(request_, response); 78 DevToolsNetLogObserver::PopulateResponseInfo(request_, response);
78 79
79 // We don't care about copying the status here. 80 // We don't care about copying the status here.
80 result_.headers = response->head.headers; 81 result_.headers = response->head.headers;
81 result_.mime_type = response->head.mime_type; 82 result_.mime_type = response->head.mime_type;
82 result_.charset = response->head.charset; 83 result_.charset = response->head.charset;
83 result_.download_file_path = response->head.download_file_path; 84 result_.download_file_path = response->head.download_file_path;
84 result_.request_time = response->head.request_time; 85 result_.request_time = response->head.request_time;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 } 127 }
127 128
128 void SyncResourceHandler::OnDataDownloaded( 129 void SyncResourceHandler::OnDataDownloaded(
129 int request_id, 130 int request_id,
130 int bytes_downloaded) { 131 int bytes_downloaded) {
131 // Sync requests don't involve ResourceMsg_DataDownloaded messages 132 // Sync requests don't involve ResourceMsg_DataDownloaded messages
132 // being sent back to renderers as progress is made. 133 // being sent back to renderers as progress is made.
133 } 134 }
134 135
135 } // namespace content 136 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/loader/sync_resource_handler.h ('k') | content/browser/renderer_host/render_process_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698