Skip to content
  • jsbell@chromium.org's avatar
    [V8] IndexedDB: Minor GC can collect IDBDatabase wrapper with versionchange handler · 5323fa0e
    jsbell@chromium.org authored
    https://bugs.webkit.org/show_bug.cgi?id=108670
    
    Reviewed by Kentaro Hara.
    
    Source/WebCore:
    
    Prevent IDBDatabase's wrapper from being GC'd while the database is open if it has
    listeners, as those listeners may close the database in response to events.
    
    Also, removed extraneous super-calls from hasPendingActivity() overrides.
    
    Test: storage/indexeddb/database-wrapper.html
    
    * Modules/indexeddb/IDBDatabase.cpp:
    (WebCore::IDBDatabase::hasPendingActivity): Implemented.
    * Modules/indexeddb/IDBDatabase.h: Declared.
    * Modules/indexeddb/IDBRequest.cpp:
    (WebCore::IDBRequest::hasPendingActivity): Simplified.
    * Modules/indexeddb/IDBTransaction.cpp:
    (WebCore::IDBTransaction::hasPendingActivity): Simplified.
    
    LayoutTests:
    
    * storage/indexeddb/database-wrapper-expected.txt: Added.
    * storage/indexeddb/database-wrapper.html: Added.
    * storage/indexeddb/resources/database-wrapper.js: Added.
    (test):
    (openDB):
    (onUpgradeNeeded):
    (openSuccess.get request.onsuccess):
    (onVersionChange):
    (collectGarbage):
    (openAgain):
    (onBlocked):
    (openAgainSuccess):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142483 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    5323fa0e