WebKit Bugzilla
Attachment 371300 Details for
Bug 198496
: NetworkHTTPSUpgradeChecker should construct and destruct database on the background thread
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198496-20190604105239.patch (text/plain), 4.35 KB, created by
Sihui Liu
on 2019-06-04 10:52:39 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Sihui Liu
Created:
2019-06-04 10:52:39 PDT
Size:
4.35 KB
patch
obsolete
>Subversion Revision: 246049 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 4215d485aaf038b415ff629b6695889aaff43819..3df37e77d2ff8c1f8dde808f39745a89ab2b3457 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,15 @@ >+2019-06-04 Sihui Liu <sihui_liu@apple.com> >+ >+ NetworkHTTPSUpgradeChecker should construct and destruct database on the background thread >+ https://bugs.webkit.org/show_bug.cgi?id=198496 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: >+ (WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker): >+ (WebKit::NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker): >+ * NetworkProcess/NetworkHTTPSUpgradeChecker.h: >+ > 2019-06-03 Wenson Hsieh <wenson_hsieh@apple.com> > > Implement an internal switch to turn idempotent text autosizing and viewport rules off >diff --git a/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp b/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp >index 156a625ce58454cb24141f84a7a87dd479c63d13..ea509df5b7c99094031d4085320e1c4a836448eb 100644 >--- a/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp >@@ -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 @@ static const String& networkHTTPSUpgradeCheckerDatabasePath() > > 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 @@ NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker() > 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 @@ NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker() > // 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() > > 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) >diff --git a/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h b/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h >index cc39f036374f70376b1afe8a82e7a6f1b90987b7..dcd46a601be630986fc2ae0c1c96558c9592208a 100644 >--- a/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h >+++ b/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h >@@ -44,7 +44,7 @@ namespace WebKit { > 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 @@ public: > > 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 }; > }; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198496
:
371210
|
371300
|
371326
|
371513