Index: content/browser/loader_delegate_impl.cc |
diff --git a/content/browser/loader_delegate_impl.cc b/content/browser/loader_delegate_impl.cc |
index 51c014059cc373fb3162690b5540d87b9706b2eb..50b24e33b072df634b8073fdffc7949b9bface90 100644 |
--- a/content/browser/loader_delegate_impl.cc |
+++ b/content/browser/loader_delegate_impl.cc |
@@ -4,7 +4,9 @@ |
#include "content/browser/loader_delegate_impl.h" |
+#include "content/browser/frame_host/render_frame_host_impl.h" |
#include "content/browser/renderer_host/render_view_host_impl.h" |
+#include "content/browser/web_contents/web_contents_impl.h" |
#include "content/public/browser/browser_thread.h" |
namespace content { |
@@ -25,6 +27,28 @@ void LoaderDelegateImpl::LoadStateChanged( |
upload_position, upload_size)); |
} |
+void LoaderDelegateImpl::DidGetResourceResponseStart( |
+ int render_process_id, |
+ int render_frame_host, |
+ std::unique_ptr<ResourceRequestDetails> details) { |
+ BrowserThread::PostTask( |
+ BrowserThread::UI, FROM_HERE, |
+ base::Bind(&LoaderDelegateImpl::DidGetResourceResponseStartOnUI, |
+ base::Unretained(this), render_process_id, render_frame_host, |
+ base::Passed(std::move(details)))); |
+} |
+ |
+void LoaderDelegateImpl::DidGetRedirectForResourceRequest( |
+ int render_process_id, |
+ int render_frame_host, |
+ std::unique_ptr<ResourceRedirectDetails> details) { |
+ BrowserThread::PostTask( |
+ BrowserThread::UI, FROM_HERE, |
+ base::Bind(&LoaderDelegateImpl::DidGetRedirectForResourceRequestOnUI, |
+ base::Unretained(this), render_process_id, render_frame_host, |
mmenke
2016/06/29 15:17:13
What guarantees that the loader hasn't been delete
mmenke
2016/06/29 15:53:48
Actually...Everything we do on the UI thread can j
jam
2016/06/29 17:19:46
+1 to moving these methods to anonymous namespace
scottmg
2016/06/29 17:55:40
LoaderDelegate does need to outlive the RDH, I add
|
+ base::Passed(std::move(details)))); |
+} |
+ |
void LoaderDelegateImpl::NotifyLoadStateChangedOnUI( |
int child_id, |
int route_id, |
@@ -37,4 +61,30 @@ void LoaderDelegateImpl::NotifyLoadStateChangedOnUI( |
view->LoadStateChanged(url, load_state, upload_position, upload_size); |
} |
+void LoaderDelegateImpl::DidGetResourceResponseStartOnUI( |
+ int render_process_id, |
+ int render_frame_host, |
+ std::unique_ptr<ResourceRequestDetails> details) { |
+ RenderFrameHostImpl* host = |
+ RenderFrameHostImpl::FromID(render_process_id, render_frame_host); |
+ WebContentsImpl* web_contents = |
+ static_cast<WebContentsImpl*>(WebContents::FromRenderFrameHost(host)); |
+ if (!web_contents) |
+ return; |
+ web_contents->DidGetResourceResponseStart(*details.get()); |
+} |
+ |
+void LoaderDelegateImpl::DidGetRedirectForResourceRequestOnUI( |
+ int render_process_id, |
+ int render_frame_host, |
+ std::unique_ptr<ResourceRedirectDetails> details) { |
+ RenderFrameHostImpl* host = |
+ RenderFrameHostImpl::FromID(render_process_id, render_frame_host); |
+ WebContentsImpl* web_contents = |
+ static_cast<WebContentsImpl*>(WebContents::FromRenderFrameHost(host)); |
+ if (!web_contents) |
+ return; |
+ web_contents->DidGetRedirectForResourceRequest(host, *details.get()); |
+} |
+ |
} // namespace content |