Skip to content
  • alecflett@chromium.org's avatar
    IndexedDB: Pass metadata in to IDBOpenDBRequest.onUpgradeNeeded/onSuccess · a5b12aca
    alecflett@chromium.org authored
    https://bugs.webkit.org/show_bug.cgi?id=103920
    
    Reviewed by Dimitri Glazkov.
    
    Source/WebCore:
    
    Update IDBCallbacks::onSuccess and IDBCallbacks::onUpgradeNeeded to
    pass through a metadata parameter. While there, remove the unused
    IDBTransactionBackendInterface parameter to onUpgradeNeeded.
    
    As this is another step in the IDB refactor, I've simplified future cleanup
    work by making the WebKit API code still use the old API. This
    will make it possible to outright remove code on the chromium side rather
    than another three-step checkin.
    
    No new tests, as this is more refactoring.
    
    * Modules/indexeddb/IDBCallbacks.h:
    (WebCore::IDBCallbacks::onUpgradeNeeded): new method signature.
    (WebCore::IDBCallbacks::onSuccess): new method signature.
    * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
    (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
    (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
    (WebCore::IDBDatabaseBackendImpl::openConnection):
    * Modules/indexeddb/IDBOpenDBRequest.cpp:
    (WebCore::IDBOpenDBRequest::onUpgradeNeeded): use passed-in metadata.
    (WebCore::IDBOpenDBRequest::onSuccess): use passed-in metadata.
    * Modules/indexeddb/IDBOpenDBRequest.h:
    (IDBOpenDBRequest):
    
    Source/WebKit/chromium:
    
    Support the new IDBCallbacks::onSuccess and IDBCallbacks::onUpgradeNeeded
    while maintaining chromium compatibility by shimming in the old API
    in the WebKit side. Future code will clean this up so that it is just a
    pass-through as it was before.
    
    * public/WebIDBCallbacks.h:
    (WebKit):
    (WebKit::WebIDBCallbacks::onSuccess): new method signature.
    (WebKit::WebIDBCallbacks::onUpgradeNeeded): new method signature.
    * src/IDBCallbacksProxy.cpp:
    (WebKit::IDBCallbacksProxy::onSuccess): call on new method signature proxies through old API.
    (WebKit):
    (WebKit::IDBCallbacksProxy::onUpgradeNeeded): call on new method signature proxies through old API.
    * src/IDBCallbacksProxy.h:
    (IDBCallbacksProxy):
    * src/WebIDBCallbacksImpl.cpp:
    (WebKit::WebIDBCallbacksImpl::onSuccess): call on old WebKit proxy signature calls new API.
    (WebKit):
    (WebKit::WebIDBCallbacksImpl::onUpgradeNeeded): call on old WebKit proxy signature calls new API.
    * src/WebIDBCallbacksImpl.h:
    (WebIDBCallbacksImpl):
    * tests/IDBAbortOnCorruptTest.cpp: new method signature.
    (WebCore::MockIDBCallbacks::onSuccess):
    * tests/IDBDatabaseBackendTest.cpp: new method signature.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141049 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    a5b12aca