| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 unsigned long long DatabaseTracker::getMaxSizeForDatabase(const DatabaseBackendB
ase* database) | 190 unsigned long long DatabaseTracker::getMaxSizeForDatabase(const DatabaseBackendB
ase* database) |
| 191 { | 191 { |
| 192 unsigned long long spaceAvailable = 0; | 192 unsigned long long spaceAvailable = 0; |
| 193 unsigned long long databaseSize = 0; | 193 unsigned long long databaseSize = 0; |
| 194 QuotaTracker::instance().getDatabaseSizeAndSpaceAvailableToOrigin( | 194 QuotaTracker::instance().getDatabaseSizeAndSpaceAvailableToOrigin( |
| 195 createDatabaseIdentifierFromSecurityOrigin(database->securityOrigin()), | 195 createDatabaseIdentifierFromSecurityOrigin(database->securityOrigin()), |
| 196 database->stringIdentifier(), &databaseSize, &spaceAvailable); | 196 database->stringIdentifier(), &databaseSize, &spaceAvailable); |
| 197 return databaseSize + spaceAvailable; | 197 return databaseSize + spaceAvailable; |
| 198 } | 198 } |
| 199 | 199 |
| 200 void DatabaseTracker::interruptAllDatabasesForContext(const DatabaseContext* con
text) | |
| 201 { | |
| 202 MutexLocker openDatabaseMapLock(m_openDatabaseMapGuard); | |
| 203 | |
| 204 if (!m_openDatabaseMap) | |
| 205 return; | |
| 206 | |
| 207 DatabaseNameMap* nameMap = m_openDatabaseMap->get(createDatabaseIdentifierFr
omSecurityOrigin(context->securityOrigin())); | |
| 208 if (!nameMap) | |
| 209 return; | |
| 210 | |
| 211 DatabaseNameMap::const_iterator dbNameMapEndIt = nameMap->end(); | |
| 212 for (DatabaseNameMap::const_iterator dbNameMapIt = nameMap->begin(); dbNameM
apIt != dbNameMapEndIt; ++dbNameMapIt) { | |
| 213 DatabaseSet* databaseSet = dbNameMapIt->value; | |
| 214 DatabaseSet::const_iterator end = databaseSet->end(); | |
| 215 for (DatabaseSet::const_iterator it = databaseSet->begin(); it != end; +
+it) { | |
| 216 if ((*it)->databaseContext() == context) | |
| 217 (*it)->interrupt(); | |
| 218 } | |
| 219 } | |
| 220 } | |
| 221 | |
| 222 class DatabaseTracker::CloseOneDatabaseImmediatelyTask FINAL : public ExecutionC
ontextTask { | 200 class DatabaseTracker::CloseOneDatabaseImmediatelyTask FINAL : public ExecutionC
ontextTask { |
| 223 public: | 201 public: |
| 224 static PassOwnPtr<CloseOneDatabaseImmediatelyTask> create(const String& orig
inIdentifier, const String& name, DatabaseBackendBase* database) | 202 static PassOwnPtr<CloseOneDatabaseImmediatelyTask> create(const String& orig
inIdentifier, const String& name, DatabaseBackendBase* database) |
| 225 { | 203 { |
| 226 return adoptPtr(new CloseOneDatabaseImmediatelyTask(originIdentifier, na
me, database)); | 204 return adoptPtr(new CloseOneDatabaseImmediatelyTask(originIdentifier, na
me, database)); |
| 227 } | 205 } |
| 228 | 206 |
| 229 virtual void performTask(ExecutionContext*) OVERRIDE | 207 virtual void performTask(ExecutionContext*) OVERRIDE |
| 230 { | 208 { |
| 231 DatabaseTracker::tracker().closeOneDatabaseImmediately(m_originIdentifie
r, m_name, m_database); | 209 DatabaseTracker::tracker().closeOneDatabaseImmediately(m_originIdentifie
r, m_name, m_database); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 DatabaseSet::iterator found = databaseSet->find(database); | 262 DatabaseSet::iterator found = databaseSet->find(database); |
| 285 if (found == databaseSet->end()) | 263 if (found == databaseSet->end()) |
| 286 return; | 264 return; |
| 287 } | 265 } |
| 288 | 266 |
| 289 // And we have to call closeImmediately() without our collection lock being
held. | 267 // And we have to call closeImmediately() without our collection lock being
held. |
| 290 database->closeImmediately(); | 268 database->closeImmediately(); |
| 291 } | 269 } |
| 292 | 270 |
| 293 } // namespace blink | 271 } // namespace blink |
| OLD | NEW |