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

Side by Side Diff: content/browser/resource_context_impl.cc

Issue 9466031: Fix race condition where the items on ResourceContext's UserData map were rewritten to the same val… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/browser/resource_context_impl.h ('k') | tools/valgrind/tsan/suppressions.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/resource_context_impl.h" 5 #include "content/browser/resource_context_impl.h"
6 6
7 #include "content/browser/appcache/chrome_appcache_service.h" 7 #include "content/browser/appcache/chrome_appcache_service.h"
8 #include "content/browser/chrome_blob_storage_context.h" 8 #include "content/browser/chrome_blob_storage_context.h"
9 #include "content/browser/file_system/browser_file_system_helper.h" 9 #include "content/browser/file_system/browser_file_system_helper.h"
10 #include "content/browser/host_zoom_map_impl.h" 10 #include "content/browser/host_zoom_map_impl.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 ResourceContext* resource_context) { 72 ResourceContext* resource_context) {
73 return UserDataAdapter<ChromeBlobStorageContext>::Get( 73 return UserDataAdapter<ChromeBlobStorageContext>::Get(
74 resource_context, kBlobStorageContextKeyName); 74 resource_context, kBlobStorageContextKeyName);
75 } 75 }
76 76
77 HostZoomMap* GetHostZoomMapForResourceContext(ResourceContext* context) { 77 HostZoomMap* GetHostZoomMapForResourceContext(ResourceContext* context) {
78 return static_cast<NonOwningZoomData*>( 78 return static_cast<NonOwningZoomData*>(
79 context->GetUserData(kHostZoomMapKeyName))->host_zoom_map(); 79 context->GetUserData(kHostZoomMapKeyName))->host_zoom_map();
80 } 80 }
81 81
82 void EnsureResourceContextInitialized(BrowserContext* browser_context) { 82 void InitializeResourceContext(BrowserContext* browser_context) {
83 ResourceContext* resource_context = browser_context->GetResourceContext(); 83 ResourceContext* resource_context = browser_context->GetResourceContext();
84 if (resource_context->GetUserData(kIndexedDBContextKeyName)) { 84 DCHECK(!resource_context->GetUserData(kIndexedDBContextKeyName));
85 DCHECK(resource_context->GetUserData(kAppCacheServicKeyName));
86 DCHECK(resource_context->GetUserData(kBlobStorageContextKeyName));
87 DCHECK(resource_context->GetUserData(kDatabaseTrackerKeyName));
88 DCHECK(resource_context->GetUserData(kFileSystemContextKeyName));
89 DCHECK(resource_context->GetUserData(kHostZoomMapKeyName));
90 return;
91 }
92 85
93 resource_context->SetUserData( 86 resource_context->SetUserData(
94 kIndexedDBContextKeyName, 87 kIndexedDBContextKeyName,
95 new UserDataAdapter<IndexedDBContextImpl>( 88 new UserDataAdapter<IndexedDBContextImpl>(
96 static_cast<IndexedDBContextImpl*>( 89 static_cast<IndexedDBContextImpl*>(
97 BrowserContext::GetIndexedDBContext(browser_context)))); 90 BrowserContext::GetIndexedDBContext(browser_context))));
98 resource_context->SetUserData( 91 resource_context->SetUserData(
99 kDatabaseTrackerKeyName, 92 kDatabaseTrackerKeyName,
100 new UserDataAdapter<webkit_database::DatabaseTracker>( 93 new UserDataAdapter<webkit_database::DatabaseTracker>(
101 BrowserContext::GetDatabaseTracker(browser_context))); 94 BrowserContext::GetDatabaseTracker(browser_context)));
(...skipping 13 matching lines...) Expand all
115 108
116 // This object is owned by the BrowserContext and not ResourceContext, so 109 // This object is owned by the BrowserContext and not ResourceContext, so
117 // store a non-owning pointer here. 110 // store a non-owning pointer here.
118 resource_context->SetUserData( 111 resource_context->SetUserData(
119 kHostZoomMapKeyName, 112 kHostZoomMapKeyName,
120 new NonOwningZoomData( 113 new NonOwningZoomData(
121 HostZoomMap::GetForBrowserContext(browser_context))); 114 HostZoomMap::GetForBrowserContext(browser_context)));
122 } 115 }
123 116
124 } // namespace content 117 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/resource_context_impl.h ('k') | tools/valgrind/tsan/suppressions.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698