[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

dumi at chromium.org dumi at chromium.org
Thu Apr 8 00:48:02 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 9f97ac7e77b78a9f5b3b77ba3c96ccc7f24d52ba
Author: dumi at chromium.org <dumi at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Dec 24 01:38:53 2009 +0000

    A new database should be registered with the Document,
    DatabaseTracker and DatabaseThread only after it was successfully
    opened and its version was successfully verified.
    
    Reviewed by Eric Seidel.
    
    Fixes a regression introduced by
    http://trac.webkit.org/changeset/52530.
    
    LayoutTests/storage/open-database-while-transaction-in-progress.html
    should pass again (or rather, it should pass again when run after
    open-database-set-empty-version.html).
    
    https://bugs.webkit.org/show_bug.cgi?id=32913
    
    * storage/Database.cpp:
    (WebCore::Database::openDatabase):
    (WebCore::Database::Database):
    (WebCore::Database::performOpenAndVerify):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52536 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 7d0fcd2..009f67e 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,25 @@
+2009-12-23  Dumitru Daniliuc  <dumi at chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        A new database should be registered with the Document,
+        DatabaseTracker and DatabaseThread only after it was successfully
+        opened and its version was successfully verified.
+
+        Fixes a regression introduced by
+        http://trac.webkit.org/changeset/52530.
+
+        LayoutTests/storage/open-database-while-transaction-in-progress.html
+        should pass again (or rather, it should pass again when run after
+        open-database-set-empty-version.html).
+
+        https://bugs.webkit.org/show_bug.cgi?id=32913
+
+        * storage/Database.cpp:
+        (WebCore::Database::openDatabase):
+        (WebCore::Database::Database):
+        (WebCore::Database::performOpenAndVerify):
+
 2009-12-23  David Levin  <levin at chromium.org>
 
         REGRESSION (r52494): Assertion failure in Frame::caretBlinkTimerFired() (selection()->isCaret())
diff --git a/WebCore/storage/Database.cpp b/WebCore/storage/Database.cpp
index 62d4039..aca66b0 100644
--- a/WebCore/storage/Database.cpp
+++ b/WebCore/storage/Database.cpp
@@ -132,11 +132,12 @@ PassRefPtr<Database> Database::openDatabase(Document* document, const String& na
 
     if (!database->openAndVerifyVersion(e)) {
        LOG(StorageAPI, "Failed to open and verify version (expected %s) of database %s", expectedVersion.ascii().data(), database->databaseDebugName().ascii().data());
-       document->removeOpenDatabase(database.get());
-       DatabaseTracker::tracker().removeOpenDatabase(database.get());
        return 0;
     }
 
+    DatabaseTracker::tracker().addOpenDatabase(database.get());
+    document->addOpenDatabase(database.get());
+
     DatabaseTracker::tracker().setDatabaseDetails(document->securityOrigin(), name, displayName, estimatedSize);
 
     document->setHasOpenDatabases();
@@ -188,9 +189,6 @@ Database::Database(Document* document, const String& name, const String& expecte
     ASSERT(m_document->databaseThread());
 
     m_filename = DatabaseTracker::tracker().fullPathForDatabase(m_mainThreadSecurityOrigin.get(), m_name);
-
-    DatabaseTracker::tracker().addOpenDatabase(this);
-    m_document->addOpenDatabase(this);
 }
 
 static void derefDocument(void* document)
@@ -462,10 +460,6 @@ bool Database::performOpenAndVerify(ExceptionCode& e)
         return false;
     }
 
-    m_opened = true;
-    if (m_document->databaseThread())
-        m_document->databaseThread()->recordDatabaseOpen(this);
-
     ASSERT(m_databaseAuthorizer);
     m_sqliteDatabase.setAuthorizer(m_databaseAuthorizer);
     m_sqliteDatabase.setBusyTimeout(maxSqliteBusyWaitTime);
@@ -525,6 +519,10 @@ bool Database::performOpenAndVerify(ExceptionCode& e)
         return false;
     }
 
+    m_opened = true;
+    if (m_document->databaseThread())
+        m_document->databaseThread()->recordDatabaseOpen(this);
+
     return true;
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list