1. Changes the order in which some functions are called to match
authordumi@chromium.org <dumi@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 29 Dec 2009 20:51:32 +0000 (20:51 +0000)
committerdumi@chromium.org <dumi@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 29 Dec 2009 20:51:32 +0000 (20:51 +0000)
commit608fda2c2b67bd29377ac9a21911d507d7a5ccfa
tree3995f52f7fe286b23b5aee339c868b7725c214cc
parentc915c32d2d78986179592dc8621416b9174cec09
1. Changes the order in which some functions are called to match
the pre-r52536 order. Namely, when a new Database object is
created, DatabaseTracker::addOpenDatabase() is called in the
constructor, before doing anything else related to that database
(like trying to get a file handle to the database
file). Chromium's implementation depends on this ordering.
2. Changes Database::performOpenAndVerify() to close the open
handle to the database file immediately if the database version
does not match the expected one. The current behavior is to add
the Database object to a DatabaseThread collection and let the
database thread close the handle when it's destroyed.

Reviewed by Maciej Stachowiak.

https://bugs.webkit.org/show_bug.cgi?id=33005

All LayoutTests/storage tests pass in clean WebKit and Chromium
clients.

* storage/Database.cpp:
(WebCore::Database::openDatabase): Notify DatabaseTracker and
Document that a Database object is about to be destroyed (when a
database file cannot be opened, or its version doesn't match the
expected one).
(WebCore::Database::Database): Notify DatabaseTracker and Document
that a new Database object was created.
(WebCore::Database::performOpenAndVerify): If a database version
does not match the expected one, immediately close the open file
handle to the database file.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@52631 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebCore/ChangeLog
WebCore/storage/Database.cpp