2009-08-20 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Dimitri Glazkov.
Added a client to SQLTransaction. In addition to being a place to
get notifications about certain events in a transaction, it is
also an abstraction layer that allows us to plug in different
implementations for each port for how transactions interract with
the main DB. For example, WebCore's default implementation will
make direct calls to DatabaseTracker's methods. At the same time,
Chromium's implementation will send IPCs to the browser process
whenever a transaction needs something from the main DB.
All storage tests pass.
https://bugs.webkit.org/show_bug.cgi?id=27967
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* storage/Database.cpp:
(WebCore::Database::transactionClient):
* storage/Database.h:
* storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::DatabaseThread):
* storage/DatabaseThread.h:
(WebCore::DatabaseThread::transactionClient):
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::runCurrentStatement):
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
(WebCore::SQLTransaction::postflightAndCommit):
* storage/SQLTransactionClient.cpp: Added.
* storage/SQLTransactionClient.h: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47612 268f45cc-cd09-0410-ab3c-d52691b4dbfc
12 files changed