Index: content/browser/frame_host/render_frame_host_manager.cc |
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc |
index a24d736e005df4ab896dbd649d998c286bf3a08f..ae44d2f97533aab47b111ef4a95328b52a3c86f3 100644 |
--- a/content/browser/frame_host/render_frame_host_manager.cc |
+++ b/content/browser/frame_host/render_frame_host_manager.cc |
@@ -84,7 +84,7 @@ RenderFrameHostManager::~RenderFrameHostManager() { |
SetRenderFrameHost(scoped_ptr<RenderFrameHostImpl>()); |
} |
-void RenderFrameHostManager::Init(SiteInstance* site_instance, |
+void RenderFrameHostManager::Init(SiteInstanceImpl* site_instance, |
int32_t view_routing_id, |
int32_t frame_routing_id, |
int32_t widget_routing_id) { |
@@ -564,7 +564,7 @@ void RenderFrameHostManager::CommitPendingIfNecessary( |
void RenderFrameHostManager::DidChangeOpener( |
int opener_routing_id, |
- SiteInstance* source_site_instance) { |
+ SiteInstanceImpl* source_site_instance) { |
FrameTreeNode* opener = nullptr; |
if (opener_routing_id != MSG_ROUTING_NONE) { |
RenderFrameHostImpl* opener_rfhi = RenderFrameHostImpl::FromID( |
@@ -614,7 +614,7 @@ void RenderFrameHostManager::CommitPendingSandboxFlags() { |
// Notify all of the frame's proxies about updated sandbox flags, excluding |
// the parent process since it already knows the latest flags. |
- SiteInstance* parent_site_instance = |
+ SiteInstanceImpl* parent_site_instance = |
frame_tree_node_->parent()->current_frame_host()->GetSiteInstance(); |
for (const auto& pair : proxy_hosts_) { |
if (pair.second->GetSiteInstance() != parent_site_instance) { |
@@ -783,19 +783,21 @@ RenderFrameHostImpl* RenderFrameHostManager::GetFrameHostForNavigation( |
const NavigationRequest& request) { |
CHECK(IsBrowserSideNavigationEnabled()); |
- SiteInstance* current_site_instance = render_frame_host_->GetSiteInstance(); |
+ SiteInstanceImpl* current_site_instance = |
+ render_frame_host_->GetSiteInstance(); |
- SiteInstance* candidate_site_instance = |
+ SiteInstanceImpl* candidate_site_instance = |
speculative_render_frame_host_ |
? speculative_render_frame_host_->GetSiteInstance() |
: nullptr; |
- scoped_refptr<SiteInstance> dest_site_instance = GetSiteInstanceForNavigation( |
- request.common_params().url, request.source_site_instance(), |
- request.dest_site_instance(), candidate_site_instance, |
- request.common_params().transition, |
- request.restore_type() != NavigationEntryImpl::RESTORE_NONE, |
- request.is_view_source()); |
+ scoped_refptr<SiteInstanceImpl> dest_site_instance = |
+ GetSiteInstanceForNavigation( |
+ request.common_params().url, request.source_site_instance(), |
+ request.dest_site_instance(), candidate_site_instance, |
+ request.common_params().transition, |
+ request.restore_type() != NavigationEntryImpl::RESTORE_NONE, |
+ request.is_view_source()); |
// The appropriate RenderFrameHost to commit the navigation. |
RenderFrameHostImpl* navigation_rfh = nullptr; |
@@ -1018,7 +1020,7 @@ void RenderFrameHostManager::ActiveFrameCountIsZero( |
} |
RenderFrameProxyHost* RenderFrameHostManager::CreateRenderFrameProxyHost( |
- SiteInstance* site_instance, |
+ SiteInstanceImpl* site_instance, |
RenderViewHostImpl* rvh) { |
int site_instance_id = site_instance->GetId(); |
CHECK(proxy_hosts_.find(site_instance_id) == proxy_hosts_.end()) |
@@ -1031,7 +1033,7 @@ RenderFrameProxyHost* RenderFrameHostManager::CreateRenderFrameProxyHost( |
} |
void RenderFrameHostManager::DeleteRenderFrameProxyHost( |
- SiteInstance* site_instance) { |
+ SiteInstanceImpl* site_instance) { |
static_cast<SiteInstanceImpl*>(site_instance)->RemoveObserver(this); |
proxy_hosts_.erase(site_instance->GetId()); |
} |
@@ -1063,7 +1065,7 @@ bool RenderFrameHostManager::ShouldTransitionCrossSite() { |
bool RenderFrameHostManager::ShouldSwapBrowsingInstancesForNavigation( |
const GURL& current_effective_url, |
bool current_is_view_source_mode, |
- SiteInstance* new_site_instance, |
+ SiteInstanceImpl* new_site_instance, |
const GURL& new_effective_url, |
bool new_is_view_source_mode) const { |
// A subframe must stay in the same BrowsingInstance as its parent. |
@@ -1138,16 +1140,16 @@ bool RenderFrameHostManager::ShouldSwapBrowsingInstancesForNavigation( |
return false; |
} |
-scoped_refptr<SiteInstance> |
+scoped_refptr<SiteInstanceImpl> |
RenderFrameHostManager::GetSiteInstanceForNavigation( |
const GURL& dest_url, |
- SiteInstance* source_instance, |
- SiteInstance* dest_instance, |
- SiteInstance* candidate_instance, |
+ SiteInstanceImpl* source_instance, |
+ SiteInstanceImpl* dest_instance, |
+ SiteInstanceImpl* candidate_instance, |
ui::PageTransition transition, |
bool dest_is_restore, |
bool dest_is_view_source_mode) { |
- SiteInstance* current_instance = render_frame_host_->GetSiteInstance(); |
+ SiteInstanceImpl* current_instance = render_frame_host_->GetSiteInstance(); |
// We do not currently swap processes for navigations in webview tag guests. |
if (current_instance->GetSiteURL().SchemeIs(kGuestScheme)) |
@@ -1183,7 +1185,7 @@ RenderFrameHostManager::GetSiteInstanceForNavigation( |
dest_is_restore, dest_is_view_source_mode, force_swap); |
} |
- scoped_refptr<SiteInstance> new_instance = |
+ scoped_refptr<SiteInstanceImpl> new_instance = |
ConvertToSiteInstance(new_instance_descriptor, candidate_instance); |
// If |force_swap| is true, we must use a different SiteInstance than the |
// current one. If we didn't, we would have two RenderFrameHosts in the same |
@@ -1198,9 +1200,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigation( |
RenderFrameHostManager::SiteInstanceDescriptor |
RenderFrameHostManager::DetermineSiteInstanceForURL( |
const GURL& dest_url, |
- SiteInstance* source_instance, |
- SiteInstance* current_instance, |
- SiteInstance* dest_instance, |
+ SiteInstanceImpl* source_instance, |
+ SiteInstanceImpl* current_instance, |
+ SiteInstanceImpl* dest_instance, |
ui::PageTransition transition, |
bool dest_is_restore, |
bool dest_is_view_source_mode, |
@@ -1441,9 +1443,9 @@ bool RenderFrameHostManager::IsRendererTransferNeededForNavigation( |
return false; |
} |
-scoped_refptr<SiteInstance> RenderFrameHostManager::ConvertToSiteInstance( |
+scoped_refptr<SiteInstanceImpl> RenderFrameHostManager::ConvertToSiteInstance( |
const SiteInstanceDescriptor& descriptor, |
- SiteInstance* candidate_instance) { |
+ SiteInstanceImpl* candidate_instance) { |
SiteInstanceImpl* current_instance = render_frame_host_->GetSiteInstance(); |
// Note: If the |candidate_instance| matches the descriptor, it will already |
@@ -1454,7 +1456,8 @@ scoped_refptr<SiteInstance> RenderFrameHostManager::ConvertToSiteInstance( |
// Note: If the |candidate_instance| matches the descriptor, |
// GetRelatedSiteInstance will return it. |
if (descriptor.relation == SiteInstanceRelation::RELATED) |
- return current_instance->GetRelatedSiteInstance(descriptor.new_site_url); |
+ return current_instance->GetRelatedSiteInstanceImpl( |
+ descriptor.new_site_url); |
if (descriptor.relation == SiteInstanceRelation::RELATED_DEFAULT_SUBFRAME) |
return current_instance->GetDefaultSubframeSiteInstance(); |
@@ -1468,7 +1471,7 @@ scoped_refptr<SiteInstance> RenderFrameHostManager::ConvertToSiteInstance( |
} |
// Otherwise return a newly created one. |
- return SiteInstance::CreateForURL( |
+ return SiteInstanceImpl::CreateForURL( |
delegate_->GetControllerForRenderManager().GetBrowserContext(), |
descriptor.new_site_url); |
} |
@@ -1519,8 +1522,8 @@ bool RenderFrameHostManager::IsCurrentlySameSite(RenderFrameHostImpl* candidate, |
} |
void RenderFrameHostManager::CreatePendingRenderFrameHost( |
- SiteInstance* old_instance, |
- SiteInstance* new_instance) { |
+ SiteInstanceImpl* old_instance, |
+ SiteInstanceImpl* new_instance) { |
if (pending_render_frame_host_) |
CancelPending(); |
@@ -1539,8 +1542,8 @@ void RenderFrameHostManager::CreatePendingRenderFrameHost( |
} |
void RenderFrameHostManager::CreateProxiesForNewRenderFrameHost( |
- SiteInstance* old_instance, |
- SiteInstance* new_instance) { |
+ SiteInstanceImpl* old_instance, |
+ SiteInstanceImpl* new_instance) { |
// Only create opener proxies if they are in the same BrowsingInstance. |
if (new_instance->IsRelatedSiteInstance(old_instance)) { |
CreateOpenerProxies(new_instance, frame_tree_node_); |
@@ -1572,7 +1575,7 @@ void RenderFrameHostManager::CreateProxiesForNewNamedFrame() { |
FrameTreeNode* opener = frame_tree_node_->opener(); |
if (!opener || !frame_tree_node_->IsMainFrame()) |
return; |
- SiteInstance* current_instance = render_frame_host_->GetSiteInstance(); |
+ SiteInstanceImpl* current_instance = render_frame_host_->GetSiteInstance(); |
// Start from opener's parent. There's no need to create a proxy in the |
// opener's SiteInstance, since new windows are always first opened in the |
@@ -1587,7 +1590,7 @@ void RenderFrameHostManager::CreateProxiesForNewNamedFrame() { |
} |
scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrameHost( |
- SiteInstance* site_instance, |
+ SiteInstanceImpl* site_instance, |
int32_t view_routing_id, |
int32_t frame_routing_id, |
int32_t widget_routing_id, |
@@ -1628,8 +1631,8 @@ scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrameHost( |
// PlzNavigate |
bool RenderFrameHostManager::CreateSpeculativeRenderFrameHost( |
- SiteInstance* old_instance, |
- SiteInstance* new_instance) { |
+ SiteInstanceImpl* old_instance, |
+ SiteInstanceImpl* new_instance) { |
CHECK(new_instance); |
CHECK_NE(old_instance, new_instance); |
@@ -1649,7 +1652,7 @@ bool RenderFrameHostManager::CreateSpeculativeRenderFrameHost( |
} |
scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrame( |
- SiteInstance* instance, |
+ SiteInstanceImpl* instance, |
bool hidden, |
int* view_routing_id_ptr) { |
int32_t widget_routing_id = MSG_ROUTING_NONE; |
@@ -1726,7 +1729,7 @@ scoped_ptr<RenderFrameHostImpl> RenderFrameHostManager::CreateRenderFrame( |
return nullptr; |
} |
-int RenderFrameHostManager::CreateRenderFrameProxy(SiteInstance* instance) { |
+int RenderFrameHostManager::CreateRenderFrameProxy(SiteInstanceImpl* instance) { |
// A RenderFrameProxyHost should never be created in the same SiteInstance as |
// the current RFH. |
CHECK(instance); |
@@ -1776,7 +1779,7 @@ void RenderFrameHostManager::CreateProxiesForChildFrame(FrameTreeNode* child) { |
void RenderFrameHostManager::EnsureRenderViewInitialized( |
RenderViewHostImpl* render_view_host, |
- SiteInstance* instance) { |
+ SiteInstanceImpl* instance) { |
DCHECK(frame_tree_node_->IsMainFrame()); |
if (render_view_host->IsRenderViewLive()) |
@@ -1792,7 +1795,7 @@ void RenderFrameHostManager::EnsureRenderViewInitialized( |
} |
void RenderFrameHostManager::CreateOuterDelegateProxy( |
- SiteInstance* outer_contents_site_instance, |
+ SiteInstanceImpl* outer_contents_site_instance, |
RenderFrameHostImpl* render_frame_host) { |
CHECK(BrowserPluginGuestMode::UseCrossProcessFramesForGuests()); |
RenderFrameProxyHost* proxy = |
@@ -1850,7 +1853,7 @@ bool RenderFrameHostManager::InitRenderFrame( |
if (render_frame_host->IsRenderFrameLive()) |
return true; |
- SiteInstance* site_instance = render_frame_host->GetSiteInstance(); |
+ SiteInstanceImpl* site_instance = render_frame_host->GetSiteInstance(); |
int opener_routing_id = MSG_ROUTING_NONE; |
if (frame_tree_node_->opener()) |
@@ -1930,7 +1933,7 @@ bool RenderFrameHostManager::InitRenderFrame( |
base::debug::SetCrashKeyValue("initrf_parent_proxy_exists", |
parent_proxy ? "yes" : "no"); |
- SiteInstance* parent_instance = |
+ SiteInstanceImpl* parent_instance = |
frame_tree_node_->parent()->current_frame_host()->GetSiteInstance(); |
base::debug::SetCrashKeyValue( |
"initrf_parent_is_in_same_site_instance", |
@@ -1951,7 +1954,7 @@ bool RenderFrameHostManager::InitRenderFrame( |
// from the parent. |
FrameTreeNode* root = frame_tree_node_->frame_tree()->root(); |
if (root != frame_tree_node_->parent()) { |
- SiteInstance* root_instance = |
+ SiteInstanceImpl* root_instance = |
root->current_frame_host()->GetSiteInstance(); |
base::debug::SetCrashKeyValue( |
"initrf_root_is_in_same_site_instance", |
@@ -1987,7 +1990,7 @@ bool RenderFrameHostManager::InitRenderFrame( |
} |
int RenderFrameHostManager::GetRoutingIdForSiteInstance( |
- SiteInstance* site_instance) { |
+ SiteInstanceImpl* site_instance) { |
if (render_frame_host_->GetSiteInstance() == site_instance) |
return render_frame_host_->GetRoutingID(); |
@@ -2143,8 +2146,8 @@ void RenderFrameHostManager::CommitPending() { |
RenderFrameHostImpl* RenderFrameHostManager::UpdateStateForNavigate( |
const GURL& dest_url, |
- SiteInstance* source_instance, |
- SiteInstance* dest_instance, |
+ SiteInstanceImpl* source_instance, |
+ SiteInstanceImpl* dest_instance, |
ui::PageTransition transition, |
bool dest_is_restore, |
bool dest_is_view_source_mode, |
@@ -2180,8 +2183,8 @@ RenderFrameHostImpl* RenderFrameHostManager::UpdateStateForNavigate( |
} |
} |
- SiteInstance* current_instance = render_frame_host_->GetSiteInstance(); |
- scoped_refptr<SiteInstance> new_instance = GetSiteInstanceForNavigation( |
+ SiteInstanceImpl* current_instance = render_frame_host_->GetSiteInstance(); |
+ scoped_refptr<SiteInstanceImpl> new_instance = GetSiteInstanceForNavigation( |
dest_url, source_instance, dest_instance, nullptr, transition, |
dest_is_restore, dest_is_view_source_mode); |
@@ -2388,7 +2391,7 @@ bool RenderFrameHostManager::IsOnSwappedOutList( |
} |
RenderViewHostImpl* RenderFrameHostManager::GetSwappedOutRenderViewHost( |
- SiteInstance* instance) const { |
+ SiteInstance* instance) const { |
RenderFrameProxyHost* proxy = GetRenderFrameProxyHost(instance); |
if (proxy) |
return proxy->GetRenderViewHost(); |
@@ -2397,7 +2400,8 @@ RenderViewHostImpl* RenderFrameHostManager::GetSwappedOutRenderViewHost( |
RenderFrameProxyHost* RenderFrameHostManager::GetRenderFrameProxyHost( |
SiteInstance* instance) const { |
- auto it = proxy_hosts_.find(instance->GetId()); |
+ auto it = |
+ proxy_hosts_.find(static_cast<SiteInstanceImpl*>(instance)->GetId()); |
if (it != proxy_hosts_.end()) |
return it->second.get(); |
return nullptr; |
@@ -2450,7 +2454,7 @@ void RenderFrameHostManager::CollectOpenerFrameTrees( |
} |
void RenderFrameHostManager::CreateOpenerProxies( |
- SiteInstance* instance, |
+ SiteInstanceImpl* instance, |
FrameTreeNode* skip_this_node) { |
std::vector<FrameTree*> opener_frame_trees; |
base::hash_set<FrameTreeNode*> nodes_with_back_links; |
@@ -2492,7 +2496,7 @@ void RenderFrameHostManager::CreateOpenerProxies( |
} |
void RenderFrameHostManager::CreateOpenerProxiesForFrameTree( |
- SiteInstance* instance, |
+ SiteInstanceImpl* instance, |
FrameTreeNode* skip_this_node) { |
// Currently, this function is only called on main frames. It should |
// actually work correctly for subframes as well, so if that need ever |
@@ -2540,7 +2544,7 @@ void RenderFrameHostManager::CreateOpenerProxiesForFrameTree( |
} |
} |
-int RenderFrameHostManager::GetOpenerRoutingID(SiteInstance* instance) { |
+int RenderFrameHostManager::GetOpenerRoutingID(SiteInstanceImpl* instance) { |
if (!frame_tree_node_->opener()) |
return MSG_ROUTING_NONE; |