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

Side by Side Diff: webkit/quota/quota_manager.cc

Issue 9419033: Move creation of BrowserContext objects that live in content to content, instead of depending on th… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Fix memory leaks in tests 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 | « webkit/fileapi/sandbox_mount_point_provider.cc ('k') | no next file » | 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 "webkit/quota/quota_manager.h" 5 #include "webkit/quota/quota_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <deque> 8 #include <deque>
9 #include <set> 9 #include <set>
10 10
(...skipping 1119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1130 io_thread_(io_thread), 1130 io_thread_(io_thread),
1131 db_thread_(db_thread), 1131 db_thread_(db_thread),
1132 temporary_quota_initialized_(false), 1132 temporary_quota_initialized_(false),
1133 temporary_quota_override_(-1), 1133 temporary_quota_override_(-1),
1134 desired_available_space_(-1), 1134 desired_available_space_(-1),
1135 special_storage_policy_(special_storage_policy), 1135 special_storage_policy_(special_storage_policy),
1136 weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { 1136 weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
1137 } 1137 }
1138 1138
1139 QuotaManager::~QuotaManager() { 1139 QuotaManager::~QuotaManager() {
1140 DCHECK(io_thread_->BelongsToCurrentThread());
1141 proxy_->manager_ = NULL; 1140 proxy_->manager_ = NULL;
1142 std::for_each(clients_.begin(), clients_.end(), 1141 std::for_each(clients_.begin(), clients_.end(),
1143 std::mem_fun(&QuotaClient::OnQuotaManagerDestroyed)); 1142 std::mem_fun(&QuotaClient::OnQuotaManagerDestroyed));
1144 if (database_.get()) 1143 if (database_.get())
1145 db_thread_->DeleteSoon(FROM_HERE, database_.release()); 1144 db_thread_->DeleteSoon(FROM_HERE, database_.release());
1146 } 1145 }
1147 1146
1148 void QuotaManager::GetUsageInfo(const GetUsageInfoCallback& callback) { 1147 void QuotaManager::GetUsageInfo(const GetUsageInfoCallback& callback) {
1149 LazyInitialize(); 1148 LazyInitialize();
1150 GetUsageInfoTask* get_usage_info = new GetUsageInfoTask(this, callback); 1149 GetUsageInfoTask* get_usage_info = new GetUsageInfoTask(this, callback);
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
1290 new UsageTracker(clients_, kStorageTypeTemporary, 1289 new UsageTracker(clients_, kStorageTypeTemporary,
1291 special_storage_policy_)); 1290 special_storage_policy_));
1292 persistent_usage_tracker_.reset( 1291 persistent_usage_tracker_.reset(
1293 new UsageTracker(clients_, kStorageTypePersistent, 1292 new UsageTracker(clients_, kStorageTypePersistent,
1294 special_storage_policy_)); 1293 special_storage_policy_));
1295 1294
1296 make_scoped_refptr(new InitializeTask(this))->Start(); 1295 make_scoped_refptr(new InitializeTask(this))->Start();
1297 } 1296 }
1298 1297
1299 void QuotaManager::RegisterClient(QuotaClient* client) { 1298 void QuotaManager::RegisterClient(QuotaClient* client) {
1300 DCHECK(io_thread_->BelongsToCurrentThread());
1301 DCHECK(!database_.get()); 1299 DCHECK(!database_.get());
1302 clients_.push_back(client); 1300 clients_.push_back(client);
1303 } 1301 }
1304 1302
1305 void QuotaManager::NotifyStorageAccessed( 1303 void QuotaManager::NotifyStorageAccessed(
1306 QuotaClient::ID client_id, 1304 QuotaClient::ID client_id,
1307 const GURL& origin, StorageType type) { 1305 const GURL& origin, StorageType type) {
1308 NotifyStorageAccessedInternal(client_id, origin, type, base::Time::Now()); 1306 NotifyStorageAccessedInternal(client_id, origin, type, base::Time::Now());
1309 } 1307 }
1310 1308
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
1667 if (origins_in_use_.find(origin) != origins_in_use_.end() || 1665 if (origins_in_use_.find(origin) != origins_in_use_.end() ||
1668 access_notified_origins_.find(origin) != access_notified_origins_.end()) 1666 access_notified_origins_.find(origin) != access_notified_origins_.end())
1669 lru_origin_callback_.Run(GURL()); 1667 lru_origin_callback_.Run(GURL());
1670 else 1668 else
1671 lru_origin_callback_.Run(origin); 1669 lru_origin_callback_.Run(origin);
1672 access_notified_origins_.clear(); 1670 access_notified_origins_.clear();
1673 lru_origin_callback_.Reset(); 1671 lru_origin_callback_.Reset();
1674 } 1672 }
1675 1673
1676 void QuotaManager::DeleteOnCorrectThread() const { 1674 void QuotaManager::DeleteOnCorrectThread() const {
1677 if (!io_thread_->BelongsToCurrentThread()) { 1675 if (!io_thread_->BelongsToCurrentThread() &&
1678 io_thread_->DeleteSoon(FROM_HERE, this); 1676 io_thread_->DeleteSoon(FROM_HERE, this)) {
1679 return; 1677 return;
1680 } 1678 }
1681 delete this; 1679 delete this;
1682 } 1680 }
1683 1681
1684 // QuotaManagerProxy ---------------------------------------------------------- 1682 // QuotaManagerProxy ----------------------------------------------------------
1685 1683
1686 void QuotaManagerProxy::RegisterClient(QuotaClient* client) { 1684 void QuotaManagerProxy::RegisterClient(QuotaClient* client) {
1687 if (!io_thread_->BelongsToCurrentThread()) { 1685 if (!io_thread_->BelongsToCurrentThread() &&
1688 io_thread_->PostTask( 1686 io_thread_->PostTask(
1689 FROM_HERE, 1687 FROM_HERE,
1690 base::Bind(&QuotaManagerProxy::RegisterClient, this, client)); 1688 base::Bind(&QuotaManagerProxy::RegisterClient, this, client))) {
1691 return; 1689 return;
1692 } 1690 }
1693 1691
1694 if (manager_) 1692 if (manager_)
1695 manager_->RegisterClient(client); 1693 manager_->RegisterClient(client);
1696 else 1694 else
1697 client->OnQuotaManagerDestroyed(); 1695 client->OnQuotaManagerDestroyed();
1698 } 1696 }
1699 1697
1700 void QuotaManagerProxy::NotifyStorageAccessed( 1698 void QuotaManagerProxy::NotifyStorageAccessed(
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1763 1761
1764 QuotaManagerProxy::QuotaManagerProxy( 1762 QuotaManagerProxy::QuotaManagerProxy(
1765 QuotaManager* manager, base::MessageLoopProxy* io_thread) 1763 QuotaManager* manager, base::MessageLoopProxy* io_thread)
1766 : manager_(manager), io_thread_(io_thread) { 1764 : manager_(manager), io_thread_(io_thread) {
1767 } 1765 }
1768 1766
1769 QuotaManagerProxy::~QuotaManagerProxy() { 1767 QuotaManagerProxy::~QuotaManagerProxy() {
1770 } 1768 }
1771 1769
1772 } // namespace quota 1770 } // namespace quota
OLDNEW
« no previous file with comments | « webkit/fileapi/sandbox_mount_point_provider.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698