Changeset 201461 in webkit


Ignore:
Timestamp:
May 27, 2016 12:45:42 PM (8 years ago)
Author:
beidson@apple.com
Message:

Modern IDB: After closing a Netflix video, trying to watch it again fails.
<rdar://problem/25092473> and https://bugs.webkit.org/show_bug.cgi?id=158160

Reviewed by Alex Christensen.

Source/WebCore:

New APITest: IndexedDB.WebProcessKillIDBCleanup

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::stop):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient): All active transactions need to be aborted

(without callback, since there's no connection to callback to).

(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup-1.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup-2.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup.mm: Added.
Location:
trunk
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r201455 r201461  
     12016-05-27  Brady Eidson  <beidson@apple.com>
     2
     3        Modern IDB: After closing a Netflix video, trying to watch it again fails.
     4        <rdar://problem/25092473> and https://bugs.webkit.org/show_bug.cgi?id=158160
     5
     6        Reviewed by Alex Christensen.
     7
     8        New APITest: IndexedDB.WebProcessKillIDBCleanup
     9
     10        * Modules/indexeddb/IDBTransaction.cpp:
     11        (WebCore::IDBTransaction::stop):
     12       
     13        * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
     14        (WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient): All active transactions need to be aborted
     15          (without callback, since there's no connection to callback to).
     16        (WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):
     17
    1182016-05-27  Adam Bergkvist  <adam.bergkvist@ericsson.com>
    219
  • trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp

    r201356 r201461  
    329329void IDBTransaction::stop()
    330330{
    331     LOG(IndexedDB, "IDBTransaction::stop");
     331    LOG(IndexedDB, "IDBTransaction::stop - %s", m_info.loggingString().utf8().data());
    332332    ASSERT(currentThread() == m_database->originThreadID());
    333333
  • trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp

    r201195 r201461  
    12421242        m_pendingTransactions.swap(pendingTransactions);
    12431243
     1244    Deque<RefPtr<UniqueIDBDatabaseTransaction>> transactionsToAbort;
     1245    for (auto& transaction : m_inProgressTransactions.values()) {
     1246        if (&transaction->databaseConnection() == &connection)
     1247            transactionsToAbort.append(transaction);
     1248    }
     1249
     1250    for (auto& transaction : transactionsToAbort)
     1251        transaction->abortWithoutCallback();
     1252
    12441253    if (m_currentOpenDBRequest)
    12451254        notifyCurrentRequestConnectionClosedOrFiredVersionChangeEvent(connection.identifier());
     
    14051414{
    14061415    hadDeferredTransactions = false;
     1416
     1417    if (m_pendingTransactions.isEmpty())
     1418        return nullptr;
     1419
    14071420    if (!m_backingStoreSupportsSimultaneousTransactions && hasUnfinishedTransactions()) {
    14081421        LOG(IndexedDB, "UniqueIDBDatabase::takeNextRunnableTransaction - Backing store only supports 1 transaction, and we already have 1");
  • trunk/Tools/ChangeLog

    r201458 r201461  
     12016-05-27  Brady Eidson  <beidson@apple.com>
     2
     3        Modern IDB: After closing a Netflix video, trying to watch it again fails.
     4        <rdar://problem/25092473> and https://bugs.webkit.org/show_bug.cgi?id=158160
     5
     6        Reviewed by Alex Christensen.
     7
     8        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     9        * TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup-1.html: Added.
     10        * TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup-2.html: Added.
     11        * TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup.mm: Added.
     12
    1132016-05-27  Joanmarie Diggs  <jdiggs@igalia.com>
    214
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r201433 r201461  
    6969                51393E221523952D005F39C5 /* DOMWindowExtensionBasic_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51393E1D1523944A005F39C5 /* DOMWindowExtensionBasic_Bundle.cpp */; };
    7070                5142B2731517C8C800C32B19 /* ContextMenuCanCopyURL.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5142B2721517C89100C32B19 /* ContextMenuCanCopyURL.html */; };
     71                51714EB41CF8C78C004723C4 /* WebProcessKillIDBCleanup-1.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 51714EB21CF8C761004723C4 /* WebProcessKillIDBCleanup-1.html */; };
     72                51714EB51CF8C78C004723C4 /* WebProcessKillIDBCleanup-2.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 51714EB31CF8C761004723C4 /* WebProcessKillIDBCleanup-2.html */; };
     73                51714EB81CF8CA17004723C4 /* WebProcessKillIDBCleanup.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51714EB61CF8C7A4004723C4 /* WebProcessKillIDBCleanup.mm */; };
    7174                517E7E04151119C100D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 517E7E031511187500D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html */; };
    7275                51B1EE8E1C80F5880064FB98 /* IndexedDBPersistence.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51B1EE8D1C80F5880064FB98 /* IndexedDBPersistence.mm */; };
     
    425428                        dstSubfolderSpec = 7;
    426429                        files = (
     430                                51714EB41CF8C78C004723C4 /* WebProcessKillIDBCleanup-1.html in Copy Resources */,
     431                                51714EB51CF8C78C004723C4 /* WebProcessKillIDBCleanup-2.html in Copy Resources */,
    427432                                93CFA8671CEB9E38000565A8 /* autofocused-text-input.html in Copy Resources */,
    428433                                93625D271CD9741C006DC1F1 /* large-video-without-audio.html in Copy Resources */,
     
    642647                5142B2701517C88B00C32B19 /* ContextMenuCanCopyURL.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ContextMenuCanCopyURL.mm; sourceTree = "<group>"; };
    643648                5142B2721517C89100C32B19 /* ContextMenuCanCopyURL.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ContextMenuCanCopyURL.html; sourceTree = "<group>"; };
     649                51714EB21CF8C761004723C4 /* WebProcessKillIDBCleanup-1.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "WebProcessKillIDBCleanup-1.html"; sourceTree = "<group>"; };
     650                51714EB31CF8C761004723C4 /* WebProcessKillIDBCleanup-2.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "WebProcessKillIDBCleanup-2.html"; sourceTree = "<group>"; };
     651                51714EB61CF8C7A4004723C4 /* WebProcessKillIDBCleanup.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebProcessKillIDBCleanup.mm; sourceTree = "<group>"; };
    644652                517E7DFB15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MemoryCachePruneWithinResourceLoadDelegate.mm; sourceTree = "<group>"; };
    645653                517E7E031511187500D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = MemoryCachePruneWithinResourceLoadDelegate.html; sourceTree = "<group>"; };
     
    10441052                                A16F66B81C40E9E100BD4D24 /* Resources */,
    10451053                                7CEFA9641AC0B9E200B910FD /* _WKUserContentExtensionStore.mm */,
     1054                                A1DF74301C41B65800A2F4D0 /* AlwaysRevalidatedURLSchemes.mm */,
    10461055                                2DD355351BD08378005DF4A7 /* AutoLayoutIntegration.mm */,
    10471056                                A13EBBAC1B87436F00097110 /* BundleParameters.mm */,
    10481057                                A13EBBAE1B87436F00097110 /* BundleParametersPlugIn.mm */,
     1058                                1C2B817E1C891E4200A5529F /* CancelFontSubresource.mm */,
     1059                                1C2B81811C891EFA00A5529F /* CancelFontSubresourcePlugIn.mm */,
    10491060                                A18AA8CC1C3FA218009B2B97 /* ContentFiltering.h */,
    10501061                                A14FC5861B8991B600D107EB /* ContentFiltering.mm */,
     
    10601071                                51CD1C6A1B38CE3600142CA5 /* ModalAlerts.mm */,
    10611072                                1ABC3DED1899BE6D004F0626 /* Navigation.mm */,
    1062                                 A1DF74301C41B65800A2F4D0 /* AlwaysRevalidatedURLSchemes.mm */,
    10631073                                CEA6CF2219CCF5BD0064F5A7 /* OpenAndCloseWindow.mm */,
    10641074                                C95501BE19AD2FAF0049BE3E /* Preferences.mm */,
     
    10711081                                37BCA61B1B596BA9002012CA /* ShouldOpenExternalURLsInNewWindowActions.mm */,
    10721082                                2D9A53AE1B31FA8D0074D5AA /* ShrinkToFit.mm */,
    1073                                 93E943F11CD3E87E00AC08C2 /* VideoControlsManager.mm */,
    10741083                                7CC3E1FA197E234100BE6252 /* UserContentController.mm */,
    10751084                                7C882E031C80C624006BF731 /* UserContentWorld.mm */,
    10761085                                7C882E041C80C624006BF731 /* UserContentWorldPlugIn.mm */,
    10771086                                7C882E051C80C624006BF731 /* UserContentWorldProtocol.h */,
     1087                                93E943F11CD3E87E00AC08C2 /* VideoControlsManager.mm */,
    10781088                                2D00065D1C1F58940088E6A7 /* WKPDFViewResizeCrash.mm */,
    10791089                                0F3B94A51A77266C00DE3272 /* WKWebViewEvaluateJavaScript.mm */,
    1080                                 1C2B817E1C891E4200A5529F /* CancelFontSubresource.mm */,
    1081                                 1C2B81811C891EFA00A5529F /* CancelFontSubresourcePlugIn.mm */,
     1090                                51714EB61CF8C7A4004723C4 /* WebProcessKillIDBCleanup.mm */,
    10821091                        );
    10831092                        name = "WebKit2 Cocoa";
     
    11621171                                51B1EE941C80FADD0064FB98 /* IndexedDBPersistence-1.html */,
    11631172                                51B1EE951C80FADD0064FB98 /* IndexedDBPersistence-2.html */,
     1173                                51714EB21CF8C761004723C4 /* WebProcessKillIDBCleanup-1.html */,
     1174                                51714EB31CF8C761004723C4 /* WebProcessKillIDBCleanup-2.html */,
    11641175                                93CFA8661CEB9DE1000565A8 /* autofocused-text-input.html */,
    11651176                                936F727E1CD7D9D00068A0FB /* large-video-with-audio.html */,
     
    18471858                                7CCE7EE21A411A9A00447C4C /* GetPIDAfterAbortedProcessLaunch.cpp in Sources */,
    18481859                                7CCE7F351A411B8E00447C4C /* HashMap.cpp in Sources */,
     1860                                51714EB81CF8CA17004723C4 /* WebProcessKillIDBCleanup.mm in Sources */,
    18491861                                7CCE7F361A411B8E00447C4C /* HashSet.cpp in Sources */,
    18501862                                7CCE7EFA1A411AE600447C4C /* HitTestResultNodeHandle.cpp in Sources */,
Note: See TracChangeset for help on using the changeset viewer.