⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 246163 in webkit


Ignore:
Timestamp:
Jun 6, 2019, 12:15:56 PM (7 years ago)
Author:
sihui_liu@apple.com
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:
Location:
trunk/Source/WebKit
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r246157 r246163  
     12019-06-06  Sihui Liu  <sihui_liu@apple.com>
     2
     3        NetworkHTTPSUpgradeChecker should construct and destruct database on the background thread
     4        https://bugs.webkit.org/show_bug.cgi?id=198496
     5
     6        Reviewed by Chris Dumez.
     7
     8        * NetworkProcess/NetworkHTTPSUpgradeChecker.cpp:
     9        (WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker):
     10        (WebKit::NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker):
     11        * NetworkProcess/NetworkHTTPSUpgradeChecker.h:
     12
    1132019-06-06  Truitt Savell  <tsavell@apple.com>
    214
  • trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp

    r244225 r246163  
    4040namespace WebKit {
    4141
     42constexpr auto httpsUpgradeCheckerQuery = "SELECT host FROM hosts WHERE host = ?"_s;
     43
    4244static const String& networkHTTPSUpgradeCheckerDatabasePath()
    4345{
     
    5658NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker()
    5759    : m_workQueue(WorkQueue::create("HTTPS Upgrade Checker Thread"))
    58     , m_database(makeUniqueRef<WebCore::SQLiteDatabase>())
    59     , m_statement(makeUniqueRef<WebCore::SQLiteStatement>(m_database.get(), "SELECT host FROM hosts WHERE host = ?;"_s))
    6060{
    6161    ASSERT(RunLoop::isMain());
     
    6868        }
    6969
     70        m_database = std::make_unique<SQLiteDatabase>();
    7071        bool isDatabaseOpen = m_database->open(path, WebCore::SQLiteDatabase::OpenMode::ReadOnly);
    7172        if (!isDatabaseOpen) {
     
    8081        m_database->disableThreadingChecks();
    8182
     83        m_statement = std::make_unique<SQLiteStatement>(*m_database, httpsUpgradeCheckerQuery);
    8284        int isStatementPrepared = (m_statement->prepare() == SQLITE_OK);
    8385        ASSERT(isStatementPrepared);
     
    9193NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker()
    9294{
    93     // This object should be owned by a singleton object.
    94     ASSERT_NOT_REACHED();
     95    if (m_database)
     96        m_workQueue->dispatch([database = WTFMove(m_database), statement = WTFMove(m_statement)] { });
    9597}
    9698
  • trunk/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.h

    r244225 r246163  
    4545public:
    4646    NetworkHTTPSUpgradeChecker();
    47     NO_RETURN_DUE_TO_ASSERT ~NetworkHTTPSUpgradeChecker();
     47    ~NetworkHTTPSUpgradeChecker();
    4848
    4949    // 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`.
     
    5555private:
    5656    Ref<WorkQueue> m_workQueue;
    57     UniqueRef<WebCore::SQLiteDatabase> m_database;
    58     UniqueRef<WebCore::SQLiteStatement> m_statement;
     57    std::unique_ptr<WebCore::SQLiteDatabase> m_database;
     58    std::unique_ptr<WebCore::SQLiteStatement> m_statement;
    5959    std::atomic<bool> m_didSetupCompleteSuccessfully { false };
    6060};
Note: See TracChangeset for help on using the changeset viewer.