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

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

Issue 9580002: Add ResourceRequestInfo. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 9 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 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading 5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading
6 6
7 #include "content/browser/renderer_host/resource_dispatcher_host.h" 7 #include "content/browser/renderer_host/resource_dispatcher_host.h"
8 8
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 #include "webkit/appcache/appcache_interfaces.h" 83 #include "webkit/appcache/appcache_interfaces.h"
84 #include "webkit/blob/blob_storage_controller.h" 84 #include "webkit/blob/blob_storage_controller.h"
85 #include "webkit/blob/shareable_file_reference.h" 85 #include "webkit/blob/shareable_file_reference.h"
86 86
87 using base::Time; 87 using base::Time;
88 using base::TimeDelta; 88 using base::TimeDelta;
89 using base::TimeTicks; 89 using base::TimeTicks;
90 using content::BrowserThread; 90 using content::BrowserThread;
91 using content::GlobalRequestID; 91 using content::GlobalRequestID;
92 using content::ResourceContext; 92 using content::ResourceContext;
93 using content::ResourceRequestInfo;
93 using content::ResourceResponse; 94 using content::ResourceResponse;
94 using content::ResourceThrottle; 95 using content::ResourceThrottle;
95 using content::ThrottlingResourceHandler; 96 using content::ThrottlingResourceHandler;
96 using content::WebContents; 97 using content::WebContents;
97 using content::WorkerServiceImpl; 98 using content::WorkerServiceImpl;
98 using webkit_blob::ShareableFileReference; 99 using webkit_blob::ShareableFileReference;
99 100
100 // ---------------------------------------------------------------------------- 101 // ----------------------------------------------------------------------------
101 102
102 namespace { 103 namespace {
(...skipping 1807 matching lines...) Expand 10 before | Expand all | Expand 10 after
1910 net::URLRequest* request) { 1911 net::URLRequest* request) {
1911 // Avoid writing this function twice by casting the const version. 1912 // Avoid writing this function twice by casting the const version.
1912 const net::URLRequest* const_request = request; 1913 const net::URLRequest* const_request = request;
1913 return const_cast<ResourceDispatcherHostRequestInfo*>( 1914 return const_cast<ResourceDispatcherHostRequestInfo*>(
1914 InfoForRequest(const_request)); 1915 InfoForRequest(const_request));
1915 } 1916 }
1916 1917
1917 // static 1918 // static
1918 const ResourceDispatcherHostRequestInfo* ResourceDispatcherHost::InfoForRequest( 1919 const ResourceDispatcherHostRequestInfo* ResourceDispatcherHost::InfoForRequest(
1919 const net::URLRequest* request) { 1920 const net::URLRequest* request) {
1920 const ResourceDispatcherHostRequestInfo* info = 1921 return static_cast<const ResourceDispatcherHostRequestInfo*>(
1921 static_cast<const ResourceDispatcherHostRequestInfo*>( 1922 ResourceRequestInfo::ForRequest(request));
1922 request->GetUserData(NULL));
1923 return info;
1924 } 1923 }
1925 1924
1926 // static 1925 // static
1927 bool ResourceDispatcherHost::RenderViewForRequest( 1926 bool ResourceDispatcherHost::RenderViewForRequest(
1928 const net::URLRequest* request, 1927 const net::URLRequest* request,
1929 int* render_process_host_id, 1928 int* render_process_id,
1930 int* render_view_host_id) { 1929 int* render_view_id) {
1931 const ResourceDispatcherHostRequestInfo* info = InfoForRequest(request); 1930 const ResourceDispatcherHostRequestInfo* info = InfoForRequest(request);
1932 if (!info) { 1931 if (!info) {
1933 *render_process_host_id = -1; 1932 *render_process_id = -1;
1934 *render_view_host_id = -1; 1933 *render_view_id = -1;
1935 return false; 1934 return false;
1936 } 1935 }
1937 1936
1938 // If the request is from the worker process, find a tab that owns the worker. 1937 return info->GetAssociatedRenderView(render_process_id, render_view_id);
1939 if (info->process_type() == content::PROCESS_TYPE_WORKER) {
1940 // Need to display some related UI for this network request - pick an
1941 // arbitrary parent to do so.
1942 if (!WorkerServiceImpl::GetInstance()->GetRendererForWorker(
1943 info->child_id(), render_process_host_id, render_view_host_id)) {
1944 *render_process_host_id = -1;
1945 *render_view_host_id = -1;
1946 return false;
1947 }
1948 } else {
1949 *render_process_host_id = info->child_id();
1950 *render_view_host_id = info->route_id();
1951 }
1952 return true;
1953 } 1938 }
1954 1939
1955 net::URLRequest* ResourceDispatcherHost::GetURLRequest( 1940 net::URLRequest* ResourceDispatcherHost::GetURLRequest(
1956 const GlobalRequestID& request_id) const { 1941 const GlobalRequestID& request_id) const {
1957 // This should be running in the IO loop. 1942 // This should be running in the IO loop.
1958 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 1943 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
1959 1944
1960 PendingRequestList::const_iterator i = pending_requests_.find(request_id); 1945 PendingRequestList::const_iterator i = pending_requests_.find(request_id);
1961 if (i == pending_requests_.end()) 1946 if (i == pending_requests_.end())
1962 return NULL; 1947 return NULL;
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
2283 scoped_refptr<ResourceHandler> transferred_resource_handler( 2268 scoped_refptr<ResourceHandler> transferred_resource_handler(
2284 new DoomedResourceHandler(info->resource_handler())); 2269 new DoomedResourceHandler(info->resource_handler()));
2285 info->set_resource_handler(transferred_resource_handler.get()); 2270 info->set_resource_handler(transferred_resource_handler.get());
2286 } 2271 }
2287 2272
2288 bool ResourceDispatcherHost::IsTransferredNavigation( 2273 bool ResourceDispatcherHost::IsTransferredNavigation(
2289 const content::GlobalRequestID& transferred_request_id) const { 2274 const content::GlobalRequestID& transferred_request_id) const {
2290 return transferred_navigations_.find(transferred_request_id) != 2275 return transferred_navigations_.find(transferred_request_id) !=
2291 transferred_navigations_.end(); 2276 transferred_navigations_.end();
2292 } 2277 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698