diff options
Diffstat (limited to 'chromium/content/browser/browsing_instance.cc')
-rw-r--r-- | chromium/content/browser/browsing_instance.cc | 42 |
1 files changed, 16 insertions, 26 deletions
diff --git a/chromium/content/browser/browsing_instance.cc b/chromium/content/browser/browsing_instance.cc index bf11dcb1ef1..54546d15ba4 100644 --- a/chromium/content/browser/browsing_instance.cc +++ b/chromium/content/browser/browsing_instance.cc @@ -60,9 +60,8 @@ bool BrowsingInstance::IsSiteInDefaultSiteInstance(const GURL& site_url) const { return site_url_set_.find(site_url) != site_url_set_.end(); } -bool BrowsingInstance::HasSiteInstance(const GURL& url) { - std::string site = GetSiteInfoForURL(url).site_url().possibly_invalid_spec(); - return site_instance_map_.find(site) != site_instance_map_.end(); +bool BrowsingInstance::HasSiteInstance(const SiteInfo& site_info) { + return site_instance_map_.find(site_info) != site_instance_map_.end(); } scoped_refptr<SiteInstanceImpl> BrowsingInstance::GetSiteInstanceForURL( @@ -84,22 +83,15 @@ scoped_refptr<SiteInstanceImpl> BrowsingInstance::GetSiteInstanceForURL( return instance; } -void BrowsingInstance::GetSiteAndLockForURL(const GURL& url, - bool allow_default_instance, - GURL* site_url, - GURL* lock_url) { +SiteInfo BrowsingInstance::GetSiteInfoForURL(const GURL& url, + bool allow_default_instance) { scoped_refptr<SiteInstanceImpl> site_instance = GetSiteInstanceForURLHelper(url, allow_default_instance); - if (site_instance) { - *site_url = site_instance->GetSiteURL(); - *lock_url = site_instance->lock_url(); - return; - } + if (site_instance) + return site_instance->GetSiteInfo(); - *site_url = GetSiteInfoForURL(url).site_url(); - *lock_url = - SiteInstanceImpl::DetermineProcessLockURL(isolation_context_, url); + return SiteInstanceImpl::ComputeSiteInfo(isolation_context_, url); } bool BrowsingInstance::TrySettingDefaultSiteInstance( @@ -124,16 +116,16 @@ bool BrowsingInstance::TrySettingDefaultSiteInstance( scoped_refptr<SiteInstanceImpl> BrowsingInstance::GetSiteInstanceForURLHelper( const GURL& url, bool allow_default_instance) { - const GURL site_url = GetSiteInfoForURL(url).site_url(); - auto i = site_instance_map_.find(site_url.possibly_invalid_spec()); + const SiteInfo site_info = GetSiteInfoForURL(url); + auto i = site_instance_map_.find(site_info); if (i != site_instance_map_.end()) return i->second; // Check to see if we can use the default SiteInstance for sites that don't // need to be isolated in their own process. if (allow_default_instance && - SiteInstanceImpl::CanBePlacedInDefaultSiteInstance(isolation_context_, - url, site_url)) { + SiteInstanceImpl::CanBePlacedInDefaultSiteInstance( + isolation_context_, url, site_info.site_url())) { DCHECK(!default_process_); scoped_refptr<SiteInstanceImpl> site_instance = default_site_instance_; if (!site_instance) { @@ -153,7 +145,7 @@ scoped_refptr<SiteInstanceImpl> BrowsingInstance::GetSiteInstanceForURLHelper( // Add |site_url| to the set so we can keep track of all the sites the // the default SiteInstance has been returned for. - site_url_set_.insert(site_url); + site_url_set_.insert(site_info.site_url()); return site_instance; } @@ -169,17 +161,17 @@ void BrowsingInstance::RegisterSiteInstance(SiteInstanceImpl* site_instance) { if (site_instance == default_site_instance_) return; - std::string site = site_instance->GetSiteURL().possibly_invalid_spec(); + const SiteInfo& site_info = site_instance->GetSiteInfo(); // Only register if we don't have a SiteInstance for this site already. // It's possible to have two SiteInstances point to the same site if two // tabs are navigated there at the same time. (We don't call SetSite or // register them until DidNavigate.) If there is a previously existing // SiteInstance for this site, we just won't register the new one. - auto i = site_instance_map_.find(site); + auto i = site_instance_map_.find(site_info); if (i == site_instance_map_.end()) { // Not previously registered, so register it. - site_instance_map_[site] = site_instance; + site_instance_map_[site_info] = site_instance; } } @@ -192,12 +184,10 @@ void BrowsingInstance::UnregisterSiteInstance(SiteInstanceImpl* site_instance) { default_site_instance_ = nullptr; } - std::string site = site_instance->GetSiteURL().possibly_invalid_spec(); - // Only unregister the SiteInstance if it is the same one that is registered // for the site. (It might have been an unregistered SiteInstance. See the // comments in RegisterSiteInstance.) - auto i = site_instance_map_.find(site); + auto i = site_instance_map_.find(site_instance->GetSiteInfo()); if (i != site_instance_map_.end() && i->second == site_instance) { // Matches, so erase it. site_instance_map_.erase(i); |