Title: [246163] trunk/Source/WebKit
- Revision
- 246163
- Author
- [email protected]
- Date
- 2019-06-06 12:15:56 -0700 (Thu, 06 Jun 2019)
Log Message
NetworkHTTPSUpgradeChecker should construct and destruct database on the background thread
https://bugs.webkit.org/show_bug.cgi?id=198496
Reviewed by Chris Dumez.
* NetworkProcess/NetworkHTTPSUpgradeChecker.cpp:
(WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker):
(WebKit::NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker):
* NetworkProcess/NetworkHTTPSUpgradeChecker.h:
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (246162 => 246163)
--- trunk/Source/WebKit/ChangeLog 2019-06-06 19:07:55 UTC (rev 246162)
+++ trunk/Source/WebKit/ChangeLog 2019-06-06 19:15:56 UTC (rev 246163)
@@ -1,3 +1,15 @@
+2019-06-06 Sihui Liu <[email protected]>
+
+ NetworkHTTPSUpgradeChecker should construct and destruct database on the background thread
+ https://bugs.webkit.org/show_bug.cgi?id=198496
+
+ Reviewed by Chris Dumez.
+
+ * NetworkProcess/NetworkHTTPSUpgradeChecker.cpp:
+ (WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker):
+ (WebKit::NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker):
+ * NetworkProcess/NetworkHTTPSUpgradeChecker.h:
+
2019-06-06 Truitt Savell <[email protected]>
Unreviewed, rolling out r246137.
Modified: trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp (246162 => 246163)
--- trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp 2019-06-06 19:07:55 UTC (rev 246162)
+++ trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp 2019-06-06 19:15:56 UTC (rev 246163)
@@ -39,6 +39,8 @@
namespace WebKit {
+constexpr auto httpsUpgradeCheckerQuery = "SELECT host FROM hosts WHERE host = ?"_s;
+
static const String& networkHTTPSUpgradeCheckerDatabasePath()
{
static NeverDestroyed<String> networkHTTPSUpgradeCheckerDatabasePath;
@@ -55,8 +57,6 @@
NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker()
: m_workQueue(WorkQueue::create("HTTPS Upgrade Checker Thread"))
- , m_database(makeUniqueRef<WebCore::SQLiteDatabase>())
- , m_statement(makeUniqueRef<WebCore::SQLiteStatement>(m_database.get(), "SELECT host FROM hosts WHERE host = ?;"_s))
{
ASSERT(RunLoop::isMain());
@@ -67,6 +67,7 @@
return;
}
+ m_database = std::make_unique<SQLiteDatabase>();
bool isDatabaseOpen = m_database->open(path, WebCore::SQLiteDatabase::OpenMode::ReadOnly);
if (!isDatabaseOpen) {
#if PLATFORM(COCOA)
@@ -79,6 +80,7 @@
// Since we are using a workerQueue, the sequential dispatch blocks may be called by different threads.
m_database->disableThreadingChecks();
+ m_statement = std::make_unique<SQLiteStatement>(*m_database, httpsUpgradeCheckerQuery);
int isStatementPrepared = (m_statement->prepare() == SQLITE_OK);
ASSERT(isStatementPrepared);
if (!isStatementPrepared)
@@ -90,8 +92,8 @@
NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker()
{
- // This object should be owned by a singleton object.
- ASSERT_NOT_REACHED();
+ if (m_database)
+ m_workQueue->dispatch([database = WTFMove(m_database), statement = WTFMove(m_statement)] { });
}
void NetworkHTTPSUpgradeChecker::query(String&& host, PAL::SessionID sessionID, CompletionHandler<void(bool)>&& callback)
Modified: trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h (246162 => 246163)
--- trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h 2019-06-06 19:07:55 UTC (rev 246162)
+++ trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h 2019-06-06 19:15:56 UTC (rev 246163)
@@ -44,7 +44,7 @@
class NetworkHTTPSUpgradeChecker {
public:
NetworkHTTPSUpgradeChecker();
- NO_RETURN_DUE_TO_ASSERT ~NetworkHTTPSUpgradeChecker();
+ ~NetworkHTTPSUpgradeChecker();
// Returns `true` after internal setup is successfully completed. If there is an error with setup, or if setup is in-progress, it will return `false`.
bool didSetupCompleteSuccessfully() const { return m_didSetupCompleteSuccessfully; };
@@ -54,8 +54,8 @@
private:
Ref<WorkQueue> m_workQueue;
- UniqueRef<WebCore::SQLiteDatabase> m_database;
- UniqueRef<WebCore::SQLiteStatement> m_statement;
+ std::unique_ptr<WebCore::SQLiteDatabase> m_database;
+ std::unique_ptr<WebCore::SQLiteStatement> m_statement;
std::atomic<bool> m_didSetupCompleteSuccessfully { false };
};
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes