OLD | NEW |
---|---|
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 "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate. h" | 5 #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate. h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/base64.h" | 10 #include "base/base64.h" |
(...skipping 25 matching lines...) Expand all Loading... | |
36 #include "chrome/common/url_constants.h" | 36 #include "chrome/common/url_constants.h" |
37 #include "components/google/core/browser/google_util.h" | 37 #include "components/google/core/browser/google_util.h" |
38 #include "components/variations/variations_http_header_provider.h" | 38 #include "components/variations/variations_http_header_provider.h" |
39 #include "content/public/browser/browser_thread.h" | 39 #include "content/public/browser/browser_thread.h" |
40 #include "content/public/browser/notification_service.h" | 40 #include "content/public/browser/notification_service.h" |
41 #include "content/public/browser/render_process_host.h" | 41 #include "content/public/browser/render_process_host.h" |
42 #include "content/public/browser/render_view_host.h" | 42 #include "content/public/browser/render_view_host.h" |
43 #include "content/public/browser/resource_context.h" | 43 #include "content/public/browser/resource_context.h" |
44 #include "content/public/browser/resource_dispatcher_host.h" | 44 #include "content/public/browser/resource_dispatcher_host.h" |
45 #include "content/public/browser/resource_request_info.h" | 45 #include "content/public/browser/resource_request_info.h" |
46 #include "content/public/browser/stream_handle.h" | 46 #include "content/public/browser/stream_info.h" |
47 #include "content/public/browser/web_contents.h" | 47 #include "content/public/browser/web_contents.h" |
48 #include "content/public/common/resource_response.h" | 48 #include "content/public/common/resource_response.h" |
49 #include "net/base/load_flags.h" | 49 #include "net/base/load_flags.h" |
50 #include "net/base/load_timing_info.h" | 50 #include "net/base/load_timing_info.h" |
51 #include "net/base/request_priority.h" | 51 #include "net/base/request_priority.h" |
52 #include "net/http/http_response_headers.h" | 52 #include "net/http/http_response_headers.h" |
53 #include "net/url_request/url_request.h" | 53 #include "net/url_request/url_request.h" |
54 | 54 |
55 #if !defined(DISABLE_NACL) | 55 #if !defined(DISABLE_NACL) |
56 #include "chrome/browser/component_updater/pnacl/pnacl_component_installer.h" | 56 #include "chrome/browser/component_updater/pnacl/pnacl_component_installer.h" |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
159 if (prerender_contents) | 159 if (prerender_contents) |
160 prerender_contents->AddNetworkBytes(bytes); | 160 prerender_contents->AddNetworkBytes(bytes); |
161 | 161 |
162 prerender::PrerenderManager* prerender_manager = | 162 prerender::PrerenderManager* prerender_manager = |
163 GetPrerenderManager(render_process_id, render_view_id); | 163 GetPrerenderManager(render_process_id, render_view_id); |
164 if (prerender_manager) | 164 if (prerender_manager) |
165 prerender_manager->AddProfileNetworkBytesIfEnabled(bytes); | 165 prerender_manager->AddProfileNetworkBytesIfEnabled(bytes); |
166 } | 166 } |
167 | 167 |
168 #if defined(ENABLE_EXTENSIONS) | 168 #if defined(ENABLE_EXTENSIONS) |
169 void SendExecuteMimeTypeHandlerEvent(scoped_ptr<content::StreamHandle> stream, | 169 void SendExecuteMimeTypeHandlerEvent(scoped_ptr<content::StreamInfo> stream, |
170 int64 expected_content_size, | 170 int64 expected_content_size, |
171 int render_process_id, | 171 int render_process_id, |
172 int render_view_id, | 172 int render_view_id, |
173 const std::string& extension_id, | 173 const std::string& extension_id, |
174 const std::string& view_id) { | 174 const std::string& view_id) { |
175 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 175 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
176 | 176 |
177 content::WebContents* web_contents = | 177 content::WebContents* web_contents = |
178 tab_util::GetWebContentsByID(render_process_id, render_view_id); | 178 tab_util::GetWebContentsByID(render_process_id, render_view_id); |
179 if (!web_contents) | 179 if (!web_contents) |
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
604 stream_target_info_[request] = target_info; | 604 stream_target_info_[request] = target_info; |
605 return true; | 605 return true; |
606 } | 606 } |
607 } | 607 } |
608 #endif | 608 #endif |
609 return false; | 609 return false; |
610 } | 610 } |
611 | 611 |
612 void ChromeResourceDispatcherHostDelegate::OnStreamCreated( | 612 void ChromeResourceDispatcherHostDelegate::OnStreamCreated( |
613 net::URLRequest* request, | 613 net::URLRequest* request, |
614 scoped_ptr<content::StreamHandle> stream) { | 614 scoped_ptr<content::StreamInfo> stream) { |
615 #if defined(ENABLE_EXTENSIONS) | 615 #if defined(ENABLE_EXTENSIONS) |
616 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); | 616 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); |
617 std::map<net::URLRequest*, StreamTargetInfo>::iterator ix = | 617 std::map<net::URLRequest*, StreamTargetInfo>::iterator ix = |
618 stream_target_info_.find(request); | 618 stream_target_info_.find(request); |
619 CHECK(ix != stream_target_info_.end()); | 619 CHECK(ix != stream_target_info_.end()); |
620 content::BrowserThread::PostTask( | 620 content::BrowserThread::PostTask( |
621 content::BrowserThread::UI, FROM_HERE, | 621 content::BrowserThread::UI, FROM_HERE, |
622 base::Bind(&SendExecuteMimeTypeHandlerEvent, base::Passed(&stream), | 622 base::Bind(&SendExecuteMimeTypeHandlerEvent, base::Passed(&stream), |
clamy
2014/09/12 20:51:25
StreamInfo now contains a scoped_refptr of a Resou
davidben
2014/09/19 18:30:49
Apparently the answer is no, it's not thread-safe.
| |
623 request->GetExpectedContentSize(), | 623 request->GetExpectedContentSize(), |
624 info->GetChildID(), info->GetRouteID(), | 624 info->GetChildID(), info->GetRouteID(), |
625 ix->second.extension_id, ix->second.view_id)); | 625 ix->second.extension_id, ix->second.view_id)); |
626 stream_target_info_.erase(request); | 626 stream_target_info_.erase(request); |
627 #endif | 627 #endif |
628 } | 628 } |
629 | 629 |
630 void ChromeResourceDispatcherHostDelegate::OnResponseStarted( | 630 void ChromeResourceDispatcherHostDelegate::OnResponseStarted( |
631 net::URLRequest* request, | 631 net::URLRequest* request, |
632 content::ResourceContext* resource_context, | 632 content::ResourceContext* resource_context, |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
735 url_request->GetTotalReceivedBytes())); | 735 url_request->GetTotalReceivedBytes())); |
736 } | 736 } |
737 } | 737 } |
738 | 738 |
739 // static | 739 // static |
740 void ChromeResourceDispatcherHostDelegate:: | 740 void ChromeResourceDispatcherHostDelegate:: |
741 SetExternalProtocolHandlerDelegateForTesting( | 741 SetExternalProtocolHandlerDelegateForTesting( |
742 ExternalProtocolHandler::Delegate* delegate) { | 742 ExternalProtocolHandler::Delegate* delegate) { |
743 g_external_protocol_handler_delegate = delegate; | 743 g_external_protocol_handler_delegate = delegate; |
744 } | 744 } |
OLD | NEW |