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

Changeset 248452 in webkit


Ignore:
Timestamp:
Aug 8, 2019, 5:08:07 PM (7 years ago)
Author:
Chris Dumez
Message:

Add threading assertions to WebStorage code
https://bugs.webkit.org/show_bug.cgi?id=200550

Reviewed by Geoffrey Garen.

Add threading assertions to WebStorage code for extra safety.

  • NetworkProcess/WebStorage/LocalStorageNamespace.cpp:

(WebKit::LocalStorageNamespace::LocalStorageNamespace):
(WebKit::LocalStorageNamespace::~LocalStorageNamespace):
(WebKit::LocalStorageNamespace::getOrCreateStorageArea):
(WebKit::LocalStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::LocalStorageNamespace::clearAllStorageAreas):
(WebKit::LocalStorageNamespace::ephemeralOrigins const):
(WebKit::LocalStorageNamespace::cloneTo):

  • NetworkProcess/WebStorage/SessionStorageNamespace.cpp:

(WebKit::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::SessionStorageNamespace::~SessionStorageNamespace):
(WebKit::SessionStorageNamespace::addAllowedConnection):
(WebKit::SessionStorageNamespace::removeAllowedConnection):
(WebKit::SessionStorageNamespace::getOrCreateStorageArea):
(WebKit::SessionStorageNamespace::cloneTo):
(WebKit::SessionStorageNamespace::origins const):
(WebKit::SessionStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::SessionStorageNamespace::clearAllStorageAreas):

  • NetworkProcess/WebStorage/StorageArea.cpp:

(WebKit::StorageArea::StorageArea):
(WebKit::StorageArea::~StorageArea):
(WebKit::StorageArea::addListener):
(WebKit::StorageArea::removeListener):
(WebKit::StorageArea::hasListener const):
(WebKit::StorageArea::clone const):
(WebKit::StorageArea::setItem):
(WebKit::StorageArea::setItems):
(WebKit::StorageArea::removeItem):
(WebKit::StorageArea::clear):
(WebKit::StorageArea::items const):
(WebKit::StorageArea::openDatabaseAndImportItemsIfNeeded const):
(WebKit::StorageArea::dispatchEvents const):

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::addAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::processDidCloseConnection):
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
(WebKit::StorageManager::waitUntilTasksFinished):
(WebKit::StorageManager::suspend):
(WebKit::StorageManager::resume):
(WebKit::StorageManager::findStorageArea const):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):

  • NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp:

(WebKit::TransientLocalStorageNamespace::TransientLocalStorageNamespace):
(WebKit::TransientLocalStorageNamespace::~TransientLocalStorageNamespace):
(WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea):
(WebKit::TransientLocalStorageNamespace::origins const):
(WebKit::TransientLocalStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::TransientLocalStorageNamespace::clearAllStorageAreas):

Location:
trunk/Source/WebKit
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r248447 r248452  
     12019-08-08  Chris Dumez  <cdumez@apple.com>
     2
     3        Add threading assertions to WebStorage code
     4        https://bugs.webkit.org/show_bug.cgi?id=200550
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        Add threading assertions to WebStorage code for extra safety.
     9
     10        * NetworkProcess/WebStorage/LocalStorageNamespace.cpp:
     11        (WebKit::LocalStorageNamespace::LocalStorageNamespace):
     12        (WebKit::LocalStorageNamespace::~LocalStorageNamespace):
     13        (WebKit::LocalStorageNamespace::getOrCreateStorageArea):
     14        (WebKit::LocalStorageNamespace::clearStorageAreasMatchingOrigin):
     15        (WebKit::LocalStorageNamespace::clearAllStorageAreas):
     16        (WebKit::LocalStorageNamespace::ephemeralOrigins const):
     17        (WebKit::LocalStorageNamespace::cloneTo):
     18        * NetworkProcess/WebStorage/SessionStorageNamespace.cpp:
     19        (WebKit::SessionStorageNamespace::SessionStorageNamespace):
     20        (WebKit::SessionStorageNamespace::~SessionStorageNamespace):
     21        (WebKit::SessionStorageNamespace::addAllowedConnection):
     22        (WebKit::SessionStorageNamespace::removeAllowedConnection):
     23        (WebKit::SessionStorageNamespace::getOrCreateStorageArea):
     24        (WebKit::SessionStorageNamespace::cloneTo):
     25        (WebKit::SessionStorageNamespace::origins const):
     26        (WebKit::SessionStorageNamespace::clearStorageAreasMatchingOrigin):
     27        (WebKit::SessionStorageNamespace::clearAllStorageAreas):
     28        * NetworkProcess/WebStorage/StorageArea.cpp:
     29        (WebKit::StorageArea::StorageArea):
     30        (WebKit::StorageArea::~StorageArea):
     31        (WebKit::StorageArea::addListener):
     32        (WebKit::StorageArea::removeListener):
     33        (WebKit::StorageArea::hasListener const):
     34        (WebKit::StorageArea::clone const):
     35        (WebKit::StorageArea::setItem):
     36        (WebKit::StorageArea::setItems):
     37        (WebKit::StorageArea::removeItem):
     38        (WebKit::StorageArea::clear):
     39        (WebKit::StorageArea::items const):
     40        (WebKit::StorageArea::openDatabaseAndImportItemsIfNeeded const):
     41        (WebKit::StorageArea::dispatchEvents const):
     42        * NetworkProcess/WebStorage/StorageManager.cpp:
     43        (WebKit::StorageManager::createSessionStorageNamespace):
     44        (WebKit::StorageManager::destroySessionStorageNamespace):
     45        (WebKit::StorageManager::addAllowedSessionStorageNamespaceConnection):
     46        (WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection):
     47        (WebKit::StorageManager::cloneSessionStorageNamespace):
     48        (WebKit::StorageManager::processDidCloseConnection):
     49        (WebKit::StorageManager::getSessionStorageOrigins):
     50        (WebKit::StorageManager::deleteSessionStorageOrigins):
     51        (WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
     52        (WebKit::StorageManager::getLocalStorageOrigins):
     53        (WebKit::StorageManager::getLocalStorageOriginDetails):
     54        (WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
     55        (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
     56        (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
     57        (WebKit::StorageManager::waitUntilTasksFinished):
     58        (WebKit::StorageManager::suspend):
     59        (WebKit::StorageManager::resume):
     60        (WebKit::StorageManager::findStorageArea const):
     61        (WebKit::StorageManager::getOrCreateLocalStorageNamespace):
     62        (WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):
     63        * NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp:
     64        (WebKit::TransientLocalStorageNamespace::TransientLocalStorageNamespace):
     65        (WebKit::TransientLocalStorageNamespace::~TransientLocalStorageNamespace):
     66        (WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea):
     67        (WebKit::TransientLocalStorageNamespace::origins const):
     68        (WebKit::TransientLocalStorageNamespace::clearStorageAreasMatchingOrigin):
     69        (WebKit::TransientLocalStorageNamespace::clearAllStorageAreas):
     70
    1712019-08-08  Brent Fulgham  <bfulgham@apple.com>
    272
  • trunk/Source/WebKit/NetworkProcess/WebStorage/LocalStorageNamespace.cpp

    r248422 r248452  
    4040    , m_quotaInBytes(StorageManager::localStorageDatabaseQuotaInBytes)
    4141{
     42    ASSERT(!RunLoop::isMain());
    4243}
    4344
    4445LocalStorageNamespace::~LocalStorageNamespace()
    4546{
     47    ASSERT(!RunLoop::isMain());
    4648}
    4749
    4850auto LocalStorageNamespace::getOrCreateStorageArea(SecurityOriginData&& securityOrigin, IsEphemeral isEphemeral) -> Ref<StorageArea>
    4951{
     52    ASSERT(!RunLoop::isMain());
    5053    return *m_storageAreaMap.ensure(securityOrigin, [&]() mutable {
    5154        return StorageArea::create(isEphemeral == IsEphemeral::Yes ? nullptr : this, WTFMove(securityOrigin), m_quotaInBytes);
     
    5558void LocalStorageNamespace::clearStorageAreasMatchingOrigin(const SecurityOriginData& securityOrigin)
    5659{
     60    ASSERT(!RunLoop::isMain());
    5761    auto originAndStorageArea = m_storageAreaMap.find(securityOrigin);
    5862    if (originAndStorageArea != m_storageAreaMap.end())
     
    6266void LocalStorageNamespace::clearAllStorageAreas()
    6367{
     68    ASSERT(!RunLoop::isMain());
    6469    for (auto storageArea : m_storageAreaMap.values())
    6570        storageArea->clear();
     
    6873Vector<SecurityOriginData> LocalStorageNamespace::ephemeralOrigins() const
    6974{
     75    ASSERT(!RunLoop::isMain());
    7076    Vector<SecurityOriginData> origins;
    7177    for (const auto& storageArea : m_storageAreaMap.values()) {
     
    7884void LocalStorageNamespace::cloneTo(LocalStorageNamespace& newLocalStorageNamespace)
    7985{
     86    ASSERT(!RunLoop::isMain());
    8087    for (auto& pair : m_storageAreaMap)
    8188        newLocalStorageNamespace.m_storageAreaMap.add(pair.key, pair.value->clone());
  • trunk/Source/WebKit/NetworkProcess/WebStorage/SessionStorageNamespace.cpp

    r248422 r248452  
    3636    : m_quotaInBytes(quotaInBytes)
    3737{
     38    ASSERT(!RunLoop::isMain());
    3839}
    3940
    4041SessionStorageNamespace::~SessionStorageNamespace()
    4142{
     43    ASSERT(!RunLoop::isMain());
    4244}
    4345
    4446void SessionStorageNamespace::addAllowedConnection(IPC::Connection::UniqueID allowedConnection)
    4547{
     48    ASSERT(!RunLoop::isMain());
    4649    m_allowedConnections.add(allowedConnection);
    4750}
     
    5053void SessionStorageNamespace::removeAllowedConnection(IPC::Connection::UniqueID allowedConnection)
    5154{
     55    ASSERT(!RunLoop::isMain());
    5256    ASSERT(m_allowedConnections.contains(allowedConnection));
    5357    m_allowedConnections.remove(allowedConnection);
     
    5559auto SessionStorageNamespace::getOrCreateStorageArea(SecurityOriginData&& securityOrigin) -> Ref<StorageArea>
    5660{
     61    ASSERT(!RunLoop::isMain());
    5762    return *m_storageAreaMap.ensure(securityOrigin, [this, &securityOrigin]() mutable {
    5863        return StorageArea::create(nullptr, WTFMove(securityOrigin), m_quotaInBytes);
     
    6267void SessionStorageNamespace::cloneTo(SessionStorageNamespace& newSessionStorageNamespace)
    6368{
     69    ASSERT(!RunLoop::isMain());
    6470    ASSERT_UNUSED(newSessionStorageNamespace, newSessionStorageNamespace.isEmpty());
    6571
     
    7076Vector<SecurityOriginData> SessionStorageNamespace::origins() const
    7177{
     78    ASSERT(!RunLoop::isMain());
    7279    Vector<SecurityOriginData> origins;
    7380
     
    8289void SessionStorageNamespace::clearStorageAreasMatchingOrigin(const SecurityOriginData& securityOrigin)
    8390{
     91    ASSERT(!RunLoop::isMain());
    8492    auto originAndStorageArea = m_storageAreaMap.find(securityOrigin);
    8593    if (originAndStorageArea != m_storageAreaMap.end())
     
    8997void SessionStorageNamespace::clearAllStorageAreas()
    9098{
     99    ASSERT(!RunLoop::isMain());
    91100    for (auto& storageArea : m_storageAreaMap.values())
    92101        storageArea->clear();
  • trunk/Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp

    r248422 r248452  
    4343    , m_storageMap(StorageMap::create(m_quotaInBytes))
    4444{
     45    ASSERT(!RunLoop::isMain());
    4546}
    4647
    4748StorageArea::~StorageArea()
    4849{
     50    ASSERT(!RunLoop::isMain());
    4951    ASSERT(m_eventListeners.isEmpty());
    5052    ASSERT(!m_localStorageNamespace);
     
    5658void StorageArea::addListener(IPC::Connection::UniqueID connectionID, uint64_t storageMapID)
    5759{
     60    ASSERT(!RunLoop::isMain());
    5861    ASSERT(!m_eventListeners.contains(std::make_pair(connectionID, storageMapID)));
    5962    m_eventListeners.add(std::make_pair(connectionID, storageMapID));
     
    6265void StorageArea::removeListener(IPC::Connection::UniqueID connectionID, uint64_t storageMapID)
    6366{
     67    ASSERT(!RunLoop::isMain());
    6468    ASSERT(isEphemeral() || m_eventListeners.contains(std::make_pair(connectionID, storageMapID)));
    6569    m_eventListeners.remove(std::make_pair(connectionID, storageMapID));
     
    6872bool StorageArea::hasListener(IPC::Connection::UniqueID connectionID, uint64_t storageMapID) const
    6973{
     74    ASSERT(!RunLoop::isMain());
    7075    return m_eventListeners.contains(std::make_pair(connectionID, storageMapID));
    7176}
     
    7378Ref<StorageArea> StorageArea::clone() const
    7479{
     80    ASSERT(!RunLoop::isMain());
    7581    ASSERT(!m_localStorageNamespace);
    7682
     
    8389void StorageArea::setItem(IPC::Connection::UniqueID sourceConnection, uint64_t sourceStorageAreaID, const String& key, const String& value, const String& urlString, bool& quotaException)
    8490{
     91    ASSERT(!RunLoop::isMain());
    8592    openDatabaseAndImportItemsIfNeeded();
    8693
     
    102109void StorageArea::setItems(const HashMap<String, String>& items)
    103110{
     111    ASSERT(!RunLoop::isMain());
    104112    // Import items from web process if items are not stored on disk.
    105113    if (!isEphemeral())
     
    120128void StorageArea::removeItem(IPC::Connection::UniqueID sourceConnection, uint64_t sourceStorageAreaID, const String& key, const String& urlString)
    121129{
     130    ASSERT(!RunLoop::isMain());
    122131    openDatabaseAndImportItemsIfNeeded();
    123132
     
    138147void StorageArea::clear(IPC::Connection::UniqueID sourceConnection, uint64_t sourceStorageAreaID, const String& urlString)
    139148{
     149    ASSERT(!RunLoop::isMain());
    140150    openDatabaseAndImportItemsIfNeeded();
    141151
     
    153163const HashMap<String, String>& StorageArea::items() const
    154164{
     165    ASSERT(!RunLoop::isMain());
    155166    openDatabaseAndImportItemsIfNeeded();
    156167
     
    160171void StorageArea::clear()
    161172{
     173    ASSERT(!RunLoop::isMain());
    162174    m_storageMap = StorageMap::create(m_quotaInBytes);
    163175
     
    177189void StorageArea::openDatabaseAndImportItemsIfNeeded() const
    178190{
     191    ASSERT(!RunLoop::isMain());
    179192    if (!m_localStorageNamespace)
    180193        return;
     
    194207void StorageArea::dispatchEvents(IPC::Connection::UniqueID sourceConnection, uint64_t sourceStorageAreaID, const String& key, const String& oldValue, const String& newValue, const String& urlString) const
    195208{
     209    ASSERT(!RunLoop::isMain());
    196210    for (auto it = m_eventListeners.begin(), end = m_eventListeners.end(); it != end; ++it) {
    197211        sourceStorageAreaID = it->first == sourceConnection ? sourceStorageAreaID : 0;
  • trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp

    r248422 r248452  
    6868void StorageManager::createSessionStorageNamespace(uint64_t storageNamespaceID, unsigned quotaInBytes)
    6969{
     70    ASSERT(RunLoop::isMain());
    7071    m_queue->dispatch([this, protectedThis = makeRef(*this), storageNamespaceID, quotaInBytes]() mutable {
    7172        m_sessionStorageNamespaces.ensure(storageNamespaceID, [quotaInBytes] {
     
    7778void StorageManager::destroySessionStorageNamespace(uint64_t storageNamespaceID)
    7879{
     80    ASSERT(RunLoop::isMain());
    7981    m_queue->dispatch([this, protectedThis = makeRef(*this), storageNamespaceID] {
    8082        ASSERT(m_sessionStorageNamespaces.contains(storageNamespaceID));
     
    8890void StorageManager::addAllowedSessionStorageNamespaceConnection(uint64_t storageNamespaceID, IPC::Connection& allowedConnection)
    8991{
     92    ASSERT(RunLoop::isMain());
    9093    auto allowedConnectionID = allowedConnection.uniqueID();
    9194    auto addResult = m_connections.add(allowedConnectionID);
     
    102105void StorageManager::removeAllowedSessionStorageNamespaceConnection(uint64_t storageNamespaceID, IPC::Connection& allowedConnection)
    103106{
     107    ASSERT(RunLoop::isMain());
    104108    auto allowedConnectionID = allowedConnection.uniqueID();
    105109    m_queue->dispatch([this, protectedThis = makeRef(*this), allowedConnectionID, storageNamespaceID]() mutable {
     
    112116void StorageManager::cloneSessionStorageNamespace(uint64_t storageNamespaceID, uint64_t newStorageNamespaceID)
    113117{
     118    ASSERT(RunLoop::isMain());
    114119    m_queue->dispatch([this, protectedThis = makeRef(*this), storageNamespaceID, newStorageNamespaceID] {
    115120        SessionStorageNamespace* sessionStorageNamespace = m_sessionStorageNamespaces.get(storageNamespaceID);
     
    137142void StorageManager::processDidCloseConnection(IPC::Connection& connection)
    138143{
     144    ASSERT(RunLoop::isMain());
    139145    if (m_connections.remove(connection.uniqueID()))
    140146        connection.removeWorkQueueMessageReceiver(Messages::StorageManager::messageReceiverName());
     
    169175void StorageManager::getSessionStorageOrigins(Function<void(HashSet<WebCore::SecurityOriginData>&&)>&& completionHandler)
    170176{
     177    ASSERT(RunLoop::isMain());
    171178    m_queue->dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
    172179        HashSet<SecurityOriginData> origins;
     
    185192void StorageManager::deleteSessionStorageOrigins(Function<void()>&& completionHandler)
    186193{
     194    ASSERT(RunLoop::isMain());
    187195    m_queue->dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
    188196        for (auto& sessionStorageNamespace : m_sessionStorageNamespaces.values())
     
    195203void StorageManager::deleteSessionStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>& origins, Function<void()>&& completionHandler)
    196204{
     205    ASSERT(RunLoop::isMain());
    197206    m_queue->dispatch([this, protectedThis = makeRef(*this), copiedOrigins = crossThreadCopy(origins), completionHandler = WTFMove(completionHandler)]() mutable {
    198207        for (auto& origin : copiedOrigins) {
     
    207216void StorageManager::getLocalStorageOrigins(Function<void(HashSet<WebCore::SecurityOriginData>&&)>&& completionHandler)
    208217{
     218    ASSERT(RunLoop::isMain());
    209219    m_queue->dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
    210220        HashSet<SecurityOriginData> origins;
     
    233243void StorageManager::getLocalStorageOriginDetails(Function<void(Vector<LocalStorageDatabaseTracker::OriginDetails>&&)>&& completionHandler)
    234244{
     245    ASSERT(RunLoop::isMain());
    235246    m_queue->dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
    236247        Vector<LocalStorageDatabaseTracker::OriginDetails> originDetails;
     
    246257void StorageManager::deleteLocalStorageEntriesForOrigin(const SecurityOriginData& securityOrigin)
    247258{
     259    ASSERT(RunLoop::isMain());
    248260    m_queue->dispatch([this, protectedThis = makeRef(*this), copiedOrigin = securityOrigin.isolatedCopy()]() mutable {
    249261        for (auto& localStorageNamespace : m_localStorageNamespaces.values())
     
    260272void StorageManager::deleteLocalStorageOriginsModifiedSince(WallTime time, Function<void()>&& completionHandler)
    261273{
     274    ASSERT(RunLoop::isMain());
    262275    m_queue->dispatch([this, protectedThis = makeRef(*this), time, completionHandler = WTFMove(completionHandler)]() mutable {
    263276        if (m_localStorageDatabaseTracker) {
     
    284297void StorageManager::deleteLocalStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>& origins, Function<void()>&& completionHandler)
    285298{
     299    ASSERT(RunLoop::isMain());
    286300    m_queue->dispatch([this, protectedThis = makeRef(*this), copiedOrigins = crossThreadCopy(origins), completionHandler = WTFMove(completionHandler)]() mutable {
    287301        for (auto& origin : copiedOrigins) {
     
    477491void StorageManager::waitUntilTasksFinished()
    478492{
     493    ASSERT(RunLoop::isMain());
    479494    BinarySemaphore semaphore;
    480495    m_queue->dispatch([this, &semaphore] {
     
    497512void StorageManager::suspend(CompletionHandler<void()>&& completionHandler)
    498513{
     514    ASSERT(RunLoop::isMain());
    499515    CompletionHandlerCallingScope completionHandlerCaller(WTFMove(completionHandler));
    500516    if (!m_localStorageDatabaseTracker)
     
    526542void StorageManager::resume()
    527543{
     544    ASSERT(RunLoop::isMain());
    528545    if (!m_localStorageDatabaseTracker)
    529546        return;
     
    538555StorageArea* StorageManager::findStorageArea(IPC::Connection& connection, uint64_t storageMapID) const
    539556{
     557    ASSERT(!RunLoop::isMain());
    540558    std::pair<IPC::Connection::UniqueID, uint64_t> connectionAndStorageMapIDPair(connection.uniqueID(), storageMapID);
    541559
     
    548566LocalStorageNamespace* StorageManager::getOrCreateLocalStorageNamespace(uint64_t storageNamespaceID)
    549567{
     568    ASSERT(!RunLoop::isMain());
    550569    if (!m_localStorageNamespaces.isValidKey(storageNamespaceID))
    551570        return nullptr;
     
    558577TransientLocalStorageNamespace* StorageManager::getOrCreateTransientLocalStorageNamespace(uint64_t storageNamespaceID, WebCore::SecurityOriginData&& topLevelOrigin)
    559578{
     579    ASSERT(!RunLoop::isMain());
    560580    if (!m_transientLocalStorageNamespaces.isValidKey({ storageNamespaceID, topLevelOrigin }))
    561581        return nullptr;
  • trunk/Source/WebKit/NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp

    r248422 r248452  
    3737    : m_quotaInBytes(StorageManager::localStorageDatabaseQuotaInBytes)
    3838{
     39    ASSERT(!RunLoop::isMain());
    3940}
    4041
    4142TransientLocalStorageNamespace::~TransientLocalStorageNamespace()
    4243{
     44    ASSERT(!RunLoop::isMain());
    4345}
    4446
    4547Ref<StorageArea> TransientLocalStorageNamespace::getOrCreateStorageArea(SecurityOriginData&& securityOrigin)
    4648{
     49    ASSERT(!RunLoop::isMain());
    4750    return *m_storageAreaMap.ensure(securityOrigin, [this, &securityOrigin]() mutable {
    4851        return StorageArea::create(nullptr, WTFMove(securityOrigin), m_quotaInBytes);
     
    5255Vector<SecurityOriginData> TransientLocalStorageNamespace::origins() const
    5356{
     57    ASSERT(!RunLoop::isMain());
    5458    Vector<SecurityOriginData> origins;
    5559
     
    6468void TransientLocalStorageNamespace::clearStorageAreasMatchingOrigin(const SecurityOriginData& securityOrigin)
    6569{
     70    ASSERT(!RunLoop::isMain());
    6671    auto originAndStorageArea = m_storageAreaMap.find(securityOrigin);
    6772    if (originAndStorageArea != m_storageAreaMap.end())
     
    7176void TransientLocalStorageNamespace::clearAllStorageAreas()
    7277{
     78    ASSERT(!RunLoop::isMain());
    7379    for (auto& storageArea : m_storageAreaMap.values())
    7480        storageArea->clear();
Note: See TracChangeset for help on using the changeset viewer.