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

Unified Diff: content/browser/loader_delegate_impl.cc

Issue 2108643004: Remove use of WebContentsImpl from ResourceDispatcherHostImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@render-view-try-3
Patch Set: Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698