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

Unified Diff: content/browser/web_contents/web_contents_impl.cc

Issue 241223002: Start using RenderFrameProxyHost objects. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moar fixes. Created 6 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
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/common/frame_messages.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/web_contents/web_contents_impl.cc
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 2dd5a8c5656636e81c0b1badbc9721027901ea9b..682d9974cf0f01f0250987c1e4562adfa6cef73c 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -3429,10 +3429,18 @@ void WebContentsImpl::UpdateState(RenderViewHost* rvh,
// TODO(nasko): This should go through RenderFrameHost.
// TODO(creis): We can't update state for cross-process subframes until we
// have FrameNavigationEntries. Once we do, this should be a DCHECK.
+ LOG(ERROR) << "WCI::UpdateState: "
+ << rvh->GetProcess()->GetID()
+ << ":" << rvh->GetRoutingID()
+ << ":" << rvh->GetSiteInstance()->GetSiteURL()
+ << ":" << GetRenderManager();
+
if (rvh != GetRenderViewHost() &&
!GetRenderManager()->IsRVHOnSwappedOutList(
- static_cast<RenderViewHostImpl*>(rvh)))
+ static_cast<RenderViewHostImpl*>(rvh))) {
+ LOG(ERROR) << "WCI::UpdateState: rvh is not a match.";
return;
+ }
// We must be prepared to handle state updates for any page, these occur
// when the user is scrolling and entering form data, as well as when we're
@@ -3717,7 +3725,7 @@ WebPreferences WebContentsImpl::GetWebkitPrefs() {
int WebContentsImpl::CreateSwappedOutRenderView(
SiteInstance* instance) {
return GetRenderManager()->CreateRenderFrame(instance, MSG_ROUTING_NONE,
- true, true);
+ true, true, true);
}
void WebContentsImpl::OnUserGesture() {
@@ -3882,7 +3890,7 @@ int WebContentsImpl::CreateOpenerRenderViews(SiteInstance* instance) {
// Create a swapped out RenderView in the given SiteInstance if none exists,
// setting its opener to the given route_id. Return the new view's route_id.
return GetRenderManager()->CreateRenderFrame(instance, opener_route_id,
- true, true);
+ true, true, true);
}
NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() {
@@ -3904,6 +3912,8 @@ bool WebContentsImpl::CreateRenderViewForRenderManager(
int proxy_routing_id,
bool for_main_frame) {
TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderViewForRenderManager");
+ LOG(ERROR) << "WC::CreateRenderViewForRenderManager: "
+ << "for_main_frame:" << for_main_frame;
// Can be NULL during tests.
RenderWidgetHostViewBase* rwh_view;
// TODO(kenrb): RenderWidgetHostViewChildFrame special casing is temporary
@@ -3948,6 +3958,24 @@ bool WebContentsImpl::CreateRenderViewForRenderManager(
return true;
}
+bool WebContentsImpl::CreateRenderFrameForRenderManager(
+ RenderFrameHost* render_frame_host,
+ int parent_routing_id) {
+ TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderFrameForRenderManager");
+
+ RenderFrameHostImpl* rfh =
+ static_cast<RenderFrameHostImpl*>(render_frame_host);
+ if (!rfh->CreateRenderFrame(parent_routing_id))
+ return false;
+
+ // TODO(nasko): When RenderWidgetHost is owned by RenderFrameHost, the passed
+ // RenderFrameHost will have to be associated with the appropriate
+ // RenderWidgetHostView or a new one should be created here.
+
+ return true;
+}
+
+
#if defined(OS_ANDROID)
base::android::ScopedJavaLocalRef<jobject>
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/common/frame_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698