Changeset 193786 in webkit


Ignore:
Timestamp:
Dec 8, 2015, 3:02:58 PM (10 years ago)
Author:
beidson@apple.com
Message:

Modern IDB: Fire blocked events for delete requests that are blocked.
https://bugs.webkit.org/show_bug.cgi?id=152015

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Previous failing tests now pass, and previously timing-out tests now complete).

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::maybeDeleteDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::handleDelete):
(WebCore::IDBServer::UniqueIDBDatabase::deleteOrRunTransactionsTimerFired):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r193785 r193786  
     12015-12-08  Brady Eidson  <beidson@apple.com>
     2
     3        Modern IDB: Fire blocked events for delete requests that are blocked.
     4        https://bugs.webkit.org/show_bug.cgi?id=152015
     5
     6        Reviewed by Alex Christensen.
     7
     8        * platform/mac-wk1/TestExpectations:
     9
    1102015-12-08  Brady Eidson  <beidson@apple.com>
    211
  • trunk/LayoutTests/platform/mac-wk1/TestExpectations

    r193785 r193786  
    6464storage/indexeddb/database-quota.html [ Skip ]
    6565storage/indexeddb/deleted-objects.html [ Skip ]
     66storage/indexeddb/deletedatabase-delayed-by-versionchange.html [ Skip ]
    6667storage/indexeddb/dont-wedge.html [ Skip ]
    6768storage/indexeddb/index-multientry.html [ Skip ]
     
    8485
    8586# IDB tests that timeout                                                               
    86 storage/indexeddb/database-closepending-flag.html [ Skip ]
    87 storage/indexeddb/deletedatabase-blocked.html [ Skip ]
    88 storage/indexeddb/deletedatabase-delayed-by-versionchange.html [ Skip ]
    8987storage/indexeddb/intversion-pending-version-changes-ascending.html [ Skip ]
    9088storage/indexeddb/odd-strings.html [ Skip ]
     
    9694storage/indexeddb/createIndex-after-failure.html [ Failure ]
    9795storage/indexeddb/cursor-continue.html [ Failure ]
     96storage/indexeddb/database-closepending-flag.html [ Failure ]
    9897storage/indexeddb/database-deletepending-flag.html [ Failure ]
    9998storage/indexeddb/delete-closed-database-object.html [ Failure ]
    100 storage/indexeddb/delete-in-upgradeneeded-close-in-open-success.html [ Failure ]
    10199storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange.html [ Failure ]
    102 storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange.html [ Failure ]
    103 storage/indexeddb/deletedatabase-not-blocked.html [ Failure ]
    104100storage/indexeddb/factory-cmp.html [ Failure ]
    105101storage/indexeddb/index-basics.html [ Failure ]
  • trunk/Source/WebCore/ChangeLog

    r193784 r193786  
     12015-12-08  Brady Eidson  <beidson@apple.com>
     2
     3        Modern IDB: Fire blocked events for delete requests that are blocked.
     4        https://bugs.webkit.org/show_bug.cgi?id=152015
     5
     6        Reviewed by Alex Christensen.
     7
     8        No new tests (Previous failing tests now pass, and previously timing-out tests now complete).
     9
     10        * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
     11        (WebCore::IDBServer::UniqueIDBDatabase::maybeDeleteDatabase):
     12        (WebCore::IDBServer::UniqueIDBDatabase::handleDelete):
     13        (WebCore::IDBServer::UniqueIDBDatabase::deleteOrRunTransactionsTimerFired):
     14        * Modules/indexeddb/server/UniqueIDBDatabase.h:
     15
    1162015-12-08  Brady Eidson  <beidson@apple.com>
    217
  • trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp

    r193784 r193786  
    8585}
    8686
    87 bool UniqueIDBDatabase::maybeDeleteDatabase()
     87bool UniqueIDBDatabase::maybeDeleteDatabase(IDBServerOperation* newestDeleteOperation)
    8888{
    8989    ASSERT(isMainThread());
     
    9696            m_hasNotifiedConnectionsOfDelete = true;
    9797        }
     98
     99        if (newestDeleteOperation)
     100            newestDeleteOperation->connection().notifyOpenDBRequestBlocked(newestDeleteOperation->requestData().requestIdentifier(), m_databaseInfo->version(), 0);
     101
    98102        return false;
    99103    }
     
    225229
    226230    auto operation = IDBServerOperation::create(connection, requestData);
     231    auto* rawOperation = &operation.get();
    227232    m_pendingDeleteDatabaseOperations.append(WTF::move(operation));
    228233
     
    234239    m_deletePending = true;
    235240
    236     maybeDeleteDatabase();
     241    maybeDeleteDatabase(rawOperation);
    237242}
    238243
     
    905910    LOG(IndexedDB, "(main) UniqueIDBDatabase::deleteOrRunTransactionsTimerFired");
    906911
    907     if (m_deletePending && maybeDeleteDatabase())
     912    if (m_deletePending && maybeDeleteDatabase(nullptr))
    908913        return;
    909914
  • trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h

    r193431 r193786  
    107107    void handleOpenDatabaseOperations();
    108108    void addOpenDatabaseConnection(Ref<UniqueIDBDatabaseConnection>&&);
    109     bool maybeDeleteDatabase();
     109    bool maybeDeleteDatabase(IDBServerOperation*);
    110110    bool hasAnyOpenConnections() const;
    111111
Note: See TracChangeset for help on using the changeset viewer.