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

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: fixes 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..36ba82a7287a33bf54b7f46b107b9e8acb4ce319 100644
--- a/content/browser/loader_delegate_impl.cc
+++ b/content/browser/loader_delegate_impl.cc
@@ -4,11 +4,54 @@
#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 {
+namespace {
+
+void NotifyLoadStateChangedOnUI(int child_id,
+ int route_id,
+ const GURL& url,
+ const net::LoadStateWithParam& load_state,
+ uint64_t upload_position,
+ uint64_t upload_size) {
+ RenderViewHostImpl* view = RenderViewHostImpl::FromID(child_id, route_id);
+ if (view)
+ view->LoadStateChanged(url, load_state, upload_position, upload_size);
+}
+
+void 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 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
+
LoaderDelegateImpl::~LoaderDelegateImpl() {}
void LoaderDelegateImpl::LoadStateChanged(
@@ -18,23 +61,33 @@ void LoaderDelegateImpl::LoadStateChanged(
const net::LoadStateWithParam& load_state,
uint64_t upload_position,
uint64_t upload_size) {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- base::Bind(&LoaderDelegateImpl::NotifyLoadStateChangedOnUI,
- base::Unretained(this), child_id, route_id, url, load_state,
- upload_position, upload_size));
+ base::Bind(&NotifyLoadStateChangedOnUI, child_id, route_id, url,
+ load_state, upload_position, upload_size));
}
-void LoaderDelegateImpl::NotifyLoadStateChangedOnUI(
- int child_id,
- int route_id,
- const GURL& url,
- const net::LoadStateWithParam& load_state,
- uint64_t upload_position,
- uint64_t upload_size) {
- RenderViewHostImpl* view = RenderViewHostImpl::FromID(child_id, route_id);
- if (view)
- view->LoadStateChanged(url, load_state, upload_position, upload_size);
+void LoaderDelegateImpl::DidGetResourceResponseStart(
+ int render_process_id,
+ int render_frame_host,
+ std::unique_ptr<ResourceRequestDetails> details) {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ BrowserThread::PostTask(
+ BrowserThread::UI, FROM_HERE,
+ base::Bind(&DidGetResourceResponseStartOnUI, 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) {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ BrowserThread::PostTask(
+ BrowserThread::UI, FROM_HERE,
+ base::Bind(&DidGetRedirectForResourceRequestOnUI, render_process_id,
+ render_frame_host, base::Passed(std::move(details))));
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698