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

Changeset 202935 in webkit


Ignore:
Timestamp:
Jul 7, 2016, 2:49:41 PM (10 years ago)
Author:
beidson@apple.com
Message:

Modern IDB: When IDBDatabase objects are garbage collected, they don't close their server connection.
<rdar://problem/25910345> and https://bugs.webkit.org/show_bug.cgi?id=159523

Reviewed by Alex Christensen.

Source/WebCore:

Tests: storage/indexeddb/modern/gc-closes-database-private.html

storage/indexeddb/modern/gc-closes-database.html

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::IDBDatabase): New logging.
(WebCore::IDBDatabase::~IDBDatabase): Close server connection.
(WebCore::IDBDatabase::fireVersionChangeEvent): New logging.
(WebCore::IDBDatabase::dispatchEvent): New logging.

  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::openDatabase): New logging.

LayoutTests:

  • storage/indexeddb/modern/gc-closes-database-expected.txt: Added.
  • storage/indexeddb/modern/gc-closes-database-private-expected.txt: Added.
  • storage/indexeddb/modern/gc-closes-database-private.html: Added.
  • storage/indexeddb/modern/gc-closes-database.html: Added.
  • storage/indexeddb/modern/resources/gc-closes-database.js: Added.
Location:
trunk
Files:
5 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r202934 r202935  
     12016-07-07  Brady Eidson  <beidson@apple.com>
     2
     3        Modern IDB: When IDBDatabase objects are garbage collected, they don't close their server connection.
     4        <rdar://problem/25910345> and https://bugs.webkit.org/show_bug.cgi?id=159523
     5
     6        Reviewed by Alex Christensen.
     7
     8        * storage/indexeddb/modern/gc-closes-database-expected.txt: Added.
     9        * storage/indexeddb/modern/gc-closes-database-private-expected.txt: Added.
     10        * storage/indexeddb/modern/gc-closes-database-private.html: Added.
     11        * storage/indexeddb/modern/gc-closes-database.html: Added.
     12        * storage/indexeddb/modern/resources/gc-closes-database.js: Added.
     13
    1142016-07-07  Frederic Wang  <fwang@igalia.com>
    215
  • trunk/Source/WebCore/ChangeLog

    r202934 r202935  
     12016-07-07  Brady Eidson  <beidson@apple.com>
     2
     3        Modern IDB: When IDBDatabase objects are garbage collected, they don't close their server connection.
     4        <rdar://problem/25910345> and https://bugs.webkit.org/show_bug.cgi?id=159523
     5
     6        Reviewed by Alex Christensen.
     7
     8        Tests: storage/indexeddb/modern/gc-closes-database-private.html
     9               storage/indexeddb/modern/gc-closes-database.html
     10
     11        * Modules/indexeddb/IDBDatabase.cpp:
     12        (WebCore::IDBDatabase::IDBDatabase): New logging.
     13        (WebCore::IDBDatabase::~IDBDatabase): Close server connection.
     14        (WebCore::IDBDatabase::fireVersionChangeEvent): New logging.
     15        (WebCore::IDBDatabase::dispatchEvent): New logging.
     16
     17        * Modules/indexeddb/client/IDBConnectionToServer.cpp:
     18        (WebCore::IDBClient::IDBConnectionToServer::openDatabase): New logging.
     19
    1202016-07-07  Frederic Wang  <fwang@igalia.com>
    221
  • trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp

    r202833 r202935  
    5656    , m_databaseConnectionIdentifier(resultData.databaseConnectionIdentifier())
    5757{
    58     LOG(IndexedDB, "IDBDatabase::IDBDatabase - Creating database %s with version %" PRIu64 " connection %" PRIu64, m_info.name().utf8().data(), m_info.version(), m_databaseConnectionIdentifier);
     58    LOG(IndexedDB, "IDBDatabase::IDBDatabase - Creating database %s with version %" PRIu64 " connection %" PRIu64 " (%p)", m_info.name().utf8().data(), m_info.version(), m_databaseConnectionIdentifier, this);
    5959    suspendIfNeeded();
    6060    m_connectionProxy->registerDatabaseConnection(*this);
     
    6464{
    6565    ASSERT(currentThread() == originThreadID());
     66
     67    if (!m_closedInServer)
     68        m_connectionProxy->databaseConnectionClosed(*this);
     69
    6670    m_connectionProxy->unregisterDatabaseConnection(*this);
    6771}
     
    461465{
    462466    uint64_t currentVersion = m_info.version();
    463     LOG(IndexedDB, "IDBDatabase::fireVersionChangeEvent - current version %" PRIu64 ", requested version %" PRIu64 ", connection %" PRIu64, currentVersion, requestedVersion, m_databaseConnectionIdentifier);
     467    LOG(IndexedDB, "IDBDatabase::fireVersionChangeEvent - current version %" PRIu64 ", requested version %" PRIu64 ", connection %" PRIu64 " (%p)", currentVersion, requestedVersion, m_databaseConnectionIdentifier, this);
    464468
    465469    ASSERT(currentThread() == originThreadID());
     
    477481bool IDBDatabase::dispatchEvent(Event& event)
    478482{
    479     LOG(IndexedDB, "IDBDatabase::dispatchEvent (%" PRIu64 ")", m_databaseConnectionIdentifier);
     483    LOG(IndexedDB, "IDBDatabase::dispatchEvent (%" PRIu64 ") (%p)", m_databaseConnectionIdentifier, this);
    480484    ASSERT(currentThread() == originThreadID());
    481485
  • trunk/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp

    r202809 r202935  
    7878void IDBConnectionToServer::openDatabase(const IDBRequestData& request)
    7979{
    80     LOG(IndexedDB, "IDBConnectionToServer::openDatabase - %s (%" PRIu64 ")", request.databaseIdentifier().debugString().utf8().data(), request.requestedVersion());
     80    LOG(IndexedDB, "IDBConnectionToServer::openDatabase - %s (%s) (%" PRIu64 ")", request.databaseIdentifier().debugString().utf8().data(), request.requestIdentifier().loggingString().utf8().data(), request.requestedVersion());
    8181    m_delegate->openDatabase(request);
    8282}
Note: See TracChangeset for help on using the changeset viewer.