Title: [149314] trunk/Source/WebCore
Revision
149314
Author
[email protected]
Date
2013-04-29 14:07:45 -0700 (Mon, 29 Apr 2013)

Log Message

Begin cleaning up StorageTracker
https://bugs.webkit.org/show_bug.cgi?id=115373

Reviewed by Andreas Kling.

Rename Mutexes to use "Mutex" and not "Guard".
Don't use static locals for ".localstorage" and "*.localstorage" strings.
Put end iterator declarations together with begin declarations.

* storage/StorageTracker.cpp:
(WebCore::StorageTracker::setDatabaseDirectoryPath):
(WebCore::StorageTracker::trackerDatabasePath):
(WebCore::StorageTracker::openTrackerDatabase):
(WebCore::StorageTracker::finishedImportingOriginIdentifiers):
(WebCore::StorageTracker::syncImportOriginIdentifiers):
(WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
(WebCore::StorageTracker::setOriginDetails):
(WebCore::StorageTracker::syncSetOriginDetails):
(WebCore::StorageTracker::origins):
(WebCore::StorageTracker::deleteAllOrigins):
(WebCore::StorageTracker::syncDeleteAllOrigins):
(WebCore::StorageTracker::deleteOrigin):
(WebCore::StorageTracker::syncDeleteOrigin):
(WebCore::StorageTracker::willDeleteAllOrigins):
(WebCore::StorageTracker::willDeleteOrigin):
(WebCore::StorageTracker::canDeleteOrigin):
(WebCore::StorageTracker::cancelDeletingOrigin):
(WebCore::StorageTracker::setClient):
(WebCore::StorageTracker::databasePathForOrigin):
(WebCore::StorageTracker::diskUsageForOrigin):
* storage/StorageTracker.h:
(StorageTracker):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (149313 => 149314)


--- trunk/Source/WebCore/ChangeLog	2013-04-29 21:06:32 UTC (rev 149313)
+++ trunk/Source/WebCore/ChangeLog	2013-04-29 21:07:45 UTC (rev 149314)
@@ -1,3 +1,38 @@
+2013-04-29  Anders Carlsson  <[email protected]>
+
+        Begin cleaning up StorageTracker
+        https://bugs.webkit.org/show_bug.cgi?id=115373
+
+        Reviewed by Andreas Kling.
+
+        Rename Mutexes to use "Mutex" and not "Guard".
+        Don't use static locals for ".localstorage" and "*.localstorage" strings.
+        Put end iterator declarations together with begin declarations.
+
+        * storage/StorageTracker.cpp:
+        (WebCore::StorageTracker::setDatabaseDirectoryPath):
+        (WebCore::StorageTracker::trackerDatabasePath):
+        (WebCore::StorageTracker::openTrackerDatabase):
+        (WebCore::StorageTracker::finishedImportingOriginIdentifiers):
+        (WebCore::StorageTracker::syncImportOriginIdentifiers):
+        (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
+        (WebCore::StorageTracker::setOriginDetails):
+        (WebCore::StorageTracker::syncSetOriginDetails):
+        (WebCore::StorageTracker::origins):
+        (WebCore::StorageTracker::deleteAllOrigins):
+        (WebCore::StorageTracker::syncDeleteAllOrigins):
+        (WebCore::StorageTracker::deleteOrigin):
+        (WebCore::StorageTracker::syncDeleteOrigin):
+        (WebCore::StorageTracker::willDeleteAllOrigins):
+        (WebCore::StorageTracker::willDeleteOrigin):
+        (WebCore::StorageTracker::canDeleteOrigin):
+        (WebCore::StorageTracker::cancelDeletingOrigin):
+        (WebCore::StorageTracker::setClient):
+        (WebCore::StorageTracker::databasePathForOrigin):
+        (WebCore::StorageTracker::diskUsageForOrigin):
+        * storage/StorageTracker.h:
+        (StorageTracker):
+
 2013-04-29  Andreas Kling  <[email protected]>
 
         Don't check for @media rules affected by viewport changes in every layout.

Modified: trunk/Source/WebCore/storage/StorageTracker.cpp (149313 => 149314)


--- trunk/Source/WebCore/storage/StorageTracker.cpp	2013-04-29 21:06:32 UTC (rev 149313)
+++ trunk/Source/WebCore/storage/StorageTracker.cpp	2013-04-29 21:07:45 UTC (rev 149314)
@@ -101,7 +101,7 @@
 
 void StorageTracker::setDatabaseDirectoryPath(const String& path)
 {
-    MutexLocker lockStorage(m_databaseGuard);
+    MutexLocker locker(m_databaseMutex);
 
     if (m_database.isOpen())
         m_database.close();
@@ -109,7 +109,7 @@
     m_storageDirectoryPath = path.isolatedCopy();
 
     {
-        MutexLocker lockOrigins(m_originSetGuard);
+        MutexLocker locker(m_originSetMutex);
         m_originSet.clear();
     }
 
@@ -126,7 +126,7 @@
 
 String StorageTracker::trackerDatabasePath()
 {
-    ASSERT(!m_databaseGuard.tryLock());
+    ASSERT(!m_databaseMutex.tryLock());
     return SQLiteFileSystem::appendDatabaseFileNameToPath(m_storageDirectoryPath, "StorageTracker.db");
 }
 
@@ -134,7 +134,7 @@
 {
     ASSERT(m_isActive);
     ASSERT(!isMainThread());
-    ASSERT(!m_databaseGuard.tryLock());
+    ASSERT(!m_databaseMutex.tryLock());
 
     if (m_database.isOpen())
         return;
@@ -179,7 +179,7 @@
 void StorageTracker::finishedImportingOriginIdentifiers()
 {
     m_finishedImportingOriginIdentifiers = true;
-    MutexLocker lockClient(m_clientGuard);
+    MutexLocker locker(m_databaseMutex);
     if (m_client)
         m_client->didFinishLoadingOrigins();
 }
@@ -191,7 +191,7 @@
     ASSERT(!isMainThread());
 
     {
-        MutexLocker lockDatabase(m_databaseGuard);
+        MutexLocker locker(m_databaseMutex);
 
         // Don't force creation of StorageTracker's db just because a tracker
         // was initialized. It will be created if local storage dbs are found
@@ -209,7 +209,7 @@
             int result;
             
             {
-                MutexLocker lockOrigins(m_originSetGuard);
+                MutexLocker lockOrigins(m_originSetMutex);
                 while ((result = statement.step()) == SQLResultRow)
                     m_originSet.add(statement.getColumnText(0).isolatedCopy());
             }
@@ -224,9 +224,10 @@
     syncFileSystemAndTrackerDatabase();
     
     {
-        MutexLocker lockClient(m_clientGuard);
+        MutexLocker locker(m_clientMutex);
+
         if (m_client) {
-            MutexLocker lockOrigins(m_originSetGuard);
+            MutexLocker locker(m_originSetMutex);
             OriginSet::const_iterator end = m_originSet.end();
             for (OriginSet::const_iterator it = m_originSet.begin(); it != end; ++it)
                 m_client->dispatchDidModifyOrigin(*it);
@@ -241,36 +242,31 @@
     ASSERT(!isMainThread());
     ASSERT(m_isActive);
 
-    m_databaseGuard.lock();
-    DEFINE_STATIC_LOCAL(const String, fileMatchPattern, (ASCIILiteral("*.localstorage")));
-    DEFINE_STATIC_LOCAL(const String, fileExt, (ASCIILiteral(".localstorage")));
-    static const unsigned fileExtLength = fileExt.length();
-    m_databaseGuard.unlock();
-
     Vector<String> paths;
     {
-        MutexLocker lock(m_databaseGuard);
-        paths = listDirectory(m_storageDirectoryPath, fileMatchPattern);
+        MutexLocker locker(m_databaseMutex);
+        paths = listDirectory(m_storageDirectoryPath, "*.localstorage");
     }
 
     // Use a copy of m_originSet to find expired entries and to schedule their
     // deletions from disk and from m_originSet.
     OriginSet originSetCopy;
     {
-        MutexLocker lock(m_originSetGuard);
-        OriginSet::const_iterator end = m_originSet.end();
-        for (OriginSet::const_iterator it = m_originSet.begin(); it != end; ++it)
+        MutexLocker locker(m_originSetMutex);
+        for (OriginSet::const_iterator it = m_originSet.begin(), end = m_originSet.end(); it != end; ++it)
             originSetCopy.add((*it).isolatedCopy());
     }
     
     // Add missing StorageTracker records.
     OriginSet foundOrigins;
-    Vector<String>::const_iterator end = paths.end();
-    for (Vector<String>::const_iterator it = paths.begin(); it != end; ++it) {
-        String path = *it;
-        if (path.endsWith(fileExt, true) && path.length() > fileExtLength) {
+    String fileExtension = ASCIILiteral(".localstorage");
+
+    for (Vector<String>::const_iterator it = paths.begin(), end = paths.end(); it != end; ++it) {
+        const String& path = *it;
+
+        if (path.length() > fileExtension.length() && path.endsWith(fileExtension, true)) {
             String file = pathGetFileName(path);
-            String originIdentifier = file.substring(0, file.length() - fileExtLength);
+            String originIdentifier = file.substring(0, file.length() - fileExtension.length());
             if (!originSetCopy.contains(originIdentifier))
                 syncSetOriginDetails(originIdentifier, path);
 
@@ -279,12 +275,13 @@
     }
 
     // Delete stale StorageTracker records.
-    OriginSet::const_iterator setEnd = originSetCopy.end();
-    for (OriginSet::const_iterator it = originSetCopy.begin(); it != setEnd; ++it) {
-        if (!foundOrigins.contains(*it)) {
-            RefPtr<StringImpl> originIdentifier = (*it).isolatedCopy().impl();
-            callOnMainThread(deleteOriginOnMainThread, originIdentifier.release().leakRef());
-        }
+    for (OriginSet::const_iterator it = originSetCopy.begin(), end = originSetCopy.end(); it != end; ++it) {
+        const String& originIdentifier = *it;
+        if (foundOrigins.contains(originIdentifier))
+            continue;
+
+        RefPtr<StringImpl> originIdentifierImpl = originIdentifier.isolatedCopy().impl();
+        callOnMainThread(deleteOriginOnMainThread, originIdentifierImpl.release().leakRef());
     }
 }
 
@@ -294,7 +291,7 @@
         return;
 
     {
-        MutexLocker lockOrigins(m_originSetGuard);
+        MutexLocker locker(m_originSetMutex);
 
         if (m_originSet.contains(originIdentifier))
             return;
@@ -317,7 +314,7 @@
 {
     ASSERT(!isMainThread());
 
-    MutexLocker lockDatabase(m_databaseGuard);
+    MutexLocker locker(m_databaseMutex);
 
     openTrackerDatabase(true);
     
@@ -337,13 +334,13 @@
         LOG_ERROR("Unable to establish origin '%s' in the tracker", originIdentifier.ascii().data());
 
     {
-        MutexLocker lockOrigins(m_originSetGuard);
+        MutexLocker locker(m_originSetMutex);
         if (!m_originSet.contains(originIdentifier))
             m_originSet.add(originIdentifier);
     }
 
     {
-        MutexLocker lockClient(m_clientGuard);
+        MutexLocker locker(m_clientMutex);
         if (m_client)
             m_client->dispatchDidModifyOrigin(originIdentifier);
     }
@@ -356,10 +353,9 @@
     if (!m_isActive)
         return;
 
-    MutexLocker lockOrigins(m_originSetGuard);
+    MutexLocker locker(m_originSetMutex);
 
-    OriginSet::const_iterator end = m_originSet.end();
-    for (OriginSet::const_iterator it = m_originSet.begin(); it != end; ++it)
+    for (OriginSet::const_iterator it = m_originSet.begin(), end = m_originSet.end(); it != end; ++it)
         result.append(SecurityOrigin::createFromDatabaseIdentifier(*it));
 }
 
@@ -373,7 +369,7 @@
         return;
 
     {
-        MutexLocker lockOrigins(m_originSetGuard);
+        MutexLocker locker(m_originSetMutex);
         willDeleteAllOrigins();
         m_originSet.clear();
     }
@@ -387,7 +383,7 @@
 {
     ASSERT(!isMainThread());
     
-    MutexLocker lockDatabase(m_databaseGuard);
+    MutexLocker locker(m_databaseMutex);
     
     openTrackerDatabase(false);
     if (!m_database.isOpen())
@@ -407,7 +403,7 @@
         SQLiteFileSystem::deleteDatabaseFile(statement.getColumnText(1));
 
         {
-            MutexLocker lockClient(m_clientGuard);
+            MutexLocker locker(m_clientMutex);
             if (m_client)
                 m_client->dispatchDidModifyOrigin(statement.getColumnText(0));
         }
@@ -471,7 +467,7 @@
     String originId = origin->databaseIdentifier();
     
     {
-        MutexLocker lockOrigins(m_originSetGuard);
+        MutexLocker locker(m_originSetMutex);
         willDeleteOrigin(originId);
         m_originSet.remove(originId);
     }
@@ -483,7 +479,7 @@
 {
     ASSERT(!isMainThread());
 
-    MutexLocker lockDatabase(m_databaseGuard);
+    MutexLocker locker(m_databaseMutex);
     
     if (!canDeleteOrigin(originIdentifier)) {
         LOG_ERROR("Attempted to delete origin '%s' while it was being created\n", originIdentifier.ascii().data());
@@ -516,7 +512,7 @@
     
     bool shouldDeleteTrackerFiles = false;
     {
-        MutexLocker originLock(m_originSetGuard);
+        MutexLocker locker(m_originSetMutex);
         m_originSet.remove(originIdentifier);
         shouldDeleteTrackerFiles = m_originSet.isEmpty();
     }
@@ -528,7 +524,7 @@
     }
 
     {
-        MutexLocker lockClient(m_clientGuard);
+        MutexLocker locker(m_clientMutex);
         if (m_client)
             m_client->dispatchDidModifyOrigin(originIdentifier);
     }
@@ -536,7 +532,7 @@
     
 void StorageTracker::willDeleteAllOrigins()
 {
-    ASSERT(!m_originSetGuard.tryLock());
+    ASSERT(!m_originSetMutex.tryLock());
 
     OriginSet::const_iterator end = m_originSet.end();
     for (OriginSet::const_iterator it = m_originSet.begin(); it != end; ++it)
@@ -546,15 +542,15 @@
 void StorageTracker::willDeleteOrigin(const String& originIdentifier)
 {
     ASSERT(isMainThread());
-    ASSERT(!m_originSetGuard.tryLock());
+    ASSERT(!m_originSetMutex.tryLock());
 
     m_originsBeingDeleted.add(originIdentifier);
 }
     
 bool StorageTracker::canDeleteOrigin(const String& originIdentifier)
 {
-    ASSERT(!m_databaseGuard.tryLock());
-    MutexLocker lockOrigins(m_originSetGuard);
+    ASSERT(!m_databaseMutex.tryLock());
+    MutexLocker locker(m_originSetMutex);
     return m_originsBeingDeleted.contains(originIdentifier);
 }
 
@@ -563,15 +559,17 @@
     if (!m_isActive)
         return;
 
-    MutexLocker lockDatabase(m_databaseGuard);
-    MutexLocker lockOrigins(m_originSetGuard);
-    if (!m_originsBeingDeleted.isEmpty())
-        m_originsBeingDeleted.remove(originIdentifier);
+    MutexLocker locker(m_databaseMutex);
+    {
+        MutexLocker locker(m_originSetMutex);
+        if (!m_originsBeingDeleted.isEmpty())
+            m_originsBeingDeleted.remove(originIdentifier);
+    }
 }
 
 void StorageTracker::setClient(StorageTrackerClient* client)
 {
-    MutexLocker lockClient(m_clientGuard);
+    MutexLocker locker(m_clientMutex);
     m_client = client;
 }
 
@@ -592,7 +590,7 @@
     
 String StorageTracker::databasePathForOrigin(const String& originIdentifier)
 {
-    ASSERT(!m_databaseGuard.tryLock());
+    ASSERT(!m_databaseMutex.tryLock());
     ASSERT(m_isActive);
     
     if (!m_database.isOpen())
@@ -616,7 +614,7 @@
     if (!m_isActive)
         return 0;
 
-    MutexLocker lock(m_databaseGuard);
+    MutexLocker locker(m_databaseMutex);
 
     String path = databasePathForOrigin(origin->databaseIdentifier());
     if (path.isEmpty())

Modified: trunk/Source/WebCore/storage/StorageTracker.h (149313 => 149314)


--- trunk/Source/WebCore/storage/StorageTracker.h	2013-04-29 21:06:32 UTC (rev 149313)
+++ trunk/Source/WebCore/storage/StorageTracker.h	2013-04-29 21:07:45 UTC (rev 149314)
@@ -101,16 +101,16 @@
     
     void setIsActive(bool);
 
-    // Guard for m_database, m_storageDirectoryPath and static Strings in syncFileSystemAndTrackerDatabase().
-    Mutex m_databaseGuard;
+    // Mutex for m_database and m_storageDirectoryPath.
+    Mutex m_databaseMutex;
     SQLiteDatabase m_database;
     String m_storageDirectoryPath;
 
-    Mutex m_clientGuard;
+    Mutex m_clientMutex;
     StorageTrackerClient* m_client;
 
     // Guard for m_originSet and m_originsBeingDeleted.
-    Mutex m_originSetGuard;
+    Mutex m_originSetMutex;
     typedef HashSet<String> OriginSet;
     OriginSet m_originSet;
     OriginSet m_originsBeingDeleted;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to