Index: content/browser/browsing_instance.cc |
diff --git a/content/browser/browsing_instance.cc b/content/browser/browsing_instance.cc |
index d52d6e06f5056c9e73f5fafe2f86df1d228aa611..eec9d8d6f7bd35f3868f4bd4bb5a3e7ac124f241 100644 |
--- a/content/browser/browsing_instance.cc |
+++ b/content/browser/browsing_instance.cc |
@@ -14,8 +14,10 @@ |
#include "content/public/common/url_constants.h" |
// static |
-BrowsingInstance::ContextSiteInstanceMap |
- BrowsingInstance::context_site_instance_map_; |
+base::LazyInstance< |
+ BrowsingInstance::ContextSiteInstanceMap, |
+ base::LeakyLazyInstanceTraits<BrowsingInstance::ContextSiteInstanceMap> > |
+ BrowsingInstance::context_site_instance_map_(base::LINKER_INITIALIZED); |
BrowsingInstance::BrowsingInstance(content::BrowserContext* browser_context) |
: browser_context_(browser_context) { |
@@ -60,7 +62,7 @@ BrowsingInstance::SiteInstanceMap* BrowsingInstance::GetSiteInstanceMap( |
// Otherwise, process-per-site is in use, at least for this URL. Look up the |
// global map for this context, creating an entry if necessary. |
- return &context_site_instance_map_[browser_context]; |
+ return &context_site_instance_map_.Get()[browser_context]; |
} |
bool BrowsingInstance::HasSiteInstance(const GURL& url) { |
@@ -129,7 +131,9 @@ void BrowsingInstance::UnregisterSiteInstance(SiteInstance* site_instance) { |
if (!RemoveSiteInstanceFromMap(&site_instance_map_, site, site_instance)) { |
// Wasn't in our local map, so look in the static per-browser context map. |
RemoveSiteInstanceFromMap( |
- &context_site_instance_map_[browser_context_], site, site_instance); |
+ &context_site_instance_map_.Get()[browser_context_], |
+ site, |
+ site_instance); |
} |
} |