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 { };