OLD | NEW |
---|---|
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/public/browser/browser_context.h" | 5 #include "content/public/browser/browser_context.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/dom_storage/dom_storage_context_impl.h" | 8 #include "content/browser/dom_storage/dom_storage_context_impl.h" |
9 #include "content/browser/download/download_file_manager.h" | 9 #include "content/browser/download/download_file_manager.h" |
10 #include "content/browser/download/download_manager_impl.h" | 10 #include "content/browser/download/download_manager_impl.h" |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
75 | 75 |
76 scoped_refptr<DatabaseTracker> db_tracker = new DatabaseTracker( | 76 scoped_refptr<DatabaseTracker> db_tracker = new DatabaseTracker( |
77 context->GetPath(), context->IsOffTheRecord(), | 77 context->GetPath(), context->IsOffTheRecord(), |
78 context->GetSpecialStoragePolicy(), quota_manager->proxy(), | 78 context->GetSpecialStoragePolicy(), quota_manager->proxy(), |
79 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE)); | 79 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE)); |
80 context->SetUserData(kDatabaseTrackerKeyName, | 80 context->SetUserData(kDatabaseTrackerKeyName, |
81 new UserDataAdapter<DatabaseTracker>(db_tracker)); | 81 new UserDataAdapter<DatabaseTracker>(db_tracker)); |
82 | 82 |
83 FilePath path = context->IsOffTheRecord() ? FilePath() : context->GetPath(); | 83 FilePath path = context->IsOffTheRecord() ? FilePath() : context->GetPath(); |
84 scoped_refptr<DOMStorageContextImpl> dom_storage_context = | 84 scoped_refptr<DOMStorageContextImpl> dom_storage_context = |
85 new DOMStorageContextImpl(path, context->GetSpecialStoragePolicy()); | 85 new DOMStorageContextImpl(path, context->GetSpecialStoragePolicy(), |
86 context->save_session_storage_on_disk()); | |
michaeln
2012/07/10 19:04:13
All of the other methods in the content::BrowsingC
marja
2012/07/11 12:41:31
Added virtual ShouldSaveSessionStorageOnDisk which
| |
86 context->SetUserData( | 87 context->SetUserData( |
87 kDOMStorageContextKeyName, | 88 kDOMStorageContextKeyName, |
88 new UserDataAdapter<DOMStorageContextImpl>(dom_storage_context)); | 89 new UserDataAdapter<DOMStorageContextImpl>(dom_storage_context)); |
89 | 90 |
90 scoped_refptr<IndexedDBContext> indexed_db_context = new IndexedDBContextImpl( | 91 scoped_refptr<IndexedDBContext> indexed_db_context = new IndexedDBContextImpl( |
91 path, context->GetSpecialStoragePolicy(), quota_manager->proxy(), | 92 path, context->GetSpecialStoragePolicy(), quota_manager->proxy(), |
92 BrowserThread::GetMessageLoopProxyForThread( | 93 BrowserThread::GetMessageLoopProxyForThread( |
93 BrowserThread::WEBKIT_DEPRECATED)); | 94 BrowserThread::WEBKIT_DEPRECATED)); |
94 context->SetUserData( | 95 context->SetUserData( |
95 kIndexedDBContextKeyName, | 96 kIndexedDBContextKeyName, |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
239 if (BrowserThread::IsMessageLoopValid(BrowserThread::IO)) { | 240 if (BrowserThread::IsMessageLoopValid(BrowserThread::IO)) { |
240 BrowserThread::PostTask( | 241 BrowserThread::PostTask( |
241 BrowserThread::IO, FROM_HERE, | 242 BrowserThread::IO, FROM_HERE, |
242 base::Bind(&PurgeMemoryOnIOThread, | 243 base::Bind(&PurgeMemoryOnIOThread, |
243 browser_context->GetResourceContext())); | 244 browser_context->GetResourceContext())); |
244 } | 245 } |
245 | 246 |
246 GetDOMStorageContextImpl(browser_context)->PurgeMemory(); | 247 GetDOMStorageContextImpl(browser_context)->PurgeMemory(); |
247 } | 248 } |
248 | 249 |
250 BrowserContext::BrowserContext() | |
251 : save_session_storage_on_disk_(false) { | |
252 } | |
253 | |
249 BrowserContext::~BrowserContext() { | 254 BrowserContext::~BrowserContext() { |
250 // These message loop checks are just to avoid leaks in unittests. | 255 // These message loop checks are just to avoid leaks in unittests. |
251 if (GetUserData(kDatabaseTrackerKeyName) && | 256 if (GetUserData(kDatabaseTrackerKeyName) && |
252 BrowserThread::IsMessageLoopValid(BrowserThread::FILE)) { | 257 BrowserThread::IsMessageLoopValid(BrowserThread::FILE)) { |
253 BrowserThread::PostTask( | 258 BrowserThread::PostTask( |
254 BrowserThread::FILE, FROM_HERE, | 259 BrowserThread::FILE, FROM_HERE, |
255 base::Bind(&webkit_database::DatabaseTracker::Shutdown, | 260 base::Bind(&webkit_database::DatabaseTracker::Shutdown, |
256 GetDatabaseTracker(this))); | 261 GetDatabaseTracker(this))); |
257 } | 262 } |
258 | 263 |
259 if (GetUserData(kDOMStorageContextKeyName)) | 264 if (GetUserData(kDOMStorageContextKeyName)) |
260 GetDOMStorageContextImpl(this)->Shutdown(); | 265 GetDOMStorageContextImpl(this)->Shutdown(); |
261 | 266 |
262 if (GetUserData(kDownloadManagerKeyName)) | 267 if (GetUserData(kDownloadManagerKeyName)) |
263 GetDownloadManager(this)->Shutdown(); | 268 GetDownloadManager(this)->Shutdown(); |
264 } | 269 } |
265 | 270 |
271 void BrowserContext::SetSaveSessionStorageOnDisk( | |
272 bool save_session_storage_on_disk) { | |
273 DCHECK(!GetUserData(kQuotaManagerKeyName)); | |
274 save_session_storage_on_disk_ = save_session_storage_on_disk; | |
275 } | |
276 | |
266 } // namespace content | 277 } // namespace content |
OLD | NEW |