Title: [244257] branches/safari-607-branch/Source

Diff

Modified: branches/safari-607-branch/Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp (244256 => 244257)


--- branches/safari-607-branch/Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp	2019-04-15 07:43:37 UTC (rev 244256)
+++ branches/safari-607-branch/Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp	2019-04-15 07:43:43 UTC (rev 244257)
@@ -80,11 +80,6 @@
     staticTracker = new DatabaseTracker(databasePath);
 }
 
-bool DatabaseTracker::isInitialized()
-{
-    return !!staticTracker;
-}
-    
 DatabaseTracker& DatabaseTracker::singleton()
 {
     if (!staticTracker)

Modified: branches/safari-607-branch/Source/WebCore/Modules/webdatabase/DatabaseTracker.h (244256 => 244257)


--- branches/safari-607-branch/Source/WebCore/Modules/webdatabase/DatabaseTracker.h	2019-04-15 07:43:37 UTC (rev 244256)
+++ branches/safari-607-branch/Source/WebCore/Modules/webdatabase/DatabaseTracker.h	2019-04-15 07:43:43 UTC (rev 244257)
@@ -59,7 +59,6 @@
     static void initializeTracker(const String& databasePath);
 
     WEBCORE_EXPORT static DatabaseTracker& singleton();
-    WEBCORE_EXPORT static bool isInitialized();
     // This singleton will potentially be used from multiple worker threads and the page's context thread simultaneously.  To keep this safe, it's
     // currently using 4 locks.  In order to avoid deadlock when taking multiple locks, you must take them in the correct order:
     // m_databaseGuard before quotaManager if both locks are needed.

Modified: branches/safari-607-branch/Source/WebCore/platform/sql/SQLiteDatabase.cpp (244256 => 244257)


--- branches/safari-607-branch/Source/WebCore/platform/sql/SQLiteDatabase.cpp	2019-04-15 07:43:37 UTC (rev 244256)
+++ branches/safari-607-branch/Source/WebCore/platform/sql/SQLiteDatabase.cpp	2019-04-15 07:43:43 UTC (rev 244257)
@@ -71,15 +71,6 @@
     });
 }
 
-static bool isDatabaseOpeningForbidden = false;
-static Lock isDatabaseOpeningForbiddenMutex;
-
-void SQLiteDatabase::setIsDatabaseOpeningForbidden(bool isForbidden)
-{
-    std::lock_guard<Lock> lock(isDatabaseOpeningForbiddenMutex);
-    isDatabaseOpeningForbidden = isForbidden;
-}
-
 SQLiteDatabase::SQLiteDatabase() = default;
 
 SQLiteDatabase::~SQLiteDatabase()
@@ -93,17 +84,14 @@
 
     close();
 
-    {
-        std::lock_guard<Lock> lock(isDatabaseOpeningForbiddenMutex);
-        m_openError = SQLiteFileSystem::openDatabase(filename, &m_db, forWebSQLDatabase);
-        if (m_openError != SQLITE_OK) {
-            m_openErrorMessage = m_db ? sqlite3_errmsg(m_db) : "sqlite_open returned null";
-            LOG_ERROR("SQLite database failed to load from %s\nCause - %s", filename.ascii().data(),
-                m_openErrorMessage.data());
-            sqlite3_close(m_db);
-            m_db = 0;
-            return false;
-        }
+    m_openError = SQLiteFileSystem::openDatabase(filename, &m_db, forWebSQLDatabase);
+    if (m_openError != SQLITE_OK) {
+        m_openErrorMessage = m_db ? sqlite3_errmsg(m_db) : "sqlite_open returned null";
+        LOG_ERROR("SQLite database failed to load from %s\nCause - %s", filename.ascii().data(),
+            m_openErrorMessage.data());
+        sqlite3_close(m_db);
+        m_db = 0;
+        return false;
     }
 
     overrideUnauthorizedFunctions();

Modified: branches/safari-607-branch/Source/WebCore/platform/sql/SQLiteDatabase.h (244256 => 244257)


--- branches/safari-607-branch/Source/WebCore/platform/sql/SQLiteDatabase.h	2019-04-15 07:43:37 UTC (rev 244256)
+++ branches/safari-607-branch/Source/WebCore/platform/sql/SQLiteDatabase.h	2019-04-15 07:43:43 UTC (rev 244257)
@@ -136,8 +136,6 @@
     WEBCORE_EXPORT void disableThreadingChecks() {}
 #endif
 
-    WEBCORE_EXPORT static void setIsDatabaseOpeningForbidden(bool);
-
 private:
     static int authorizerFunction(void*, int, const char*, const char*, const char*, const char*);
 

Modified: branches/safari-607-branch/Source/WebCore/platform/sql/SQLiteDatabaseTracker.cpp (244256 => 244257)


--- branches/safari-607-branch/Source/WebCore/platform/sql/SQLiteDatabaseTracker.cpp	2019-04-15 07:43:37 UTC (rev 244256)
+++ branches/safari-607-branch/Source/WebCore/platform/sql/SQLiteDatabaseTracker.cpp	2019-04-15 07:43:43 UTC (rev 244257)
@@ -40,16 +40,18 @@
 
 void setClient(SQLiteDatabaseTrackerClient* client)
 {
-    std::lock_guard<Lock> lock(transactionInProgressMutex);
+    ASSERT(client);
+    ASSERT(!s_staticSQLiteDatabaseTrackerClient || s_staticSQLiteDatabaseTrackerClient == client);
     s_staticSQLiteDatabaseTrackerClient = client;
 }
 
 void incrementTransactionInProgressCount()
 {
-    std::lock_guard<Lock> lock(transactionInProgressMutex);
     if (!s_staticSQLiteDatabaseTrackerClient)
         return;
 
+    std::lock_guard<Lock> lock(transactionInProgressMutex);
+
     s_transactionInProgressCounter++;
     if (s_transactionInProgressCounter == 1)
         s_staticSQLiteDatabaseTrackerClient->willBeginFirstTransaction();
@@ -57,10 +59,11 @@
 
 void decrementTransactionInProgressCount()
 {
-    std::lock_guard<Lock> lock(transactionInProgressMutex);
     if (!s_staticSQLiteDatabaseTrackerClient)
         return;
 
+    std::lock_guard<Lock> lock(transactionInProgressMutex);
+
     ASSERT(s_transactionInProgressCounter);
     s_transactionInProgressCounter--;
 
@@ -71,7 +74,6 @@
 #if !ASSERT_DISABLED
 bool hasTransactionInProgress()
 {
-    std::lock_guard<Lock> lock(transactionInProgressMutex);
     return !s_staticSQLiteDatabaseTrackerClient || s_transactionInProgressCounter > 0;
 }
 #endif

Modified: branches/safari-607-branch/Source/WebKit/Shared/WebSQLiteDatabaseTracker.cpp (244256 => 244257)


--- branches/safari-607-branch/Source/WebKit/Shared/WebSQLiteDatabaseTracker.cpp	2019-04-15 07:43:37 UTC (rev 244256)
+++ branches/safari-607-branch/Source/WebKit/Shared/WebSQLiteDatabaseTracker.cpp	2019-04-15 07:43:43 UTC (rev 244257)
@@ -52,15 +52,6 @@
     SQLiteDatabaseTracker::setClient(this);
 }
 
-WebSQLiteDatabaseTracker::~WebSQLiteDatabaseTracker()
-{
-    ASSERT(RunLoop::isMain());
-    SQLiteDatabaseTracker::setClient(nullptr);
-
-    if (m_hysteresis.state() == PAL::HysteresisState::Started)
-        hysteresisUpdated(PAL::HysteresisState::Stopped);
-}
-
 void WebSQLiteDatabaseTracker::willBeginFirstTransaction()
 {
     callOnMainThread([this] {

Modified: branches/safari-607-branch/Source/WebKit/Shared/WebSQLiteDatabaseTracker.h (244256 => 244257)


--- branches/safari-607-branch/Source/WebKit/Shared/WebSQLiteDatabaseTracker.h	2019-04-15 07:43:37 UTC (rev 244256)
+++ branches/safari-607-branch/Source/WebKit/Shared/WebSQLiteDatabaseTracker.h	2019-04-15 07:43:43 UTC (rev 244257)
@@ -42,8 +42,6 @@
     explicit WebSQLiteDatabaseTracker(NetworkProcess&);
     explicit WebSQLiteDatabaseTracker(WebProcess&);
 
-    ~WebSQLiteDatabaseTracker();
-
     // WebCore::SQLiteDatabaseTrackerClient
     void willBeginFirstTransaction() override;
     void didFinishLastTransaction() override;

Modified: branches/safari-607-branch/Source/WebKit/WebProcess/WebProcess.cpp (244256 => 244257)


--- branches/safari-607-branch/Source/WebKit/WebProcess/WebProcess.cpp	2019-04-15 07:43:37 UTC (rev 244256)
+++ branches/safari-607-branch/Source/WebKit/WebProcess/WebProcess.cpp	2019-04-15 07:43:43 UTC (rev 244257)
@@ -136,10 +136,6 @@
 #include "UserMediaCaptureManager.h"
 #endif
 
-#if PLATFORM(IOS_FAMILY)
-#include "WebSQLiteDatabaseTracker.h"
-#endif
-
 #if ENABLE(SEC_ITEM_SHIM)
 #include "SecItemShim.h"
 #endif
@@ -187,7 +183,7 @@
 #endif
     , m_nonVisibleProcessCleanupTimer(*this, &WebProcess::nonVisibleProcessCleanupTimerFired)
 #if PLATFORM(IOS_FAMILY)
-    , m_webSQLiteDatabaseTracker(std::make_unique<WebSQLiteDatabaseTracker>(*this))
+    , m_webSQLiteDatabaseTracker(*this)
 #endif
 {
     // Initialize our platform strategies.
@@ -1451,10 +1447,6 @@
 #endif
 
 #if PLATFORM(IOS_FAMILY)
-    m_webSQLiteDatabaseTracker = nullptr;
-    SQLiteDatabase::setIsDatabaseOpeningForbidden(true);
-    if (DatabaseTracker::isInitialized())
-        DatabaseTracker::singleton().closeAllDatabases(CurrentQueryBehavior::Interrupt);
     accessibilityProcessSuspendedNotification(true);
 #endif
 
@@ -1482,6 +1474,7 @@
     }
 
     RELEASE_LOG(ProcessSuspension, "%p - WebProcess::processWillSuspendImminently()", this);
+    DatabaseTracker::singleton().closeAllDatabases(CurrentQueryBehavior::Interrupt);
     actualPrepareToSuspend(ShouldAcknowledgeWhenReadyToSuspend::No);
     handled = true;
 }
@@ -1498,8 +1491,6 @@
     unfreezeAllLayerTrees();
 
 #if PLATFORM(IOS_FAMILY)
-    m_webSQLiteDatabaseTracker = std::make_unique<WebSQLiteDatabaseTracker>(*this);
-    SQLiteDatabase::setIsDatabaseOpeningForbidden(false);
     accessibilityProcessSuspendedNotification(false);
 #endif
     
@@ -1567,8 +1558,6 @@
     unfreezeAllLayerTrees();
     
 #if PLATFORM(IOS_FAMILY)
-    m_webSQLiteDatabaseTracker = std::make_unique<WebSQLiteDatabaseTracker>(*this);
-    SQLiteDatabase::setIsDatabaseOpeningForbidden(false);
     accessibilityProcessSuspendedNotification(false);
 #endif
 }

Modified: branches/safari-607-branch/Source/WebKit/WebProcess/WebProcess.h (244256 => 244257)


--- branches/safari-607-branch/Source/WebKit/WebProcess/WebProcess.h	2019-04-15 07:43:37 UTC (rev 244256)
+++ branches/safari-607-branch/Source/WebKit/WebProcess/WebProcess.h	2019-04-15 07:43:43 UTC (rev 244257)
@@ -52,6 +52,10 @@
 #include <wtf/MachSendRight.h>
 #endif
 
+#if PLATFORM(IOS_FAMILY)
+#include "WebSQLiteDatabaseTracker.h"
+#endif
+
 namespace API {
 class Object;
 }
@@ -102,7 +106,6 @@
 struct WebPageCreationParameters;
 struct WebPageGroupData;
 struct WebPreferencesStore;
-class WebSQLiteDatabaseTracker
 struct WebProcessCreationParameters;
 struct WebsiteData;
 struct WebsiteDataStoreParameters;
@@ -464,7 +467,7 @@
     RefPtr<WebCore::ApplicationCacheStorage> m_applicationCacheStorage;
 
 #if PLATFORM(IOS_FAMILY)
-    std::unique_ptr<WebSQLiteDatabaseTracker> m_webSQLiteDatabaseTracker;
+    WebSQLiteDatabaseTracker m_webSQLiteDatabaseTracker;
 #endif
 
     enum PageMarkingLayersAsVolatileCounterType { };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to