OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/indexed_db/indexed_db_factory_impl.h" | 5 #include "content/browser/indexed_db/indexed_db_factory_impl.h" |
6 | 6 |
| 7 #include <utility> |
7 #include <vector> | 8 #include <vector> |
8 | 9 |
9 #include "base/logging.h" | 10 #include "base/logging.h" |
10 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
11 #include "base/time/time.h" | 12 #include "base/time/time.h" |
12 #include "content/browser/indexed_db/indexed_db_backing_store.h" | 13 #include "content/browser/indexed_db/indexed_db_backing_store.h" |
13 #include "content/browser/indexed_db/indexed_db_context_impl.h" | 14 #include "content/browser/indexed_db/indexed_db_context_impl.h" |
14 #include "content/browser/indexed_db/indexed_db_database_error.h" | 15 #include "content/browser/indexed_db/indexed_db_database_error.h" |
15 #include "content/browser/indexed_db/indexed_db_tracing.h" | 16 #include "content/browser/indexed_db/indexed_db_tracing.h" |
16 #include "content/browser/indexed_db/indexed_db_transaction_coordinator.h" | 17 #include "content/browser/indexed_db/indexed_db_transaction_coordinator.h" |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 // Scope so that the implicit scoped_refptr<> is freed. | 119 // Scope so that the implicit scoped_refptr<> is freed. |
119 IndexedDBBackingStoreMap::const_iterator it = | 120 IndexedDBBackingStoreMap::const_iterator it = |
120 backing_store_map_.find(origin_url); | 121 backing_store_map_.find(origin_url); |
121 DCHECK(it != backing_store_map_.end()); | 122 DCHECK(it != backing_store_map_.end()); |
122 ptr = it->second.get(); | 123 ptr = it->second.get(); |
123 } | 124 } |
124 return ptr->HasOneRef(); | 125 return ptr->HasOneRef(); |
125 } | 126 } |
126 | 127 |
127 void IndexedDBFactoryImpl::ForceClose(const GURL& origin_url) { | 128 void IndexedDBFactoryImpl::ForceClose(const GURL& origin_url) { |
128 std::pair<OriginDBMapIterator, OriginDBMapIterator> range = | 129 OriginDBs range = GetOpenDatabasesForOrigin(origin_url); |
129 GetOpenDatabasesForOrigin(origin_url); | |
130 | 130 |
131 while (range.first != range.second) { | 131 while (range.first != range.second) { |
132 IndexedDBDatabase* db = range.first->second; | 132 IndexedDBDatabase* db = range.first->second; |
133 ++range.first; | 133 ++range.first; |
134 db->ForceClose(); | 134 db->ForceClose(); |
135 } | 135 } |
136 | 136 |
137 if (backing_store_map_.find(origin_url) != backing_store_map_.end()) | 137 if (backing_store_map_.find(origin_url) != backing_store_map_.end()) |
138 ReleaseBackingStore(origin_url, true /* immediate */); | 138 ReleaseBackingStore(origin_url, true /* immediate */); |
139 } | 139 } |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 | 488 |
489 std::pair<IndexedDBFactoryImpl::OriginDBMapIterator, | 489 std::pair<IndexedDBFactoryImpl::OriginDBMapIterator, |
490 IndexedDBFactoryImpl::OriginDBMapIterator> | 490 IndexedDBFactoryImpl::OriginDBMapIterator> |
491 IndexedDBFactoryImpl::GetOpenDatabasesForOrigin(const GURL& origin_url) const { | 491 IndexedDBFactoryImpl::GetOpenDatabasesForOrigin(const GURL& origin_url) const { |
492 return origin_dbs_.equal_range(origin_url); | 492 return origin_dbs_.equal_range(origin_url); |
493 } | 493 } |
494 | 494 |
495 size_t IndexedDBFactoryImpl::GetConnectionCount(const GURL& origin_url) const { | 495 size_t IndexedDBFactoryImpl::GetConnectionCount(const GURL& origin_url) const { |
496 size_t count(0); | 496 size_t count(0); |
497 | 497 |
498 std::pair<OriginDBMapIterator, OriginDBMapIterator> range = | 498 OriginDBs range = GetOpenDatabasesForOrigin(origin_url); |
499 GetOpenDatabasesForOrigin(origin_url); | |
500 for (OriginDBMapIterator it = range.first; it != range.second; ++it) | 499 for (OriginDBMapIterator it = range.first; it != range.second; ++it) |
501 count += it->second->ConnectionCount(); | 500 count += it->second->ConnectionCount(); |
502 | 501 |
503 return count; | 502 return count; |
504 } | 503 } |
505 | 504 |
506 } // namespace content | 505 } // namespace content |
OLD | NEW |