Index: content/browser/browser_context.cc |
=================================================================== |
--- content/browser/browser_context.cc (revision 127221) |
+++ content/browser/browser_context.cc (working copy) |
@@ -34,6 +34,8 @@ |
namespace content { |
+namespace { |
+ |
void CreateQuotaManagerAndClients(BrowserContext* context) { |
if (context->GetUserData(kQuotaManagerKeyName)) { |
DCHECK(context->GetUserData(kDatabaseTrackerKeyName)); |
@@ -115,9 +117,7 @@ |
} |
void SaveSessionStateOnWebkitThread( |
- scoped_refptr<DOMStorageContextImpl> dom_storage_context, |
scoped_refptr<IndexedDBContextImpl> indexed_db_context) { |
- dom_storage_context->SaveSessionState(); |
indexed_db_context->SaveSessionState(); |
} |
@@ -125,11 +125,13 @@ |
ResourceContext::GetAppCacheService(resource_context)->PurgeMemory(); |
} |
-void PurgeMemoryOnWebkitThread( |
- scoped_refptr<DOMStorageContextImpl> dom_storage_context) { |
- dom_storage_context->PurgeMemory(); |
+DOMStorageContextImpl* GetDOMStorageContextImpl(BrowserContext* context) { |
+ return static_cast<DOMStorageContextImpl*>( |
+ BrowserContext::GetDOMStorageContext(context)); |
} |
+} // namespace |
+ |
QuotaManager* BrowserContext::GetQuotaManager(BrowserContext* context) { |
CreateQuotaManagerAndClients(context); |
return UserDataAdapter<QuotaManager>::Get(context, kQuotaManagerKeyName); |
@@ -188,23 +190,20 @@ |
browser_context->GetResourceContext())); |
} |
+ GetDOMStorageContextImpl(browser_context)->SaveSessionState(); |
+ |
if (BrowserThread::IsMessageLoopValid(BrowserThread::WEBKIT_DEPRECATED)) { |
- DOMStorageContextImpl* dom_context = static_cast<DOMStorageContextImpl*>( |
- GetDOMStorageContext(browser_context)); |
IndexedDBContextImpl* indexed_db = static_cast<IndexedDBContextImpl*>( |
GetIndexedDBContext(browser_context)); |
BrowserThread::PostTask( |
BrowserThread::WEBKIT_DEPRECATED, FROM_HERE, |
base::Bind(&SaveSessionStateOnWebkitThread, |
- make_scoped_refptr(dom_context), |
make_scoped_refptr(indexed_db))); |
} |
} |
void BrowserContext::ClearLocalOnDestruction(BrowserContext* browser_context) { |
- DOMStorageContextImpl* dom_context = static_cast<DOMStorageContextImpl*>( |
- GetDOMStorageContext(browser_context)); |
- dom_context->set_clear_local_state_on_exit(true); |
+ GetDOMStorageContextImpl(browser_context)->SetClearLocalState(true); |
IndexedDBContextImpl* indexed_db = static_cast<IndexedDBContextImpl*>( |
GetIndexedDBContext(browser_context)); |
@@ -228,14 +227,7 @@ |
browser_context->GetResourceContext())); |
} |
- if (BrowserThread::IsMessageLoopValid(BrowserThread::WEBKIT_DEPRECATED)) { |
- DOMStorageContextImpl* dom_context = static_cast<DOMStorageContextImpl*>( |
- GetDOMStorageContext(browser_context)); |
- BrowserThread::PostTask( |
- BrowserThread::WEBKIT_DEPRECATED, FROM_HERE, |
- base::Bind(&PurgeMemoryOnWebkitThread, |
- make_scoped_refptr(dom_context))); |
- } |
+ GetDOMStorageContextImpl(browser_context)->PurgeMemory(); |
} |
BrowserContext::~BrowserContext() { |
@@ -248,6 +240,10 @@ |
GetDatabaseTracker(this))); |
} |
+#ifdef ENABLE_NEW_DOM_STORAGE_BACKEND |
+ if (GetUserData(kDOMStorageContextKeyName)) |
+ GetDOMStorageContextImpl(this)->Shutdown(); |
+#else |
if (GetUserData(kDOMStorageContextKeyName) && |
BrowserThread::IsMessageLoopValid(BrowserThread::WEBKIT_DEPRECATED)) { |
DOMStorageContextImpl* dom_storage_context = |
@@ -256,6 +252,7 @@ |
BrowserThread::ReleaseSoon( |
BrowserThread::WEBKIT_DEPRECATED, FROM_HERE, dom_storage_context); |
} |
+#endif |
} |
} // namespace content |