diff options
Diffstat (limited to 'chrome/common')
-rw-r--r-- | chrome/common/child_thread.cc | 9 | ||||
-rw-r--r-- | chrome/common/child_thread.h | 7 | ||||
-rw-r--r-- | chrome/common/resource_dispatcher.cc | 82 | ||||
-rw-r--r-- | chrome/common/resource_dispatcher.h | 19 | ||||
-rw-r--r-- | chrome/common/resource_dispatcher_unittest.cc | 20 |
5 files changed, 54 insertions, 83 deletions
diff --git a/chrome/common/child_thread.cc b/chrome/common/child_thread.cc index cb145ae..e973554 100644 --- a/chrome/common/child_thread.cc +++ b/chrome/common/child_thread.cc @@ -95,6 +95,15 @@ void ChildThread::RemoveRoute(int32 routing_id) { router_.RemoveRoute(routing_id); } +webkit_glue::ResourceLoaderBridge* ChildThread::CreateBridge( + const webkit_glue::ResourceLoaderBridge::RequestInfo& request_info, + int host_renderer_id, + int host_render_view_id) { + return resource_dispatcher()-> + CreateBridge(request_info, host_renderer_id, host_render_view_id); +} + + void ChildThread::OnMessageReceived(const IPC::Message& msg) { // Resource responses are sent to the resource dispatcher. if (resource_dispatcher_->OnMessageReceived(msg)) diff --git a/chrome/common/child_thread.h b/chrome/common/child_thread.h index 63464fe..c731b45 100644 --- a/chrome/common/child_thread.h +++ b/chrome/common/child_thread.h @@ -32,6 +32,13 @@ class ChildThread : public IPC::Channel::Listener, void AddRoute(int32 routing_id, IPC::Channel::Listener* listener); void RemoveRoute(int32 routing_id); + // Creates a ResourceLoaderBridge. + // Tests can override this method if they want a custom loading behavior. + virtual webkit_glue::ResourceLoaderBridge* CreateBridge( + const webkit_glue::ResourceLoaderBridge::RequestInfo& request_info, + int host_renderer_id, + int host_render_view_id); + ResourceDispatcher* resource_dispatcher() { return resource_dispatcher_.get(); } diff --git a/chrome/common/resource_dispatcher.cc b/chrome/common/resource_dispatcher.cc index 5639f77..8eb74a5 100644 --- a/chrome/common/resource_dispatcher.cc +++ b/chrome/common/resource_dispatcher.cc @@ -44,21 +44,9 @@ namespace webkit_glue { class IPCResourceLoaderBridge : public ResourceLoaderBridge { public: IPCResourceLoaderBridge(ResourceDispatcher* dispatcher, - const std::string& method, - const GURL& url, - const GURL& first_party_for_cookies, - const GURL& referrer, - const std::string& frame_origin, - const std::string& main_frame_origin, - const std::string& headers, - int load_flags, - int origin_pid, - ResourceType::Type resource_type, - uint32 request_context, - int appcache_host_id, - int routing_id, - int host_renderer_id, - int host_render_view_id); + const webkit_glue::ResourceLoaderBridge::RequestInfo& request_info, + int host_renderer_id, + int host_render_view_id); virtual ~IPCResourceLoaderBridge(); // ResourceLoaderBridge @@ -109,40 +97,28 @@ class IPCResourceLoaderBridge : public ResourceLoaderBridge { IPCResourceLoaderBridge::IPCResourceLoaderBridge( ResourceDispatcher* dispatcher, - const std::string& method, - const GURL& url, - const GURL& first_party_for_cookies, - const GURL& referrer, - const std::string& frame_origin, - const std::string& main_frame_origin, - const std::string& headers, - int load_flags, - int origin_child_id, - ResourceType::Type resource_type, - uint32 request_context, - int appcache_host_id, - int routing_id, + const webkit_glue::ResourceLoaderBridge::RequestInfo& request_info, int host_renderer_id, int host_render_view_id) : peer_(NULL), dispatcher_(dispatcher), request_id_(-1), - routing_id_(routing_id), + routing_id_(request_info.routing_id), host_renderer_id_(host_renderer_id), host_render_view_id_(host_render_view_id) { DCHECK(dispatcher_) << "no resource dispatcher"; - request_.method = method; - request_.url = url; - request_.first_party_for_cookies = first_party_for_cookies; - request_.referrer = referrer; - request_.frame_origin = frame_origin; - request_.main_frame_origin = main_frame_origin; - request_.headers = headers; - request_.load_flags = load_flags; - request_.origin_child_id = origin_child_id; - request_.resource_type = resource_type; - request_.request_context = request_context; - request_.appcache_host_id = appcache_host_id; + request_.method = request_info.method; + request_.url = request_info.url; + request_.first_party_for_cookies = request_info.first_party_for_cookies; + request_.referrer = request_info.referrer; + request_.frame_origin = request_info.frame_origin; + request_.main_frame_origin = request_info.main_frame_origin; + request_.headers = request_info.headers; + request_.load_flags = request_info.load_flags; + request_.origin_child_id = request_info.requestor_pid; + request_.resource_type = request_info.request_type; + request_.request_context = request_info.request_context; + request_.appcache_host_id = request_info.appcache_host_id; request_.host_renderer_id = host_renderer_id_; request_.host_render_view_id = host_render_view_id_; @@ -577,30 +553,10 @@ void ResourceDispatcher::FlushDeferredMessages(int request_id) { } webkit_glue::ResourceLoaderBridge* ResourceDispatcher::CreateBridge( - const std::string& method, - const GURL& url, - const GURL& first_party_for_cookies, - const GURL& referrer, - const std::string& frame_origin, - const std::string& main_frame_origin, - const std::string& headers, - int flags, - int origin_pid, - ResourceType::Type resource_type, - uint32 request_context, - int appcache_host_id, - int route_id, + const webkit_glue::ResourceLoaderBridge::RequestInfo& request_info, int host_renderer_id, int host_render_view_id) { - return new webkit_glue::IPCResourceLoaderBridge(this, method, url, - first_party_for_cookies, - referrer, frame_origin, - main_frame_origin, headers, - flags, origin_pid, - resource_type, - request_context, - appcache_host_id, - route_id, + return new webkit_glue::IPCResourceLoaderBridge(this, request_info, host_renderer_id, host_render_view_id); } diff --git a/chrome/common/resource_dispatcher.h b/chrome/common/resource_dispatcher.h index 7a93024..1d3f25a 100644 --- a/chrome/common/resource_dispatcher.h +++ b/chrome/common/resource_dispatcher.h @@ -34,21 +34,10 @@ class ResourceDispatcher { // Creates a ResourceLoaderBridge for this type of dispatcher, this is so // this can be tested regardless of the ResourceLoaderBridge::Create // implementation. - webkit_glue::ResourceLoaderBridge* CreateBridge(const std::string& method, - const GURL& url, - const GURL& first_party_for_cookies, - const GURL& referrer, - const std::string& frame_origin, - const std::string& main_frame_origin, - const std::string& headers, - int load_flags, - int origin_pid, - ResourceType::Type resource_type, - uint32 request_context /* used for plugin->browser requests */, - int appcache_host_id, - int routing_id, - int host_renderer_id, - int host_render_view_id); + webkit_glue::ResourceLoaderBridge* CreateBridge( + const webkit_glue::ResourceLoaderBridge::RequestInfo& request_info, + int host_renderer_id, + int host_render_view_id); // Adds a request from the pending_requests_ list, returning the new // requests' ID diff --git a/chrome/common/resource_dispatcher_unittest.cc b/chrome/common/resource_dispatcher_unittest.cc index 67b9351..bf2ec19 100644 --- a/chrome/common/resource_dispatcher_unittest.cc +++ b/chrome/common/resource_dispatcher_unittest.cc @@ -148,11 +148,21 @@ class ResourceDispatcherTest : public testing::Test, } ResourceLoaderBridge* CreateBridge() { - ResourceLoaderBridge* bridge = dispatcher_->CreateBridge( - "GET", GURL(test_page_url), GURL(test_page_url), GURL(), "null", - "null", std::string(), 0, 0, ResourceType::SUB_RESOURCE, 0, - appcache::kNoHostId, MSG_ROUTING_CONTROL, -1, -1); - return bridge; + webkit_glue::ResourceLoaderBridge::RequestInfo request_info; + request_info.method = "GET"; + request_info.url = GURL(test_page_url); + request_info.first_party_for_cookies = GURL(test_page_url); + request_info.referrer = GURL(); + request_info.frame_origin = "null"; + request_info.main_frame_origin = "null"; + request_info.headers = std::string(); + request_info.load_flags = 0; + request_info.requestor_pid = 0; + request_info.request_type = ResourceType::SUB_RESOURCE; + request_info.appcache_host_id = 0; + request_info.routing_id = appcache::kNoHostId; + + return dispatcher_->CreateBridge(request_info, -1, -1); } std::vector<IPC::Message> message_queue_; |