[webkit-changes] [147381] trunk/Source/WebCore

2013-04-01 Thread jsbell
Title: [147381] trunk/Source/WebCore








Revision 147381
Author jsb...@chromium.org
Date 2013-04-01 22:29:39 -0700 (Mon, 01 Apr 2013)


Log Message
[Chromium] IndexedDB: Turn should only be true in unit tests comments into ASSERTs
https://bugs.webkit.org/show_bug.cgi?id=113597

Reviewed by Adam Barth.

In the vein of wkbug.com/111233 and wkbug.com/110820 don't just comment that
some condition is true only in unit tests - ASSERT that Chromium's unitTestSupport()
is non-null to catch errors during development.

Exercised by Chromium's webkit_unit_tests.

* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::close):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (147380 => 147381)

--- trunk/Source/WebCore/ChangeLog	2013-04-02 05:06:50 UTC (rev 147380)
+++ trunk/Source/WebCore/ChangeLog	2013-04-02 05:29:39 UTC (rev 147381)
@@ -1,3 +1,20 @@
+2013-04-01  Joshua Bell  jsb...@chromium.org
+
+[Chromium] IndexedDB: Turn should only be true in unit tests comments into ASSERTs
+https://bugs.webkit.org/show_bug.cgi?id=113597
+
+Reviewed by Adam Barth.
+
+In the vein of wkbug.com/111233 and wkbug.com/110820 don't just comment that
+some condition is true only in unit tests - ASSERT that Chromium's unitTestSupport()
+is non-null to catch errors during development.
+
+Exercised by Chromium's webkit_unit_tests.
+
+* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
+(WebCore::IDBDatabaseBackendImpl::openConnection):
+(WebCore::IDBDatabaseBackendImpl::close):
+
 2013-04-01  Roger Fong  roger_f...@apple.com
 
 VS2010 WebCoreGenerated build scripts should use new feature-defines script.


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp (147380 => 147381)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp	2013-04-02 05:06:50 UTC (rev 147380)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp	2013-04-02 05:29:39 UTC (rev 147381)
@@ -38,6 +38,9 @@
 #include IDBTransactionBackendImpl.h
 #include IDBTransactionCoordinator.h
 #include SharedBuffer.h
+#if PLATFORM(CHROMIUM)
+#include public/Platform.h
+#endif
 #include wtf/TemporaryChange.h
 
 namespace WebCore {
@@ -1212,6 +1215,9 @@
 
 if (version == IDBDatabaseMetadata::DefaultIntVersion) {
 // For unit tests only - skip upgrade steps. Calling from script with DefaultIntVersion throws exception.
+#if PLATFORM(CHROMIUM)
+ASSERT(WebKit::Platform::current()-unitTestSupport());
+#endif
 ASSERT(isNewDatabase);
 m_databaseCallbacksSet.add(databaseCallbacks);
 callbacks-onSuccess(this, this-metadata());
@@ -1348,7 +1354,13 @@
 ASSERT(m_transactions.isEmpty());
 
 m_backingStore.clear();
-// This check should only be false in tests.
+
+// This check should only be false in unit tests.
+#if PLATFORM(CHROMIUM)
+ASSERT(m_factory || WebKit::Platform::current()-unitTestSupport());
+#else
+ASSERT(m_factory);
+#endif
 if (m_factory)
 m_factory-removeIDBDatabaseBackend(m_identifier);
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [147233] trunk/Source

2013-03-29 Thread jsbell
Title: [147233] trunk/Source








Revision 147233
Author jsb...@chromium.org
Date 2013-03-29 12:12:04 -0700 (Fri, 29 Mar 2013)


Log Message
IndexedDB: Bind lifetime of in-memory backing stores to IDBFactory backend
https://bugs.webkit.org/show_bug.cgi?id=110820

Reviewed by Tony Chang.

Source/WebCore:

Backing stores are dropped as soon as all connections are closed. That makes sense for
disk-backed stores to free up memory (although there's a performance trade-off...). But
for memory-backed stores, the expected lifetime should match the lifetime of the factory
so that an open/write/close/re-open/read yields the written data.

Test: Chromium's webkit_unit_tests, IDBFactoryBackendTest.MemoryBackingStoreLifetime

* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::IDBBackingStore): Pass comparator into constructor since it was always
assigned immediately afterwards anyway.
(WebCore::IDBBackingStore::open): Split into three parts - open() which is disk-backed...
(WebCore::IDBBackingStore::openInMemory): ...explit in-memory creation (previously: specified by empty path)
(WebCore::IDBBackingStore::create): ... and the common logic which calls the constructor.
* Modules/indexeddb/IDBBackingStore.h: Headers for the above.
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::openBackingStore): Add in-memory backing stores to dependent set.
* Modules/indexeddb/IDBFactoryBackendImpl.h: Add member to track dependent backing stores.

Source/WebKit/chromium:

* tests/IDBBackingStoreTest.cpp:
(WebCore::IDBBackingStoreTest::SetUp): Use openInMemory rather than empty path.
(WebCore::TEST): Added IDBFactoryBackendTest.MemoryBackingStoreLifetime to verify refs.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.h
trunk/Source/WebCore/Modules/indexeddb/IDBFactoryBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBFactoryBackendImpl.h
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (147232 => 147233)

--- trunk/Source/WebCore/ChangeLog	2013-03-29 18:54:24 UTC (rev 147232)
+++ trunk/Source/WebCore/ChangeLog	2013-03-29 19:12:04 UTC (rev 147233)
@@ -1,3 +1,28 @@
+2013-03-29  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Bind lifetime of in-memory backing stores to IDBFactory backend
+https://bugs.webkit.org/show_bug.cgi?id=110820
+
+Reviewed by Tony Chang.
+
+Backing stores are dropped as soon as all connections are closed. That makes sense for
+disk-backed stores to free up memory (although there's a performance trade-off...). But
+for memory-backed stores, the expected lifetime should match the lifetime of the factory
+so that an open/write/close/re-open/read yields the written data.
+
+Test: Chromium's webkit_unit_tests, IDBFactoryBackendTest.MemoryBackingStoreLifetime
+
+* Modules/indexeddb/IDBBackingStore.cpp:
+(WebCore::IDBBackingStore::IDBBackingStore): Pass comparator into constructor since it was always
+assigned immediately afterwards anyway.
+(WebCore::IDBBackingStore::open): Split into three parts - open() which is disk-backed...
+(WebCore::IDBBackingStore::openInMemory): ...explit in-memory creation (previously: specified by empty path)
+(WebCore::IDBBackingStore::create): ... and the common logic which calls the constructor.
+* Modules/indexeddb/IDBBackingStore.h: Headers for the above.
+* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
+(WebCore::IDBFactoryBackendImpl::openBackingStore): Add in-memory backing stores to dependent set.
+* Modules/indexeddb/IDBFactoryBackendImpl.h: Add member to track dependent backing stores.
+
 2013-03-29  Nate Chapin  jap...@chromium.org
 
 ASSERT d-m_defersLoading != defers on detik.com and drive.google.com


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp (147232 => 147233)

--- trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp	2013-03-29 18:54:24 UTC (rev 147232)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp	2013-03-29 19:12:04 UTC (rev 147233)
@@ -43,6 +43,9 @@
 #include LevelDBTransaction.h
 #include SecurityOrigin.h
 #include SharedBuffer.h
+#if PLATFORM(CHROMIUM)
+#include public/Platform.h
+#endif
 #include wtf/Assertions.h
 
 namespace WebCore {
@@ -335,9 +338,10 @@
 }
 };
 
-IDBBackingStore::IDBBackingStore(const String identifier, PassOwnPtrLevelDBDatabase db)
+IDBBackingStore::IDBBackingStore(const String identifier, PassOwnPtrLevelDBDatabase db, PassOwnPtrLevelDBComparator comparator)
 : m_identifier(identifier)
 , m_db(db)
+, m_comparator(comparator)
 , m_weakFactory(this)
 {
 }
@@ -345,6 +349,10 @@
 IDBBackingStore::IDBBackingStore()
 : m_weakFactory(this)
 {
+// This constructor 

[webkit-changes] [147241] trunk

2013-03-29 Thread jsbell
Title: [147241] trunk








Revision 147241
Author jsb...@chromium.org
Date 2013-03-29 12:36:38 -0700 (Fri, 29 Mar 2013)


Log Message
[V8] IndexedDB: Exceptions thrown inconsistently for non-cloneable values
https://bugs.webkit.org/show_bug.cgi?id=113091

Reviewed by Kentaro Hara.

Source/WebCore:

The exception thrown by SerializedScriptValue into the JS engine is not
observable by ScriptState. (We should fix that, but it appears non-trivial.)
Ask the SerializedScriptValue directly if it failed to clone. If so, don't
set an exception - one was already set so let that be processed normally.

Test: storage/indexeddb/clone-exception.html

* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):

LayoutTests:

* storage/indexeddb/clone-exception-expected.txt: Added.
* storage/indexeddb/clone-exception.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp


Added Paths

trunk/LayoutTests/storage/indexeddb/clone-exception-expected.txt
trunk/LayoutTests/storage/indexeddb/clone-exception.html




Diff

Modified: trunk/LayoutTests/ChangeLog (147240 => 147241)

--- trunk/LayoutTests/ChangeLog	2013-03-29 19:31:45 UTC (rev 147240)
+++ trunk/LayoutTests/ChangeLog	2013-03-29 19:36:38 UTC (rev 147241)
@@ -1,3 +1,13 @@
+2013-03-29  Joshua Bell  jsb...@chromium.org
+
+[V8] IndexedDB: Exceptions thrown inconsistently for non-cloneable values
+https://bugs.webkit.org/show_bug.cgi?id=113091
+
+Reviewed by Kentaro Hara.
+
+* storage/indexeddb/clone-exception-expected.txt: Added.
+* storage/indexeddb/clone-exception.html: Added.
+
 2013-03-29  Greg Hughes  ghug...@apple.com
 
 Allow multiple searchKeys to be passed to AXUIElementCopyParameterizedAttributeValue


Added: trunk/LayoutTests/storage/indexeddb/clone-exception-expected.txt (0 => 147241)

--- trunk/LayoutTests/storage/indexeddb/clone-exception-expected.txt	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/clone-exception-expected.txt	2013-03-29 19:36:38 UTC (rev 147241)
@@ -0,0 +1,37 @@
+Ensure DataCloneError is consistently thrown by IndexedDB methods
+
+On success, you will see a series of PASS messages, followed by TEST COMPLETE.
+
+
+dbname = clone-exception.html
+
+doFirstOpen():
+indexedDB.open(dbname + '1')
+
+onUpgradeNeeded():
+Expecting exception from db.createObjectStore('store').put(NON_CLONEABLE, 0);
+PASS Exception was thrown.
+PASS code is 25
+PASS ename is 'DataCloneError'
+
+doSecondOpen():
+indexedDB.open(dbname + '2')
+
+onUpgradeNeeded():
+Expecting exception from db.createObjectStore('store').put(NON_CLONEABLE, 0);
+PASS Exception was thrown.
+PASS code is 25
+PASS ename is 'DataCloneError'
+
+doThirdOpen():
+indexedDB.open(dbname + '3')
+
+onUpgradeNeeded():
+Expecting exception from db.createObjectStore('store').put(NON_CLONEABLE, INVALID_KEY);
+PASS Exception was thrown.
+PASS code is 25
+PASS ename is 'DataCloneError'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/storage/indexeddb/clone-exception.html (0 => 147241)

--- trunk/LayoutTests/storage/indexeddb/clone-exception.html	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/clone-exception.html	2013-03-29 19:36:38 UTC (rev 147241)
@@ -0,0 +1,51 @@
+!DOCTYPE html
+script src=""
+script src=""
+script
+
+description(Ensure DataCloneError is consistently thrown by IndexedDB methods);
+
+var NON_CLONEABLE = self;
+var INVALID_KEY = {};
+
+setDBNameFromPath();
+doFirstOpen();
+
+function doFirstOpen()
+{
+preamble();
+request = evalAndLog(indexedDB.open(dbname + '1'));
+request._onupgradeneeded_ = function onUpgradeNeeded(e) {
+preamble();
+db = e.target.result;
+evalAndExpectException(db.createObjectStore('store').put(NON_CLONEABLE, 0);, 25, 'DataCloneError');
+doSecondOpen();
+};
+}
+
+function doSecondOpen()
+{
+preamble();
+request = evalAndLog(indexedDB.open(dbname + '2'));
+request._onupgradeneeded_ = function onUpgradeNeeded(e) {
+preamble();
+db = e.target.result;
+evalAndExpectException(db.createObjectStore('store').put(NON_CLONEABLE, 0);, 25, 'DataCloneError');
+doThirdOpen();
+};
+}
+
+function doThirdOpen()
+{
+preamble();
+request = evalAndLog(indexedDB.open(dbname + '3'));
+request._onupgradeneeded_ = function onUpgradeNeeded(e) {
+preamble();
+db = e.target.result;
+evalAndExpectException(db.createObjectStore('store').put(NON_CLONEABLE, INVALID_KEY);, 25, 'DataCloneError');
+finishJSTest();
+};
+}
+
+/script
+script src=""


Modified: trunk/Source/WebCore/ChangeLog (147240 => 147241)

--- trunk/Source/WebCore/ChangeLog	2013-03-29 19:31:45 UTC (rev 147240)
+++ trunk/Source/WebCore/ChangeLog	2013-03-29 19:36:38 UTC (rev 147241)
@@ -1,3 +1,20 @@
+2013-03-29  Joshua Bell  jsb...@chromium.org
+
+[V8] 

[webkit-changes] [147244] trunk/Source/WebCore

2013-03-29 Thread jsbell
Title: [147244] trunk/Source/WebCore








Revision 147244
Author jsb...@chromium.org
Date 2013-03-29 12:56:59 -0700 (Fri, 29 Mar 2013)


Log Message
IndexedDB: Use WTF::TemporaryChange rather than manually resetting a flag
https://bugs.webkit.org/show_bug.cgi?id=113594

Reviewed by Tony Chang.

Split out from another patch: rather than m_foo = true; ... m_foo = false; use
the handy WTF::TemporaryChange scoped variable change doohickey.

Test: http/tests/inspector/indexeddb/database-structure.html

* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::close):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (147243 => 147244)

--- trunk/Source/WebCore/ChangeLog	2013-03-29 19:51:22 UTC (rev 147243)
+++ trunk/Source/WebCore/ChangeLog	2013-03-29 19:56:59 UTC (rev 147244)
@@ -1,5 +1,20 @@
 2013-03-29  Joshua Bell  jsb...@chromium.org
 
+IndexedDB: Use WTF::TemporaryChange rather than manually resetting a flag
+https://bugs.webkit.org/show_bug.cgi?id=113594
+
+Reviewed by Tony Chang.
+
+Split out from another patch: rather than m_foo = true; ... m_foo = false; use
+the handy WTF::TemporaryChange scoped variable change doohickey.
+
+Test: http/tests/inspector/indexeddb/database-structure.html
+
+* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
+(WebCore::IDBDatabaseBackendImpl::close):
+
+2013-03-29  Joshua Bell  jsb...@chromium.org
+
 [V8] IndexedDB: Exceptions thrown inconsistently for non-cloneable values
 https://bugs.webkit.org/show_bug.cgi?id=113091
 


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp (147243 => 147244)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp	2013-03-29 19:51:22 UTC (rev 147243)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp	2013-03-29 19:56:59 UTC (rev 147244)
@@ -38,6 +38,7 @@
 #include IDBTransactionBackendImpl.h
 #include IDBTransactionCoordinator.h
 #include SharedBuffer.h
+#include wtf/TemporaryChange.h
 
 namespace WebCore {
 
@@ -1334,7 +1335,7 @@
 // To avoid that situation, don't proceed in case of reentrancy.
 if (m_closingConnection)
 return;
-m_closingConnection = true;
+TemporaryChangebool closingConnection(m_closingConnection, true);
 processPendingCalls();
 
 // FIXME: Add a test for the m_pendingOpenCalls cases below.
@@ -1351,7 +1352,6 @@
 if (m_factory)
 m_factory-removeIDBDatabaseBackend(m_identifier);
 }
-m_closingConnection = false;
 }
 
 void CreateObjectStoreAbortOperation::perform(IDBTransactionBackendImpl* transaction)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [147254] trunk/LayoutTests

2013-03-29 Thread jsbell
Title: [147254] trunk/LayoutTests








Revision 147254
Author jsb...@chromium.org
Date 2013-03-29 15:10:06 -0700 (Fri, 29 Mar 2013)


Log Message
[Chromium] IndexedDB: Update terminated worker connection test
https://bugs.webkit.org/show_bug.cgi?id=113608

Reviewed by Tony Chang.

Update layout test only run under Chromium's content_shell that ensures that
worker termination does not result in stuck connections. The test was using
the obsolete setVersion() API.

* storage/indexeddb/pending-version-change-stuck-works-with-terminate-expected.txt:
* storage/indexeddb/pending-version-change-stuck-works-with-terminate.html:
* storage/indexeddb/resources/pending-version-change-stuck.js:
(test.request.onblocked):
(test):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/pending-version-change-stuck-works-with-terminate-expected.txt
trunk/LayoutTests/storage/indexeddb/pending-version-change-stuck-works-with-terminate.html
trunk/LayoutTests/storage/indexeddb/resources/pending-version-change-stuck.js




Diff

Modified: trunk/LayoutTests/ChangeLog (147253 => 147254)

--- trunk/LayoutTests/ChangeLog	2013-03-29 21:56:45 UTC (rev 147253)
+++ trunk/LayoutTests/ChangeLog	2013-03-29 22:10:06 UTC (rev 147254)
@@ -1,3 +1,20 @@
+2013-03-29  Joshua Bell  jsb...@chromium.org
+
+[Chromium] IndexedDB: Update terminated worker connection test
+https://bugs.webkit.org/show_bug.cgi?id=113608
+
+Reviewed by Tony Chang.
+
+Update layout test only run under Chromium's content_shell that ensures that
+worker termination does not result in stuck connections. The test was using
+the obsolete setVersion() API.
+
+* storage/indexeddb/pending-version-change-stuck-works-with-terminate-expected.txt:
+* storage/indexeddb/pending-version-change-stuck-works-with-terminate.html:
+* storage/indexeddb/resources/pending-version-change-stuck.js:
+(test.request.onblocked):
+(test):
+
 2013-03-29  Bem Jones-Bey  bjone...@adobe.com
 
 [CSS Exclusions] shape outside segments not properly calculated for ellipses


Modified: trunk/LayoutTests/storage/indexeddb/pending-version-change-stuck-works-with-terminate-expected.txt (147253 => 147254)

--- trunk/LayoutTests/storage/indexeddb/pending-version-change-stuck-works-with-terminate-expected.txt	2013-03-29 21:56:45 UTC (rev 147253)
+++ trunk/LayoutTests/storage/indexeddb/pending-version-change-stuck-works-with-terminate-expected.txt	2013-03-29 22:10:06 UTC (rev 147254)
@@ -1,11 +1,12 @@
-Explicitly terminating worker with blocked setVersion call should allow later open calls to proceed
+Explicitly terminating worker with blocked call should allow later open calls to proceed
 
 On success, you will see a series of PASS messages, followed by TEST COMPLETE.
 
 
 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
 
-request = indexedDB.open(pending-version-change-stuck-works-with-terminate.html)
+dbname = pending-version-change-stuck-works-with-terminate.html
+indexedDB.open(dbname)
 PASS Open worked after page reload.
 PASS successfullyParsed is true
 


Modified: trunk/LayoutTests/storage/indexeddb/pending-version-change-stuck-works-with-terminate.html (147253 => 147254)

--- trunk/LayoutTests/storage/indexeddb/pending-version-change-stuck-works-with-terminate.html	2013-03-29 21:56:45 UTC (rev 147253)
+++ trunk/LayoutTests/storage/indexeddb/pending-version-change-stuck-works-with-terminate.html	2013-03-29 22:10:06 UTC (rev 147254)
@@ -6,28 +6,45 @@
 body
 script
 
-description(Explicitly terminating worker with blocked setVersion call should allow later open calls to proceed);
+description(Explicitly terminating worker with blocked call should allow later open calls to proceed);
 
 function test()
 {
 removeVendorPrefixes();
-dbname = self.location.pathname.substring(1 + self.location.pathname.lastIndexOf(/));
-evalAndLog(request = indexedDB.open(\ + dbname + \));
+setDBNameFromPath();
+if (self.location.search !== ?second) {
+firstOpen();
+} else {
+secondOpen();
+}
+}
+
+function firstOpen() {
+request = evalAndLog(indexedDB.deleteDatabase(dbname));
 request._onblocked_ = unexpectedBlockedCallback;
 request._onerror_ = unexpectedErrorCallback;
-if (self.location.search == ?second) {
-request._onsuccess_ = function() {
-testPassed(Open worked after page reload.);
-finishJSTest();
-};
-} else {
+request._onsuccess_ = function() {
+request = evalAndLog(indexedDB.open(dbname));
+request._onblocked_ = unexpectedBlockedCallback;
+request._onerror_ = unexpectedErrorCallback;
 request._onsuccess_ = startTheWorker;
-}
+};
 }
 
+function secondOpen() {
+request = evalAndLog(indexedDB.open(dbname));
+request._onblocked_ = unexpectedBlockedCallback;
+request._onerror_ = 

[webkit-changes] [146629] trunk/Source/WebCore

2013-03-22 Thread jsbell
Title: [146629] trunk/Source/WebCore








Revision 146629
Author jsb...@chromium.org
Date 2013-03-22 10:41:26 -0700 (Fri, 22 Mar 2013)


Log Message
REGRESSION (r146540?): Crashes in storage/indexeddb/factory-basics-workers.html, storage/indexeddb/transaction-error.html
https://bugs.webkit.org/show_bug.cgi?id=113019

Reviewed by Tony Chang.

Also manifesting flakily under Chromium's content_shell. It's an ASSERT being hit in
the IDBTransaction destructor. The cause was r146540 which allows a stopped context
to reclaim script wrappers. This allows the IDBTransaction to be deref'd at times where
it previously would have just leaked. Modulate the destructor assertions to account
for this case.

No new tests; failures already manifest as flaky crashes in some ports.

* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::~IDBTransaction): If context is stopped, expected state
transitions/cleanup may not have occurred before destructor runs.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (146628 => 146629)

--- trunk/Source/WebCore/ChangeLog	2013-03-22 17:34:20 UTC (rev 146628)
+++ trunk/Source/WebCore/ChangeLog	2013-03-22 17:41:26 UTC (rev 146629)
@@ -1,3 +1,22 @@
+2013-03-22  Joshua Bell  jsb...@chromium.org
+
+REGRESSION (r146540?): Crashes in storage/indexeddb/factory-basics-workers.html, storage/indexeddb/transaction-error.html
+https://bugs.webkit.org/show_bug.cgi?id=113019
+
+Reviewed by Tony Chang.
+
+Also manifesting flakily under Chromium's content_shell. It's an ASSERT being hit in
+the IDBTransaction destructor. The cause was r146540 which allows a stopped context
+to reclaim script wrappers. This allows the IDBTransaction to be deref'd at times where
+it previously would have just leaked. Modulate the destructor assertions to account
+for this case.
+
+No new tests; failures already manifest as flaky crashes in some ports.
+
+* Modules/indexeddb/IDBTransaction.cpp:
+(WebCore::IDBTransaction::~IDBTransaction): If context is stopped, expected state
+transitions/cleanup may not have occurred before destructor runs.
+
 2013-03-22  David Grogan  dgro...@chromium.org
 
 IndexedDB: Histogram available disk space on attempt to open database


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp (146628 => 146629)

--- trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp	2013-03-22 17:34:20 UTC (rev 146628)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp	2013-03-22 17:41:26 UTC (rev 146629)
@@ -116,8 +116,8 @@
 
 IDBTransaction::~IDBTransaction()
 {
-ASSERT(m_state == Finished);
-ASSERT(m_requestList.isEmpty());
+ASSERT(m_state == Finished || m_contextStopped);
+ASSERT(m_requestList.isEmpty() || m_contextStopped);
 }
 
 const String IDBTransaction::mode() const






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [146511] trunk/Source

2013-03-21 Thread jsbell
Title: [146511] trunk/Source








Revision 146511
Author jsb...@chromium.org
Date 2013-03-21 13:43:58 -0700 (Thu, 21 Mar 2013)


Log Message
IndexedDB: Remove onVersionChange(string) plumbing
https://bugs.webkit.org/show_bug.cgi?id=112712

Reviewed by Adam Barth.

Source/WebCore:

Delete unused onVersionChange(string) overload.

No new tests - just deleting dead code.

* Modules/indexeddb/IDBDatabase.cpp: Delete onVersionChange(string) overload.
* Modules/indexeddb/IDBDatabase.h: Ditto.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Ditto.
* Modules/indexeddb/IDBDatabaseCallbacks.h: Ditto.
* Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp: Ditto.
* Modules/indexeddb/IDBDatabaseCallbacksImpl.h: Ditto.

Source/WebKit/chromium:

* public/WebIDBDatabaseCallbacks.h: Remove onVersionChange(string) overload.
* src/IDBDatabaseCallbacksProxy.cpp: Ditto.
* src/IDBDatabaseCallbacksProxy.h: Ditto.
* src/WebIDBDatabaseCallbacksImpl.cpp: Ditto.
* src/WebIDBDatabaseCallbacksImpl.h: Ditto.
* tests/IDBAbortOnCorruptTest.cpp: Ditto.
* tests/IDBDatabaseBackendTest.cpp: Ditto.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.h
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/public/WebIDBDatabaseCallbacks.h
trunk/Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.cpp
trunk/Source/WebKit/chromium/src/IDBDatabaseCallbacksProxy.h
trunk/Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.cpp
trunk/Source/WebKit/chromium/src/WebIDBDatabaseCallbacksImpl.h
trunk/Source/WebKit/chromium/tests/IDBAbortOnCorruptTest.cpp
trunk/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (146510 => 146511)

--- trunk/Source/WebCore/ChangeLog	2013-03-21 20:35:36 UTC (rev 146510)
+++ trunk/Source/WebCore/ChangeLog	2013-03-21 20:43:58 UTC (rev 146511)
@@ -1,3 +1,21 @@
+2013-03-21  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Remove onVersionChange(string) plumbing
+https://bugs.webkit.org/show_bug.cgi?id=112712
+
+Reviewed by Adam Barth.
+
+Delete unused onVersionChange(string) overload.
+
+No new tests - just deleting dead code.
+
+* Modules/indexeddb/IDBDatabase.cpp: Delete onVersionChange(string) overload.
+* Modules/indexeddb/IDBDatabase.h: Ditto.
+* Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Ditto.
+* Modules/indexeddb/IDBDatabaseCallbacks.h: Ditto.
+* Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp: Ditto.
+* Modules/indexeddb/IDBDatabaseCallbacksImpl.h: Ditto.
+
 2013-03-21  Philip Rogers  p...@google.com
 
 Correct bisector angle calculation for markers


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp (146510 => 146511)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp	2013-03-21 20:35:36 UTC (rev 146510)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp	2013-03-21 20:43:58 UTC (rev 146511)
@@ -311,18 +311,6 @@
 enqueueEvent(IDBVersionChangeEvent::create(IDBAny::create(oldVersion), newVersionAny.release(), eventNames().versionchangeEvent));
 }
 
-void IDBDatabase::onVersionChange(const String newVersion)
-{
-if (m_contextStopped || !scriptExecutionContext())
-return;
-
-if (m_closePending)
-return;
-
-RefPtrIDBAny newVersionAny = newVersion.isEmpty() ? IDBAny::createNull() : IDBAny::createString(newVersion);
-enqueueEvent(IDBVersionChangeEvent::create(version(), newVersionAny.release(), eventNames().versionchangeEvent));
-}
-
 void IDBDatabase::enqueueEvent(PassRefPtrEvent event)
 {
 ASSERT(!m_contextStopped);


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h (146510 => 146511)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h	2013-03-21 20:35:36 UTC (rev 146510)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h	2013-03-21 20:43:58 UTC (rev 146511)
@@ -77,7 +77,6 @@
 
 // IDBDatabaseCallbacks
 virtual void onVersionChange(int64_t oldVersion, int64_t newVersion);
-virtual void onVersionChange(const String requestedVersion);
 virtual void onAbort(int64_t, PassRefPtrIDBDatabaseError);
 virtual void onComplete(int64_t);
 


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h (146510 => 146511)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h	2013-03-21 20:35:36 UTC (rev 146510)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h	2013-03-21 20:43:58 UTC (rev 146511)
@@ -39,7 +39,6 @@
 virtual ~IDBDatabaseCallbacks() { }
 
 virtual void onForcedClose() = 0;
-virtual void onVersionChange(const String version) = 0;
 virtual void onVersionChange(int64_t oldVersion, int64_t newVersion) 

[webkit-changes] [146527] trunk/Source/WebCore

2013-03-21 Thread jsbell
Title: [146527] trunk/Source/WebCore








Revision 146527
Author jsb...@chromium.org
Date 2013-03-21 14:53:35 -0700 (Thu, 21 Mar 2013)


Log Message
IndexedDB: Ensure all API methods have IDB_TRACE macros
https://bugs.webkit.org/show_bug.cgi?id=112963

Reviewed by Tony Chang.

Anntotate methods and callbacks that weren't already annotated
with IDB_TRACE macros to assist in debugging, e.g. when using
the chromium port's chrome://tracing visualization.

No new tests - just harmless diagnostic sprinkles.

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore): Added IDB_TRACE macro call here.
(WebCore::IDBDatabase::deleteObjectStore): ...and here.
(WebCore::IDBDatabase::transaction): ...etc.
(WebCore::IDBDatabase::close):
(WebCore::IDBDatabase::onVersionChange):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::getDatabaseNames):
(WebCore::IDBFactory::open):
(WebCore::IDBFactory::deleteDatabase):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::getDatabaseNames):
(WebCore::IDBFactoryBackendImpl::deleteDatabase):
(WebCore::IDBFactoryBackendImpl::open):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onBlocked):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBFactoryBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (146526 => 146527)

--- trunk/Source/WebCore/ChangeLog	2013-03-21 21:52:15 UTC (rev 146526)
+++ trunk/Source/WebCore/ChangeLog	2013-03-21 21:53:35 UTC (rev 146527)
@@ -1,3 +1,33 @@
+2013-03-21  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Ensure all API methods have IDB_TRACE macros
+https://bugs.webkit.org/show_bug.cgi?id=112963
+
+Reviewed by Tony Chang.
+
+Anntotate methods and callbacks that weren't already annotated
+with IDB_TRACE macros to assist in debugging, e.g. when using
+the chromium port's chrome://tracing visualization.
+
+No new tests - just harmless diagnostic sprinkles.
+
+* Modules/indexeddb/IDBDatabase.cpp:
+(WebCore::IDBDatabase::createObjectStore): Added IDB_TRACE macro call here.
+(WebCore::IDBDatabase::deleteObjectStore): ...and here.
+(WebCore::IDBDatabase::transaction): ...etc.
+(WebCore::IDBDatabase::close):
+(WebCore::IDBDatabase::onVersionChange):
+* Modules/indexeddb/IDBFactory.cpp:
+(WebCore::IDBFactory::getDatabaseNames):
+(WebCore::IDBFactory::open):
+(WebCore::IDBFactory::deleteDatabase):
+* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
+(WebCore::IDBFactoryBackendImpl::getDatabaseNames):
+(WebCore::IDBFactoryBackendImpl::deleteDatabase):
+(WebCore::IDBFactoryBackendImpl::open):
+* Modules/indexeddb/IDBOpenDBRequest.cpp:
+(WebCore::IDBOpenDBRequest::onBlocked):
+
 2013-03-21  Christian Biesinger  cbiesin...@chromium.org
 
 http://trac.webkit.org/changeset/146375 causing CrOS crashes


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp (146526 => 146527)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp	2013-03-21 21:52:15 UTC (rev 146526)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp	2013-03-21 21:53:35 UTC (rev 146527)
@@ -159,6 +159,7 @@
 
 PassRefPtrIDBObjectStore IDBDatabase::createObjectStore(const String name, const IDBKeyPath keyPath, bool autoIncrement, ExceptionCode ec)
 {
+IDB_TRACE(IDBDatabase::createObjectStore);
 HistogramSupport::histogramEnumeration(WebCore.IndexedDB.FrontEndAPICalls, IDBCreateObjectStoreCall, IDBMethodsMax);
 if (!m_versionChangeTransaction) {
 ec = IDBDatabaseException::InvalidStateError;
@@ -198,6 +199,7 @@
 
 void IDBDatabase::deleteObjectStore(const String name, ExceptionCode ec)
 {
+IDB_TRACE(IDBDatabase::deleteObjectStore);
 HistogramSupport::histogramEnumeration(WebCore.IndexedDB.FrontEndAPICalls, IDBDeleteObjectStoreCall, IDBMethodsMax);
 if (!m_versionChangeTransaction) {
 ec = IDBDatabaseException::InvalidStateError;
@@ -221,6 +223,7 @@
 
 PassRefPtrIDBTransaction IDBDatabase::transaction(ScriptExecutionContext* context, const VectorString scope, const String modeString, ExceptionCode ec)
 {
+IDB_TRACE(IDBDatabase::transaction);
 HistogramSupport::histogramEnumeration(WebCore.IndexedDB.FrontEndAPICalls, IDBTransactionCall, IDBMethodsMax);
 if (!scope.size()) {
 ec = IDBDatabaseException::InvalidAccessError;
@@ -269,6 +272,7 @@
 
 void IDBDatabase::close()
 {
+IDB_TRACE(IDBDatabase::close);
 if (m_closePending)
 return;
 
@@ -301,6 +305,7 @@
 
 void IDBDatabase::onVersionChange(int64_t oldVersion, int64_t newVersion)
 {
+IDB_TRACE(IDBDatabase::onVersionChange);
 if (m_contextStopped || 

[webkit-changes] [146540] trunk/Source/WebCore

2013-03-21 Thread jsbell
Title: [146540] trunk/Source/WebCore








Revision 146540
Author jsb...@chromium.org
Date 2013-03-21 16:52:16 -0700 (Thu, 21 Mar 2013)


Log Message
IndexedDB: Ensure script wrappers can be collected after context is stopped
https://bugs.webkit.org/show_bug.cgi?id=112976

Reviewed by Adam Barth.

ActiveDOMObject::hasPendingActivity is called to see if script wrappers
can be disposed of. Once the script execution context has stopped they
should be free to go - include this in the checks.

No new tests - suggestions welcome.

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::hasPendingActivity): Return false if stopped.
(WebCore::IDBDatabase::stop): Don't bother calling empty super impl.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::hasPendingActivity): Return false if stopped.
(WebCore::IDBRequest::stop): Don't bother calling empty super impl.
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::hasPendingActivity): Return false if stopped.
(WebCore::IDBTransaction::stop): Don't bother calling empty super impl.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (146539 => 146540)

--- trunk/Source/WebCore/ChangeLog	2013-03-21 23:47:56 UTC (rev 146539)
+++ trunk/Source/WebCore/ChangeLog	2013-03-21 23:52:16 UTC (rev 146540)
@@ -1,3 +1,26 @@
+2013-03-21  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Ensure script wrappers can be collected after context is stopped
+https://bugs.webkit.org/show_bug.cgi?id=112976
+
+Reviewed by Adam Barth.
+
+ActiveDOMObject::hasPendingActivity is called to see if script wrappers
+can be disposed of. Once the script execution context has stopped they
+should be free to go - include this in the checks.
+
+No new tests - suggestions welcome.
+
+* Modules/indexeddb/IDBDatabase.cpp:
+(WebCore::IDBDatabase::hasPendingActivity): Return false if stopped.
+(WebCore::IDBDatabase::stop): Don't bother calling empty super impl.
+* Modules/indexeddb/IDBRequest.cpp:
+(WebCore::IDBRequest::hasPendingActivity): Return false if stopped.
+(WebCore::IDBRequest::stop): Don't bother calling empty super impl.
+* Modules/indexeddb/IDBTransaction.cpp:
+(WebCore::IDBTransaction::hasPendingActivity): Return false if stopped.
+(WebCore::IDBTransaction::stop): Don't bother calling empty super impl.
+
 2013-03-21  Russell McClellan  russell.mcclel...@gmail.com
 
 Remove upcastPointer from ActiveDOMObject constructor


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp (146539 => 146540)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp	2013-03-21 23:47:56 UTC (rev 146539)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp	2013-03-21 23:52:16 UTC (rev 146540)
@@ -352,12 +352,11 @@
 {
 // The script wrapper must not be collected before the object is closed or
 // we can't fire a versionchange event to let script manually close the connection.
-return !m_closePending  !m_eventTargetData.eventListenerMap.isEmpty();
+return !m_closePending  !m_eventTargetData.eventListenerMap.isEmpty()  !m_contextStopped;
 }
 
 void IDBDatabase::stop()
 {
-ActiveDOMObject::stop();
 // Stop fires at a deterministic time, so we need to call close in it.
 close();
 


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp (146539 => 146540)

--- trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2013-03-21 23:47:56 UTC (rev 146539)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2013-03-21 23:52:16 UTC (rev 146540)
@@ -420,12 +420,11 @@
 // FIXME: In an ideal world, we should return true as long as anyone has a or can
 //get a handle to us and we have event listeners. This is order to handle
 //user generated events properly.
-return m_hasPendingActivity;
+return m_hasPendingActivity  !m_contextStopped;
 }
 
 void IDBRequest::stop()
 {
-ActiveDOMObject::stop();
 if (m_contextStopped)
 return;
 


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp (146539 => 146540)

--- trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp	2013-03-21 23:47:56 UTC (rev 146539)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp	2013-03-21 23:52:16 UTC (rev 146540)
@@ -333,7 +333,7 @@
 // FIXME: In an ideal world, we should return true as long as anyone has a or can
 //get a handle to us or any child request object and any of those have
 //event listeners. This is  in order to handle user generated events properly.
-return m_hasPendingActivity;
+return m_hasPendingActivity  !m_contextStopped;
 }
 
 IndexedDB::TransactionMode IDBTransaction::stringToMode(const String 

[webkit-changes] [146225] trunk/Source/WebCore

2013-03-19 Thread jsbell
Title: [146225] trunk/Source/WebCore








Revision 146225
Author jsb...@chromium.org
Date 2013-03-19 11:23:51 -0700 (Tue, 19 Mar 2013)


Log Message
IndexedDB: Use integer plumbing for deleteDatabase onVersionChange calls
https://bugs.webkit.org/show_bug.cgi?id=112715

Reviewed by Tony Chang.

When deleteDatabase on the back-end needs to send the front-end an
onVersionChange notification it does so using the string overload. That's
the only remaining use of that overload and we'd like to delete it. Switch
to using the integer overload, with an already defined special value.
This will unblock http://wkbug.com/112712 to delete the dead code.

No new tests - no functional change.

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::onVersionChange): Map NoIntVersion to null.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::deleteDatabase): Call integer overload.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (146224 => 146225)

--- trunk/Source/WebCore/ChangeLog	2013-03-19 18:20:35 UTC (rev 146224)
+++ trunk/Source/WebCore/ChangeLog	2013-03-19 18:23:51 UTC (rev 146225)
@@ -1,3 +1,23 @@
+2013-03-19  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Use integer plumbing for deleteDatabase onVersionChange calls
+https://bugs.webkit.org/show_bug.cgi?id=112715
+
+Reviewed by Tony Chang.
+
+When deleteDatabase on the back-end needs to send the front-end an
+onVersionChange notification it does so using the string overload. That's
+the only remaining use of that overload and we'd like to delete it. Switch
+to using the integer overload, with an already defined special value.
+This will unblock http://wkbug.com/112712 to delete the dead code.
+
+No new tests - no functional change.
+
+* Modules/indexeddb/IDBDatabase.cpp:
+(WebCore::IDBDatabase::onVersionChange): Map NoIntVersion to null.
+* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
+(WebCore::IDBDatabaseBackendImpl::deleteDatabase): Call integer overload.
+
 2013-03-19  Terry Anderson  tdander...@chromium.org
 
 Hover effects from a GestureTapDown are dismissed by a GestureTap on the hover element


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp (146224 => 146225)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp	2013-03-19 18:20:35 UTC (rev 146224)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp	2013-03-19 18:23:51 UTC (rev 146225)
@@ -307,7 +307,8 @@
 if (m_closePending)
 return;
 
-enqueueEvent(IDBVersionChangeEvent::create(IDBAny::create(oldVersion), IDBAny::create(newVersion), eventNames().versionchangeEvent));
+RefPtrIDBAny newVersionAny = newVersion == IDBDatabaseMetadata::NoIntVersion ? IDBAny::createNull() : IDBAny::create(newVersion);
+enqueueEvent(IDBVersionChangeEvent::create(IDBAny::create(oldVersion), newVersionAny.release(), eventNames().versionchangeEvent));
 }
 
 void IDBDatabase::onVersionChange(const String newVersion)


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp (146224 => 146225)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp	2013-03-19 18:20:35 UTC (rev 146224)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp	2013-03-19 18:23:51 UTC (rev 146225)
@@ -1281,7 +1281,7 @@
 if (isDeleteDatabaseBlocked()) {
 for (DatabaseCallbacksSet::const_iterator it = m_databaseCallbacksSet.begin(); it != m_databaseCallbacksSet.end(); ++it) {
 // Front end ensures the event is not fired at connections that have closePending set.
-(*it)-onVersionChange(NoStringVersion);
+(*it)-onVersionChange(m_metadata.intVersion, IDBDatabaseMetadata::NoIntVersion);
 }
 // FIXME: Only fire onBlocked if there are open connections after the
 // VersionChangeEvents are received, not just set up to fire.






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [146232] trunk/LayoutTests

2013-03-19 Thread jsbell
Title: [146232] trunk/LayoutTests








Revision 146232
Author jsb...@chromium.org
Date 2013-03-19 12:03:07 -0700 (Tue, 19 Mar 2013)


Log Message
[Chromium] IndexedDB: index-duplicate-keypaths test is flaky under content_shell
https://bugs.webkit.org/show_bug.cgi?id=112723

Reviewed by Tony Chang.

Root cause is a race between the versionchange transaction's complete event
being dispatched to script and the success call arriving from the back-end
which updates the metadata. Tracked as https://bugs.webkit.org/show_bug.cgi?id=111642

* storage/indexeddb/resources/index-duplicate-keypaths.js:
(testCollideAutoIncrementSetup): Trigger test from open's onsuccess...
(testCollideAutoIncrement): ... rather than transaction's oncomplete.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/resources/index-duplicate-keypaths.js




Diff

Modified: trunk/LayoutTests/ChangeLog (146231 => 146232)

--- trunk/LayoutTests/ChangeLog	2013-03-19 18:59:49 UTC (rev 146231)
+++ trunk/LayoutTests/ChangeLog	2013-03-19 19:03:07 UTC (rev 146232)
@@ -1,3 +1,18 @@
+2013-03-19  Joshua Bell  jsb...@chromium.org
+
+[Chromium] IndexedDB: index-duplicate-keypaths test is flaky under content_shell
+https://bugs.webkit.org/show_bug.cgi?id=112723
+
+Reviewed by Tony Chang.
+
+Root cause is a race between the versionchange transaction's complete event
+being dispatched to script and the success call arriving from the back-end
+which updates the metadata. Tracked as https://bugs.webkit.org/show_bug.cgi?id=111642
+
+* storage/indexeddb/resources/index-duplicate-keypaths.js:
+(testCollideAutoIncrementSetup): Trigger test from open's onsuccess...
+(testCollideAutoIncrement): ... rather than transaction's oncomplete.
+
 2013-03-19  Philip Rogers  p...@google.com
 
 Separate SVG image size and container size


Modified: trunk/LayoutTests/storage/indexeddb/resources/index-duplicate-keypaths.js (146231 => 146232)

--- trunk/LayoutTests/storage/indexeddb/resources/index-duplicate-keypaths.js	2013-03-19 18:59:49 UTC (rev 146231)
+++ trunk/LayoutTests/storage/indexeddb/resources/index-duplicate-keypaths.js	2013-03-19 19:03:07 UTC (rev 146232)
@@ -42,6 +42,7 @@
 request._onupgradeneeded_ = testCollideAutoIncrement;
 request._onerror_ = unexpectedErrorCallback;
 request._onblocked_ = unexpectedBlockedCallback;
+request._onsuccess_ = storeCollidedAutoIncrementData;
 }
 
 function testCollideAutoIncrement()
@@ -52,7 +53,6 @@
 evalAndLog(store = db.createObjectStore('collideWithAutoIncrement', {keyPath: 'foo', autoIncrement: true}));
 evalAndLog(index = store.createIndex('foo', 'foo'));
 
-trans._oncomplete_ = storeCollidedAutoIncrementData;
 trans._onerror_ = unexpectedErrorCallback;
 trans._onabort_ = unexpectedAbortCallback;
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [146152] trunk/Source/WebCore

2013-03-18 Thread jsbell
Title: [146152] trunk/Source/WebCore








Revision 146152
Author jsb...@chromium.org
Date 2013-03-18 16:54:06 -0700 (Mon, 18 Mar 2013)


Log Message
IDB Cursor continue moves one item at a time
https://bugs.webkit.org/show_bug.cgi?id=109972

Reviewed by Tony Chang.

IndexedDB: Use seek on the underlying levelDB iterator to implement the continue operation
on a cursor, instead of advancing one item at a time. On a simple test in Chrome - open a
key cursor on an index w/ 100 items, then do continue(50), rinse and repeat - this cuts the
time 50% (850c/s to 1700c/s). (Original patch c/o Pankaj Kakkar pan...@google.com)

Covered by existing storage/indexeddb cursor tests; just a performance optimization.

* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::Cursor::continueFunction): Special case first iteration w/ key
to use leveldb seek (forward cursors only, since reverse seek isn't exposed).
(WebCore::ObjectStoreKeyCursorImpl::encodeKey): Helper for encoding key to seek to.
(WebCore::ObjectStoreCursorImpl::encodeKey): Ditto.
(WebCore::IndexKeyCursorImpl::encodeKey): Ditto.
(WebCore::IndexCursorImpl::encodeKey): Ditto.
(WebCore::objectStoreCursorOptions): Store IDs for encodeKey() to use.
(WebCore::indexCursorOptions): Ditto.
* Modules/indexeddb/IDBBackingStore.h:
(CursorOptions): Storage for IDs.
(Cursor): Add encodeKey() to interface.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (146151 => 146152)

--- trunk/Source/WebCore/ChangeLog	2013-03-18 23:52:25 UTC (rev 146151)
+++ trunk/Source/WebCore/ChangeLog	2013-03-18 23:54:06 UTC (rev 146152)
@@ -1,3 +1,30 @@
+2013-03-18  Joshua Bell jsb...@chromium.org
+
+IDB Cursor continue moves one item at a time
+https://bugs.webkit.org/show_bug.cgi?id=109972
+
+Reviewed by Tony Chang.
+
+IndexedDB: Use seek on the underlying levelDB iterator to implement the continue operation
+on a cursor, instead of advancing one item at a time. On a simple test in Chrome - open a
+key cursor on an index w/ 100 items, then do continue(50), rinse and repeat - this cuts the
+time 50% (850c/s to 1700c/s). (Original patch c/o Pankaj Kakkar pan...@google.com)
+
+Covered by existing storage/indexeddb cursor tests; just a performance optimization.
+
+* Modules/indexeddb/IDBBackingStore.cpp:
+(WebCore::IDBBackingStore::Cursor::continueFunction): Special case first iteration w/ key
+to use leveldb seek (forward cursors only, since reverse seek isn't exposed).
+(WebCore::ObjectStoreKeyCursorImpl::encodeKey): Helper for encoding key to seek to.
+(WebCore::ObjectStoreCursorImpl::encodeKey): Ditto.
+(WebCore::IndexKeyCursorImpl::encodeKey): Ditto.
+(WebCore::IndexCursorImpl::encodeKey): Ditto.
+(WebCore::objectStoreCursorOptions): Store IDs for encodeKey() to use.
+(WebCore::indexCursorOptions): Ditto.
+* Modules/indexeddb/IDBBackingStore.h:
+(CursorOptions): Storage for IDs.
+(Cursor): Add encodeKey() to interface.
+
 2013-03-18  Alexey Proskuryakov  a...@apple.com
 
 MessagePortChannel::EventData should not be exposed


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp (146151 => 146152)

--- trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp	2013-03-18 23:52:25 UTC (rev 146151)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp	2013-03-18 23:54:06 UTC (rev 146152)
@@ -1345,6 +1345,8 @@
 {
 RefPtrIDBKey previousKey = m_currentKey;
 
+bool firstIteration = true;
+
 // When iterating with PrevNoDuplicate, spec requires that the
 // value we yield for each key is the first duplicate in forwards
 // order.
@@ -1354,7 +1356,11 @@
 
 for (;;) {
 if (nextState == Seek) {
-if (forward)
+// FIXME: Optimize seeking for reverse cursors as well.
+if (firstIteration  key  forward) {
+m_iterator-seek(encodeKey(*key));
+firstIteration = false;
+} else if (forward)
 m_iterator-next();
 else
 m_iterator-prev();
@@ -1476,6 +1482,12 @@
 virtual PassRefPtrSharedBuffer value() const { ASSERT_NOT_REACHED(); return 0; }
 virtual bool loadCurrentRow();
 
+protected:
+virtual Vectorchar encodeKey(const IDBKey key)
+{
+return ObjectStoreDataKey::encode(m_cursorOptions.databaseId, m_cursorOptions.objectStoreId, key);
+}
+
 private:
 ObjectStoreKeyCursorImpl(LevelDBTransaction* transaction, const IDBBackingStore::Cursor::CursorOptions cursorOptions)
 : IDBBackingStore::Cursor(transaction, cursorOptions)
@@ -1531,6 +1543,12 @@
 virtual PassRefPtrSharedBuffer value() const { return m_currentValue; }
 virtual bool loadCurrentRow();
 

[webkit-changes] [145917] trunk/Source

2013-03-15 Thread jsbell
Title: [145917] trunk/Source








Revision 145917
Author jsb...@chromium.org
Date 2013-03-15 11:00:03 -0700 (Fri, 15 Mar 2013)


Log Message
IndexedDB: Handle success events arriving after context stopped
https://bugs.webkit.org/show_bug.cgi?id=112451

Reviewed by Tony Chang.

Source/WebCore:

In multiprocess ports, events from the back-end can arrive in the form of
onXXX() calls after the script execution context has stopped. These need to
be ignored. This was already done in most cases, but missing for two overloads
of IDBRequest::onSuccess() - void and int64_t.

Test: webkit_unit_test IDBRequestTest.EventsAfterStopping

* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess): Early return if context has stopped.
(WebCore::IDBRequest::onSuccessInternal): ASSERT() that callers have checked context.

Source/WebKit/chromium:

* tests/IDBRequestTest.cpp:
(WebKit::TEST_F): Add cases for onSuccess() and onSuccess(int64_t)

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/tests/IDBRequestTest.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (145916 => 145917)

--- trunk/Source/WebCore/ChangeLog	2013-03-15 17:59:44 UTC (rev 145916)
+++ trunk/Source/WebCore/ChangeLog	2013-03-15 18:00:03 UTC (rev 145917)
@@ -1,3 +1,21 @@
+2013-03-15  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Handle success events arriving after context stopped
+https://bugs.webkit.org/show_bug.cgi?id=112451
+
+Reviewed by Tony Chang.
+
+In multiprocess ports, events from the back-end can arrive in the form of
+onXXX() calls after the script execution context has stopped. These need to
+be ignored. This was already done in most cases, but missing for two overloads
+of IDBRequest::onSuccess() - void and int64_t.
+
+Test: webkit_unit_test IDBRequestTest.EventsAfterStopping
+
+* Modules/indexeddb/IDBRequest.cpp:
+(WebCore::IDBRequest::onSuccess): Early return if context has stopped.
+(WebCore::IDBRequest::onSuccessInternal): ASSERT() that callers have checked context.
+
 2013-03-14  Jer Noble  jer.no...@apple.com
 
 REGRESSION: -webkit-box-reflect does not show on video elements


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp (145916 => 145917)

--- trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2013-03-15 17:59:44 UTC (rev 145916)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2013-03-15 18:00:03 UTC (rev 145917)
@@ -371,16 +371,23 @@
 
 void IDBRequest::onSuccess(int64_t value)
 {
+IDB_TRACE(IDBRequest::onSuccess(int64_t));
+if (!shouldEnqueueEvent())
+return;
 return onSuccessInternal(SerializedScriptValue::numberValue(value));
 }
 
 void IDBRequest::onSuccess()
 {
+IDB_TRACE(IDBRequest::onSuccess());
+if (!shouldEnqueueEvent())
+return;
 return onSuccessInternal(SerializedScriptValue::undefinedValue());
 }
 
 void IDBRequest::onSuccessInternal(PassRefPtrSerializedScriptValue value)
 {
+ASSERT(!m_contextStopped);
 DOMRequestState::Scope scope(m_requestState);
 return onSuccessInternal(deserializeIDBValue(requestState(), value));
 }


Modified: trunk/Source/WebKit/chromium/ChangeLog (145916 => 145917)

--- trunk/Source/WebKit/chromium/ChangeLog	2013-03-15 17:59:44 UTC (rev 145916)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-03-15 18:00:03 UTC (rev 145917)
@@ -1,3 +1,13 @@
+2013-03-15  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Handle success events arriving after context stopped
+https://bugs.webkit.org/show_bug.cgi?id=112451
+
+Reviewed by Tony Chang.
+
+* tests/IDBRequestTest.cpp:
+(WebKit::TEST_F): Add cases for onSuccess() and onSuccess(int64_t)
+
 2013-03-15  Nate Chapin  jap...@chromium.org
 
 Hide MainResourceLoader from the outside world


Modified: trunk/Source/WebKit/chromium/tests/IDBRequestTest.cpp (145916 => 145917)

--- trunk/Source/WebKit/chromium/tests/IDBRequestTest.cpp	2013-03-15 17:59:44 UTC (rev 145916)
+++ trunk/Source/WebKit/chromium/tests/IDBRequestTest.cpp	2013-03-15 18:00:03 UTC (rev 145917)
@@ -96,6 +96,8 @@
 request-onSuccess(IDBKey::createInvalid());
 request-onSuccess(PassRefPtrSharedBuffer(0));
 request-onSuccess(PassRefPtrSharedBuffer(0), IDBKey::createInvalid(), IDBKeyPath());
+request-onSuccess(0LL);
+request-onSuccess();
 request-onSuccess(IDBKey::createInvalid(), IDBKey::createInvalid(), 0);
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [145238] trunk/Source

2013-03-08 Thread jsbell
Title: [145238] trunk/Source








Revision 145238
Author jsb...@chromium.org
Date 2013-03-08 10:06:23 -0800 (Fri, 08 Mar 2013)


Log Message
IndexedDB: Use WeakPtr for Factory-to-BackingStore reference
https://bugs.webkit.org/show_bug.cgi?id=111459

Reviewed by Adam Barth.

Source/WebCore:

IDBFactoryBackendImpl maintains a map of backing stores - if another database in the same
origin is opened, the backing store instance must be re-used). This was a map to raw
pointers so that the backing store can be collected when all database references are
dropped. The map was maintained manually by passing the factory to the IDBBackingStore which
would add/remove itself on creation/destruction.

Replace this with a HashMapWeakPtrT. This simplifies the plumbing; map entries
leak but are purged on subsequent opens.

Added webkit_unit_test (Chromium port) to verify refcounts.

* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::IDBBackingStore): No need to notify factory of lifetime.
(WebCore::IDBBackingStore::~IDBBackingStore): Ditto.
(WebCore::IDBBackingStore::open): Ditto.
* Modules/indexeddb/IDBBackingStore.h: No reference to the factory, but...
(WebCore::IDBBackingStore::createWeakPtr): Do need to expose weak pointers for the factory to hold.
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::cleanWeakMap): Helper function to scrub a HashMapWeakPtrT of empty pointers.
May move to WTF when we've learned how general it is, or come up with a dedicated WeakPtrHashMap type.
(WebCore::IDBFactoryBackendImpl::openBackingStore): WeakPtr fu.
* Modules/indexeddb/IDBFactoryBackendImpl.h:
(IDBFactoryBackendImpl): Remove plumbing methods.

Source/WebKit/chromium:

Add new test that verifies refcounts.

* WebKit.gyp: Don't include files depending on webkit_support.
* tests/IDBBackingStoreTest.cpp:
(WebCore::IDBBackingStoreTest::SetUp): No need for dummy factory.
(MockIDBFactoryBackend): Allow access to protected openBackingStore method.
(WebCore::TEST): Add new test that verifies refcounts.
* tests/IDBCleanupOnIOErrorTest.cpp:
(WebCore::TEST): No need for dummy factory.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.h
trunk/Source/WebCore/Modules/indexeddb/IDBFactoryBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBFactoryBackendImpl.h
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/WebKit.gyp
trunk/Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp
trunk/Source/WebKit/chromium/tests/IDBCleanupOnIOErrorTest.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (145237 => 145238)

--- trunk/Source/WebCore/ChangeLog	2013-03-08 17:42:13 UTC (rev 145237)
+++ trunk/Source/WebCore/ChangeLog	2013-03-08 18:06:23 UTC (rev 145238)
@@ -1,3 +1,34 @@
+2013-03-08  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Use WeakPtr for Factory-to-BackingStore reference
+https://bugs.webkit.org/show_bug.cgi?id=111459
+
+Reviewed by Adam Barth.
+
+IDBFactoryBackendImpl maintains a map of backing stores - if another database in the same
+origin is opened, the backing store instance must be re-used). This was a map to raw
+pointers so that the backing store can be collected when all database references are
+dropped. The map was maintained manually by passing the factory to the IDBBackingStore which
+would add/remove itself on creation/destruction.
+
+Replace this with a HashMapWeakPtrT. This simplifies the plumbing; map entries
+leak but are purged on subsequent opens.
+
+Added webkit_unit_test (Chromium port) to verify refcounts.
+
+* Modules/indexeddb/IDBBackingStore.cpp:
+(WebCore::IDBBackingStore::IDBBackingStore): No need to notify factory of lifetime.
+(WebCore::IDBBackingStore::~IDBBackingStore): Ditto.
+(WebCore::IDBBackingStore::open): Ditto.
+* Modules/indexeddb/IDBBackingStore.h: No reference to the factory, but...
+(WebCore::IDBBackingStore::createWeakPtr): Do need to expose weak pointers for the factory to hold.
+* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
+(WebCore::cleanWeakMap): Helper function to scrub a HashMapWeakPtrT of empty pointers.
+May move to WTF when we've learned how general it is, or come up with a dedicated WeakPtrHashMap type.
+(WebCore::IDBFactoryBackendImpl::openBackingStore): WeakPtr fu.
+* Modules/indexeddb/IDBFactoryBackendImpl.h:
+(IDBFactoryBackendImpl): Remove plumbing methods.
+
 2013-03-08  John Mellor  joh...@chromium.org
 
 @media queries do not take zooming into account


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp (145237 => 145238)

--- trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp	2013-03-08 17:42:13 UTC (rev 145237)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp	2013-03-08 18:06:23 UTC (rev 

[webkit-changes] [145111] trunk/LayoutTests

2013-03-07 Thread jsbell
Title: [145111] trunk/LayoutTests








Revision 145111
Author jsb...@chromium.org
Date 2013-03-07 11:40:36 -0800 (Thu, 07 Mar 2013)


Log Message
IndexedDB: Make test behavior deterministic in multiprocess ports
https://bugs.webkit.org/show_bug.cgi?id=111643

Reviewed by Tony Chang.

Root cause is documented in wkbug.com/111642 but as a stop-gap - ensure
that this test doesn't fail flakily in multiprocess ports by moving the
last part of the test out of a limbo zone.

* storage/indexeddb/resources/index-multientry.js: Run subsequent part of
test in open's success handler rather than transaction's complete handler.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/resources/index-multientry.js




Diff

Modified: trunk/LayoutTests/ChangeLog (145110 => 145111)

--- trunk/LayoutTests/ChangeLog	2013-03-07 19:20:27 UTC (rev 145110)
+++ trunk/LayoutTests/ChangeLog	2013-03-07 19:40:36 UTC (rev 145111)
@@ -1,3 +1,17 @@
+2013-03-07  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Make test behavior deterministic in multiprocess ports
+https://bugs.webkit.org/show_bug.cgi?id=111643
+
+Reviewed by Tony Chang.
+
+Root cause is documented in wkbug.com/111642 but as a stop-gap - ensure
+that this test doesn't fail flakily in multiprocess ports by moving the
+last part of the test out of a limbo zone.
+
+* storage/indexeddb/resources/index-multientry.js: Run subsequent part of
+test in open's success handler rather than transaction's complete handler.
+
 2013-03-06  Ojan Vafai  o...@chromium.org
 
 Recalculate borders at the beginning of table layout


Modified: trunk/LayoutTests/storage/indexeddb/resources/index-multientry.js (145110 => 145111)

--- trunk/LayoutTests/storage/indexeddb/resources/index-multientry.js	2013-03-07 19:20:27 UTC (rev 145110)
+++ trunk/LayoutTests/storage/indexeddb/resources/index-multientry.js	2013-03-07 19:40:36 UTC (rev 145111)
@@ -136,9 +136,9 @@
 evalAndLog(db = event.target.result);
 evalAndLog(trans = event.target.transaction);
 trans._onabort_ = unexpectedAbortCallback;
-trans._oncomplete_ = function() { verifyIndexes('index-new', finishJSTest); };
 
 store = evalAndLog(store = trans.objectStore('store'));
 evalAndLog(store.createIndex('index-new', 'x', {multiEntry: true}));
 };
+request._onsuccess_ = function() { verifyIndexes('index-new', finishJSTest); };
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [145166] trunk/Source

2013-03-07 Thread jsbell
Title: [145166] trunk/Source








Revision 145166
Author jsb...@chromium.org
Date 2013-03-07 17:42:17 -0800 (Thu, 07 Mar 2013)


Log Message
IndexedDB: Use WeakPtr for Factory-to-BackingStore reference
https://bugs.webkit.org/show_bug.cgi?id=111459

Reviewed by Adam Barth.

Source/WebCore:

IDBFactoryBackendImpl maintains a map of backing stores - if another database in the same
origin is opened, the backing store instance must be re-used). This was a map to raw
pointers so that the backing store can be collected when all database references are
dropped. The map was maintained manually by passing the factory to the IDBBackingStore which
would add/remove itself on creation/destruction.

Replace this with a HashMapWeakPtr. This simplifies the plumbing; map entries
leak but are purged on subsequent opens.

Added webkit_unit_test (Chromium port) to verify refcounts.

* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::IDBBackingStore): No need to notify factory of lifetime.
(WebCore::IDBBackingStore::~IDBBackingStore): Ditto.
(WebCore::IDBBackingStore::open): Ditto.
* Modules/indexeddb/IDBBackingStore.h: No reference to the factory, but...
(WebCore::IDBBackingStore::createWeakPtr): Do need to expose weak pointers for the factory to hold.
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::cleanWeakMap): Helper function to scrub a HashMapWeakPtrT of empty pointers.
May move to WTF when we've learned how general it is, or come up with a dedicated WeakPtrHashMap type.
(WebCore::IDBFactoryBackendImpl::openBackingStore): WeakPtr fu.
* Modules/indexeddb/IDBFactoryBackendImpl.h:
(IDBFactoryBackendImpl): Remove plumbing methods.

Source/WebKit/chromium:

Added tests to verify refcounts on backing stores, update method signatures.

* tests/IDBBackingStoreTest.cpp:
(WebCore::IDBBackingStoreTest::SetUp): No dummy factory needed.
(MockIDBFactoryBackend): Expose protected method to tests.
(WebCore::TEST): Added BackingStoreLifetime test.
* tests/IDBCleanupOnIOErrorTest.cpp: No dummy factory needed.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.h
trunk/Source/WebCore/Modules/indexeddb/IDBFactoryBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBFactoryBackendImpl.h
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/tests/IDBBackingStoreTest.cpp
trunk/Source/WebKit/chromium/tests/IDBCleanupOnIOErrorTest.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (145165 => 145166)

--- trunk/Source/WebCore/ChangeLog	2013-03-08 01:36:42 UTC (rev 145165)
+++ trunk/Source/WebCore/ChangeLog	2013-03-08 01:42:17 UTC (rev 145166)
@@ -1,3 +1,34 @@
+2013-03-07  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Use WeakPtr for Factory-to-BackingStore reference
+https://bugs.webkit.org/show_bug.cgi?id=111459
+
+Reviewed by Adam Barth.
+
+IDBFactoryBackendImpl maintains a map of backing stores - if another database in the same
+origin is opened, the backing store instance must be re-used). This was a map to raw
+pointers so that the backing store can be collected when all database references are
+dropped. The map was maintained manually by passing the factory to the IDBBackingStore which
+would add/remove itself on creation/destruction.
+
+Replace this with a HashMapWeakPtr. This simplifies the plumbing; map entries
+leak but are purged on subsequent opens.
+
+Added webkit_unit_test (Chromium port) to verify refcounts.
+
+* Modules/indexeddb/IDBBackingStore.cpp:
+(WebCore::IDBBackingStore::IDBBackingStore): No need to notify factory of lifetime.
+(WebCore::IDBBackingStore::~IDBBackingStore): Ditto.
+(WebCore::IDBBackingStore::open): Ditto.
+* Modules/indexeddb/IDBBackingStore.h: No reference to the factory, but...
+(WebCore::IDBBackingStore::createWeakPtr): Do need to expose weak pointers for the factory to hold.
+* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
+(WebCore::cleanWeakMap): Helper function to scrub a HashMapWeakPtrT of empty pointers.
+May move to WTF when we've learned how general it is, or come up with a dedicated WeakPtrHashMap type.
+(WebCore::IDBFactoryBackendImpl::openBackingStore): WeakPtr fu.
+* Modules/indexeddb/IDBFactoryBackendImpl.h:
+(IDBFactoryBackendImpl): Remove plumbing methods.
+
 2013-03-07  Otto Derek Cheung  otche...@rim.com
 
 [BlackBerry] RefCounting ParsedCookie to avoid SegFaults


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp (145165 => 145166)

--- trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp	2013-03-08 01:36:42 UTC (rev 145165)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp	2013-03-08 01:42:17 UTC (rev 145166)
@@ -30,7 +30,6 @@
 
 #include FileSystem.h
 #include HistogramSupport.h
-#include 

[webkit-changes] [144813] trunk/Source/WebCore

2013-03-05 Thread jsbell
Title: [144813] trunk/Source/WebCore








Revision 144813
Author jsb...@chromium.org
Date 2013-03-05 13:48:34 -0800 (Tue, 05 Mar 2013)


Log Message
IndexedDB: Remove some unused binding code
https://bugs.webkit.org/show_bug.cgi?id=111463

Reviewed by Adam Barth.

IDBRequest got a custom V8 getter for |request| to help diagnose an issue, but the
root cause was found/fixed (http://wkbug.com/110916 and http://wkbug.com/110206) so
remove it. Also, IDBKey was marked ScriptWrappable but it is now explicitly converted
to a ScriptValue before it gets anywhere near the binding code, so remove that too.
Finally, createIDBKeyFromValue doesn't need to be exposed from IDBBindingUtilities.

No new tests - just removing dead code.

* Modules/indexeddb/IDBKey.h: No need for ScriptWrappable.
* Modules/indexeddb/IDBRequest.idl: Remove custom binding (root cause of bug found).
* WebCore.gypi: Ditto.
* bindings/js/IDBBindingUtilities.h: Don't expose internal createIDBKeyFromValue().
* bindings/v8/IDBBindingUtilities.h: Ditto.
* bindings/v8/custom/V8IDBRequestCustom.cpp: Removed.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBKey.h
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.idl
trunk/Source/WebCore/WebCore.gypi
trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h
trunk/Source/WebCore/bindings/v8/IDBBindingUtilities.h


Removed Paths

trunk/Source/WebCore/bindings/v8/custom/V8IDBRequestCustom.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (144812 => 144813)

--- trunk/Source/WebCore/ChangeLog	2013-03-05 21:47:30 UTC (rev 144812)
+++ trunk/Source/WebCore/ChangeLog	2013-03-05 21:48:34 UTC (rev 144813)
@@ -1,3 +1,25 @@
+2013-03-05  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Remove some unused binding code
+https://bugs.webkit.org/show_bug.cgi?id=111463
+
+Reviewed by Adam Barth.
+
+IDBRequest got a custom V8 getter for |request| to help diagnose an issue, but the
+root cause was found/fixed (http://wkbug.com/110916 and http://wkbug.com/110206) so
+remove it. Also, IDBKey was marked ScriptWrappable but it is now explicitly converted
+to a ScriptValue before it gets anywhere near the binding code, so remove that too.
+Finally, createIDBKeyFromValue doesn't need to be exposed from IDBBindingUtilities.
+
+No new tests - just removing dead code.
+
+* Modules/indexeddb/IDBKey.h: No need for ScriptWrappable.
+* Modules/indexeddb/IDBRequest.idl: Remove custom binding (root cause of bug found).
+* WebCore.gypi: Ditto.
+* bindings/js/IDBBindingUtilities.h: Don't expose internal createIDBKeyFromValue().
+* bindings/v8/IDBBindingUtilities.h: Ditto.
+* bindings/v8/custom/V8IDBRequestCustom.cpp: Removed.
+
 2013-03-05  Sheriff Bot  webkit.review@gmail.com
 
 Unreviewed, rolling out r144798.


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBKey.h (144812 => 144813)

--- trunk/Source/WebCore/Modules/indexeddb/IDBKey.h	2013-03-05 21:47:30 UTC (rev 144812)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBKey.h	2013-03-05 21:48:34 UTC (rev 144813)
@@ -28,7 +28,6 @@
 
 #if ENABLE(INDEXED_DATABASE)
 
-#include ScriptWrappable.h
 #include wtf/Forward.h
 #include wtf/RefCounted.h
 #include wtf/Vector.h
@@ -36,7 +35,7 @@
 
 namespace WebCore {
 
-class IDBKey : public ScriptWrappable, public RefCountedIDBKey {
+class IDBKey : public RefCountedIDBKey {
 public:
 typedef VectorRefPtrIDBKey  KeyArray;
 


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBRequest.idl (144812 => 144813)

--- trunk/Source/WebCore/Modules/indexeddb/IDBRequest.idl	2013-03-05 21:47:30 UTC (rev 144812)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBRequest.idl	2013-03-05 21:48:34 UTC (rev 144813)
@@ -33,7 +33,7 @@
 EventTarget,
 JSNoStaticTables
 ] interface IDBRequest {
-[V8Custom] readonly attribute IDBAny result
+readonly attribute IDBAny result
 getter raises (DOMException);
 readonly attribute DOMError error
 getter raises (DOMException);


Modified: trunk/Source/WebCore/WebCore.gypi (144812 => 144813)

--- trunk/Source/WebCore/WebCore.gypi	2013-03-05 21:47:30 UTC (rev 144812)
+++ trunk/Source/WebCore/WebCore.gypi	2013-03-05 21:48:34 UTC (rev 144813)
@@ -1478,7 +1478,6 @@
 'bindings/v8/custom/V8HTMLSelectElementCustom.h',
 'bindings/v8/custom/V8HistoryCustom.cpp',
 'bindings/v8/custom/V8IDBAnyCustom.cpp',
-'bindings/v8/custom/V8IDBRequestCustom.cpp',
 'bindings/v8/custom/V8ImageDataCustom.cpp',
 'bindings/v8/custom/V8InjectedScriptHostCustom.cpp',
 'bindings/v8/custom/V8InjectedScriptManager.cpp',


Modified: trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h (144812 => 144813)

--- trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h	2013-03-05 21:47:30 UTC (rev 144812)
+++ trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h	2013-03-05 21:48:34 

[webkit-changes] [144724] trunk/LayoutTests

2013-03-04 Thread jsbell
Title: [144724] trunk/LayoutTests








Revision 144724
Author jsb...@chromium.org
Date 2013-03-04 22:31:42 -0800 (Mon, 04 Mar 2013)


Log Message
[V8] Add LayoutTests for SerializedScriptValue Int32/Uint32 cases
https://bugs.webkit.org/show_bug.cgi?id=111364

Reviewed by Kentaro Hara.

A lack of layout tests for SerializedScriptValue special cases let
crbug.com/179280 slip in and out un-noticed. Rectify the situation.

* platform/chromium/fast/storage/serialized-script-value-expected.txt:
* platform/chromium/fast/storage/serialized-script-value.html:
* storage/indexeddb/structured-clone-expected.txt:
* storage/indexeddb/structured-clone.html:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/fast/storage/serialized-script-value-expected.txt
trunk/LayoutTests/platform/chromium/fast/storage/serialized-script-value.html
trunk/LayoutTests/storage/indexeddb/structured-clone-expected.txt
trunk/LayoutTests/storage/indexeddb/structured-clone.html




Diff

Modified: trunk/LayoutTests/ChangeLog (144723 => 144724)

--- trunk/LayoutTests/ChangeLog	2013-03-05 06:14:18 UTC (rev 144723)
+++ trunk/LayoutTests/ChangeLog	2013-03-05 06:31:42 UTC (rev 144724)
@@ -1,3 +1,18 @@
+2013-03-04  Joshua Bell  jsb...@chromium.org
+
+[V8] Add LayoutTests for SerializedScriptValue Int32/Uint32 cases
+https://bugs.webkit.org/show_bug.cgi?id=111364
+
+Reviewed by Kentaro Hara.
+
+A lack of layout tests for SerializedScriptValue special cases let
+crbug.com/179280 slip in and out un-noticed. Rectify the situation.
+
+* platform/chromium/fast/storage/serialized-script-value-expected.txt:
+* platform/chromium/fast/storage/serialized-script-value.html:
+* storage/indexeddb/structured-clone-expected.txt:
+* storage/indexeddb/structured-clone.html:
+
 2013-03-04  Brandon Jones  bajo...@google.com
 
 WEBGL_compressed_texture_atc implementation


Modified: trunk/LayoutTests/platform/chromium/fast/storage/serialized-script-value-expected.txt (144723 => 144724)

--- trunk/LayoutTests/platform/chromium/fast/storage/serialized-script-value-expected.txt	2013-03-05 06:14:18 UTC (rev 144723)
+++ trunk/LayoutTests/platform/chromium/fast/storage/serialized-script-value-expected.txt	2013-03-05 06:31:42 UTC (rev 144724)
@@ -89,6 +89,30 @@
 Serialize 1.23:
 PASS bufferView.length is expectedBufferValues.length
 
+Deserialize to 2147483647:
+PASS JSON.stringify(newObj) is JSON.stringify(obj)
+PASS areValuesIdentical(newObj, obj) is true
+Serialize 2147483647:
+PASS bufferView.length is expectedBufferValues.length
+
+Deserialize to -2147483648:
+PASS JSON.stringify(newObj) is JSON.stringify(obj)
+PASS areValuesIdentical(newObj, obj) is true
+Serialize -2147483648:
+PASS bufferView.length is expectedBufferValues.length
+
+Deserialize to 2147483648:
+PASS JSON.stringify(newObj) is JSON.stringify(obj)
+PASS areValuesIdentical(newObj, obj) is true
+Serialize 2147483648:
+PASS bufferView.length is expectedBufferValues.length
+
+Deserialize to 4294967295:
+PASS JSON.stringify(newObj) is JSON.stringify(obj)
+PASS areValuesIdentical(newObj, obj) is true
+Serialize 4294967295:
+PASS bufferView.length is expectedBufferValues.length
+
 Deserialize to :
 PASS JSON.stringify(newObj) is JSON.stringify(obj)
 PASS areValuesIdentical(newObj, obj) is true


Modified: trunk/LayoutTests/platform/chromium/fast/storage/serialized-script-value.html (144723 => 144724)

--- trunk/LayoutTests/platform/chromium/fast/storage/serialized-script-value.html	2013-03-05 06:14:18 UTC (rev 144723)
+++ trunk/LayoutTests/platform/chromium/fast/storage/serialized-script-value.html	2013-03-05 06:31:42 UTC (rev 144724)
@@ -55,6 +55,13 @@
 testSerialization(Math.pow(2,55), [0x02ff, 0x003f, 0x004e, 0x, 0x,
0x6000, 0x0043]);
 testSerialization(1.23, [0x02ff, 0x003f, 0xae4e, 0xe147, 0x147a, 0xf3ae, 0x003f]);
+
+// Exercise special cases for Int32/Uint32.
+testSerialization( 0x7fff, [0x02ff, 0x003f, 0xfe49, 0x, 0x0fff]);
+testSerialization(-0x8000, [0x02ff, 0x003f, 0xff49, 0x, 0x0fff]);
+testSerialization( 0x8000, [0x02ff, 0x003f, 0x8055, 0x8080, 0x0880]);
+testSerialization( 0x, [0x02ff, 0x003f, 0xff55, 0x, 0x0fff]);
+
 testSerialization(, [0x02ff, 0x003f, 0x0053]);
 testSerialization(abc, [0x02ff, 0x003f, 0x0353, 0x6261, 0x0063]);
 testSerialization({integer: 123}, [0x02ff, 0x003f, 0x3f6f, 0x5301, 0x6907,


Modified: trunk/LayoutTests/storage/indexeddb/structured-clone-expected.txt (144723 => 144724)

--- trunk/LayoutTests/storage/indexeddb/structured-clone-expected.txt	2013-03-05 06:14:18 UTC (rev 144723)
+++ trunk/LayoutTests/storage/indexeddb/structured-clone-expected.txt	2013-03-05 06:31:42 UTC (rev 144724)
@@ -70,6 +70,34 @@
 store.get('key')
 PASS is(test_data, result) is true
 
+Testing: -0x
+transaction = db.transaction('storeName', 'readwrite')
+store = transaction.objectStore('storeName')

[webkit-changes] [144075] trunk

2013-02-26 Thread jsbell
Title: [144075] trunk








Revision 144075
Author jsb...@chromium.org
Date 2013-02-26 10:44:04 -0800 (Tue, 26 Feb 2013)


Log Message
IndexedDB: IDBObjectStore.index() doesn't report errors after deleteIndex()
https://bugs.webkit.org/show_bug.cgi?id=110792

Reviewed by Tony Chang.

Source/WebCore:

The object store's metadata wasn't updated if the index hadn't been accessed
by script and hence placed in the name-object map. Make sure the metadata
is always updated.

Test: storage/indexeddb/deleteIndex-bug110792.html

* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::deleteIndex): Always update the object store's metadata.

LayoutTests:

Added regression test for bug.

* storage/indexeddb/deleteIndex-bug110792-expected.txt: Added.
* storage/indexeddb/deleteIndex-bug110792.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp


Added Paths

trunk/LayoutTests/storage/indexeddb/deleteIndex-bug110792-expected.txt
trunk/LayoutTests/storage/indexeddb/deleteIndex-bug110792.html




Diff

Modified: trunk/LayoutTests/ChangeLog (144074 => 144075)

--- trunk/LayoutTests/ChangeLog	2013-02-26 18:43:24 UTC (rev 144074)
+++ trunk/LayoutTests/ChangeLog	2013-02-26 18:44:04 UTC (rev 144075)
@@ -1,3 +1,15 @@
+2013-02-26  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: IDBObjectStore.index() doesn't report errors after deleteIndex()
+https://bugs.webkit.org/show_bug.cgi?id=110792
+
+Reviewed by Tony Chang.
+
+Added regression test for bug.
+
+* storage/indexeddb/deleteIndex-bug110792-expected.txt: Added.
+* storage/indexeddb/deleteIndex-bug110792.html: Added.
+
 2013-02-26  Sheriff Bot  webkit.review@gmail.com
 
 Unreviewed, rolling out r144019.


Added: trunk/LayoutTests/storage/indexeddb/deleteIndex-bug110792-expected.txt (0 => 144075)

--- trunk/LayoutTests/storage/indexeddb/deleteIndex-bug110792-expected.txt	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/deleteIndex-bug110792-expected.txt	2013-02-26 18:44:04 UTC (rev 144075)
@@ -0,0 +1,33 @@
+Ensure IndexedDB's IDBObjectStore.deleteIndex() works if IDBIndex object has not been fetched - regression test for bug 110792.
+
+On success, you will see a series of PASS messages, followed by TEST COMPLETE.
+
+
+indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
+
+dbname = deleteIndex-bug110792.html
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname, 1)
+
+onFirstUpgradeNeeded():
+db = event.target.result
+store = db.createObjectStore('store')
+store.createIndex('index', 'keyPath')
+
+closeAndReOpen():
+db.close()
+
+indexedDB.open(dbname, 2)
+
+onSecondUpgradeNeeded():
+db = event.target.result
+store = event.target.transaction.objectStore('store')
+store.deleteIndex('index')
+Expecting exception from store.index('index')
+PASS Exception was thrown.
+PASS code is DOMException.NOT_FOUND_ERR
+PASS ename is 'NotFoundError'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/storage/indexeddb/deleteIndex-bug110792.html (0 => 144075)

--- trunk/LayoutTests/storage/indexeddb/deleteIndex-bug110792.html	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/deleteIndex-bug110792.html	2013-02-26 18:44:04 UTC (rev 144075)
@@ -0,0 +1,42 @@
+!DOCTYPE html
+script src=""
+script src=""
+script
+
+description(Ensure IndexedDB's IDBObjectStore.deleteIndex() works if IDBIndex object has not been fetched - regression test for bug 110792.);
+
+indexedDBTest(onFirstUpgradeNeeded, closeAndReOpen, {version: 1});
+
+function onFirstUpgradeNeeded(evt)
+{
+preamble(evt);
+evalAndLog(db = event.target.result);
+evalAndLog(store = db.createObjectStore('store'));
+evalAndLog(store.createIndex('index', 'keyPath'));
+}
+
+function closeAndReOpen()
+{
+preamble();
+evalAndLog(db.close());
+debug();
+request = evalAndLog(indexedDB.open(dbname, 2));
+request._onblocked_ = unexpectedBlockedCallback;
+request._onerror_ = unexpectedErrorCallback;
+request._onupgradeneeded_ = onSecondUpgradeNeeded;
+request._onsuccess_ = finishJSTest;
+}
+
+function onSecondUpgradeNeeded(evt)
+{
+preamble(evt);
+evalAndLog(db = event.target.result);
+evalAndLog(store = event.target.transaction.objectStore('store'));
+// Do NOT add a call to store.index('index') here (e.g. to assert it exists)
+// or the bug disappears.
+evalAndLog(store.deleteIndex('index'));
+evalAndExpectException(store.index('index'), DOMException.NOT_FOUND_ERR, 'NotFoundError');
+}
+
+/script
+script src=""


Modified: trunk/Source/WebCore/ChangeLog (144074 => 144075)

--- trunk/Source/WebCore/ChangeLog	2013-02-26 18:43:24 UTC (rev 144074)
+++ trunk/Source/WebCore/ChangeLog	2013-02-26 18:44:04 UTC (rev 144075)
@@ -1,3 +1,19 @@
+2013-02-26  Joshua Bell  jsb...@chromium.org
+
+

[webkit-changes] [144125] trunk/Source/WebCore

2013-02-26 Thread jsbell
Title: [144125] trunk/Source/WebCore








Revision 144125
Author jsb...@chromium.org
Date 2013-02-26 16:45:56 -0800 (Tue, 26 Feb 2013)


Log Message
IndexedDB: Add temporary diagnostic code to IDBRequest.result getter
https://bugs.webkit.org/show_bug.cgi?id=110916

Reviewed by Kentaro Hara.

Implement a custom getter for IDBRequest.result that does one additional hidden
property set, to try and isolate the flaky crash seen in wkbug.com/105363 which is
difficult to repro locally. If the crash moves to the new line it will point
the investigation in a new direction. Also add an assertion that probes string
wrappers (the expected type).

* Modules/indexeddb/IDBRequest.idl: Mark attribute as [Custom]
* WebCore.gypi: New file.
* bindings/v8/custom/V8IDBRequestCustom.cpp: Added.
(WebCore::V8IDBRequest::resultAttrGetterCustom): Implementation - copy/paste from
generated code, plus extra setNamedHiddenReference call and string ASSERT.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.idl
trunk/Source/WebCore/WebCore.gypi


Added Paths

trunk/Source/WebCore/bindings/v8/custom/V8IDBRequestCustom.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (144124 => 144125)

--- trunk/Source/WebCore/ChangeLog	2013-02-27 00:44:58 UTC (rev 144124)
+++ trunk/Source/WebCore/ChangeLog	2013-02-27 00:45:56 UTC (rev 144125)
@@ -1,3 +1,22 @@
+2013-02-26  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Add temporary diagnostic code to IDBRequest.result getter
+https://bugs.webkit.org/show_bug.cgi?id=110916
+
+Reviewed by Kentaro Hara.
+
+Implement a custom getter for IDBRequest.result that does one additional hidden
+property set, to try and isolate the flaky crash seen in wkbug.com/105363 which is
+difficult to repro locally. If the crash moves to the new line it will point
+the investigation in a new direction. Also add an assertion that probes string
+wrappers (the expected type).
+
+* Modules/indexeddb/IDBRequest.idl: Mark attribute as [Custom]
+* WebCore.gypi: New file.
+* bindings/v8/custom/V8IDBRequestCustom.cpp: Added.
+(WebCore::V8IDBRequest::resultAttrGetterCustom): Implementation - copy/paste from
+generated code, plus extra setNamedHiddenReference call and string ASSERT.
+
 2013-02-26  Anders Carlsson  ander...@apple.com
 
 Add a couple of symbols needed by WebKit2.


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBRequest.idl (144124 => 144125)

--- trunk/Source/WebCore/Modules/indexeddb/IDBRequest.idl	2013-02-27 00:44:58 UTC (rev 144124)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBRequest.idl	2013-02-27 00:45:56 UTC (rev 144125)
@@ -33,7 +33,7 @@
 EventTarget,
 JSNoStaticTables
 ] interface IDBRequest {
-readonly attribute IDBAny result
+[V8Custom] readonly attribute IDBAny result
 getter raises (DOMException);
 readonly attribute DOMError error
 getter raises (DOMException);


Modified: trunk/Source/WebCore/WebCore.gypi (144124 => 144125)

--- trunk/Source/WebCore/WebCore.gypi	2013-02-27 00:44:58 UTC (rev 144124)
+++ trunk/Source/WebCore/WebCore.gypi	2013-02-27 00:45:56 UTC (rev 144125)
@@ -1384,6 +1384,7 @@
 'bindings/v8/custom/V8HTMLSelectElementCustom.h',
 'bindings/v8/custom/V8HistoryCustom.cpp',
 'bindings/v8/custom/V8IDBAnyCustom.cpp',
+'bindings/v8/custom/V8IDBRequestCustom.cpp',
 'bindings/v8/custom/V8ImageDataCustom.cpp',
 'bindings/v8/custom/V8InjectedScriptHostCustom.cpp',
 'bindings/v8/custom/V8InjectedScriptManager.cpp',


Added: trunk/Source/WebCore/bindings/v8/custom/V8IDBRequestCustom.cpp (0 => 144125)

--- trunk/Source/WebCore/bindings/v8/custom/V8IDBRequestCustom.cpp	(rev 0)
+++ trunk/Source/WebCore/bindings/v8/custom/V8IDBRequestCustom.cpp	2013-02-27 00:45:56 UTC (rev 144125)
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR 

[webkit-changes] [143347] trunk/Source

2013-02-19 Thread jsbell
Title: [143347] trunk/Source








Revision 143347
Author jsb...@chromium.org
Date 2013-02-19 09:42:55 -0800 (Tue, 19 Feb 2013)


Log Message
IndexedDB: additional checks on LevelDB decoding
https://bugs.webkit.org/show_bug.cgi?id=109711

Reviewed by Tony Chang.

Source/WebCore:

Watch out for decoding errors caused by corrupted data, and exit various
decode/compare operations earlier.

Covered by existing LayoutTests and Chromium's webkit_unit_tests

* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::decodeStringWithLength): Bail if length is negative.
(WebCore::IDBLevelDBCoding::compareEncodedStringsWithLength): Distinguish error case.
(WebCore::IDBLevelDBCoding::extractEncodedIDBKey): Bail if length is negative.
(WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): Distinguish error case.
(WebCore::IDBLevelDBCoding::compare): Plumb through ok.
(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::compare): Ditto.
(WebCore::IDBLevelDBCoding::ExistsEntryKey::compare): Ditto.
(WebCore::IDBLevelDBCoding::IndexDataKey::compare): Ditto.
* Modules/indexeddb/IDBLevelDBCoding.h: Updated method signatures.

Source/WebKit/chromium:

* tests/IDBLevelDBCodingTest.cpp: Update test with new method signatures.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/tests/IDBLevelDBCodingTest.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (143346 => 143347)

--- trunk/Source/WebCore/ChangeLog	2013-02-19 17:12:41 UTC (rev 143346)
+++ trunk/Source/WebCore/ChangeLog	2013-02-19 17:42:55 UTC (rev 143347)
@@ -1,3 +1,26 @@
+2013-02-19  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: additional checks on LevelDB decoding
+https://bugs.webkit.org/show_bug.cgi?id=109711
+
+Reviewed by Tony Chang.
+
+Watch out for decoding errors caused by corrupted data, and exit various
+decode/compare operations earlier.
+
+Covered by existing LayoutTests and Chromium's webkit_unit_tests
+
+* Modules/indexeddb/IDBLevelDBCoding.cpp:
+(WebCore::IDBLevelDBCoding::decodeStringWithLength): Bail if length is negative.
+(WebCore::IDBLevelDBCoding::compareEncodedStringsWithLength): Distinguish error case.
+(WebCore::IDBLevelDBCoding::extractEncodedIDBKey): Bail if length is negative.
+(WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): Distinguish error case.
+(WebCore::IDBLevelDBCoding::compare): Plumb through ok.
+(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::compare): Ditto.
+(WebCore::IDBLevelDBCoding::ExistsEntryKey::compare): Ditto.
+(WebCore::IDBLevelDBCoding::IndexDataKey::compare): Ditto.
+* Modules/indexeddb/IDBLevelDBCoding.h: Updated method signatures.
+
 2013-02-19  ChangSeok Oh  changseok...@collabora.com
 
 [GTK][AC] Implement keyframe animations with clutter ac backend


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp (143346 => 143347)

--- trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp	2013-02-19 17:12:41 UTC (rev 143346)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp	2013-02-19 17:42:55 UTC (rev 143347)
@@ -335,17 +335,15 @@
 ASSERT(limit = p);
 int64_t len;
 p = decodeVarInt(p, limit, len);
-if (!p)
+if (!p || len  0 || p + len * 2  limit)
 return 0;
-if (p + len * 2  limit)
-return 0;
 
 foundString = decodeString(p, p + len * 2);
 p += len * 2;
 return p;
 }
 
-int compareEncodedStringsWithLength(const char* p, const char* limitP, const char* q, const char* limitQ)
+int compareEncodedStringsWithLength(const char* p, const char* limitP, const char* q, const char* limitQ, bool ok)
 {
 ASSERT(p != q);
 ASSERT(limitP = p);
@@ -353,6 +351,10 @@
 int64_t lenP, lenQ;
 p = decodeVarInt(p, limitP, lenP);
 q = decodeVarInt(q, limitQ, lenQ);
+if (!p || !q || lenP  0 || lenQ  0) {
+ok = false;
+return 0;
+}
 ASSERT(p  q);
 ASSERT(lenP = 0);
 ASSERT(lenQ = 0);
@@ -364,9 +366,12 @@
 p += lenP * 2;
 q += lenQ * 2;
 
-if (p  limitP || q  limitQ)
+if (p  limitP || q  limitQ) {
+ok = false;
 return 0;
+}
 
+ok = true;
 const size_t lmin = static_castsize_t(lenP  lenQ ? lenP : lenQ);
 if (int x = memcmp(startP, startQ, lmin * 2))
 return x;
@@ -462,10 +467,8 @@
 case IDBKeyArrayTypeByte: {
 int64_t length;
 p = decodeVarInt(p, limit, length);
-if (!p)
+if (!p || length  0)
 return 0;
-if (length  0)
-return 0;
 IDBKey::KeyArray array;
 while (length--) {
 RefPtrIDBKey key;
@@ -522,10 +525,8 @@
 case IDBKeyArrayTypeByte: {
 int64_t length;
 p = decodeVarInt(p, limit, length);
-if (!p)
+ 

[webkit-changes] [142938] trunk/Source/WebCore

2013-02-14 Thread jsbell
Title: [142938] trunk/Source/WebCore








Revision 142938
Author jsb...@chromium.org
Date 2013-02-14 16:36:52 -0800 (Thu, 14 Feb 2013)


Log Message
[V8] IndexedDB: Remove unused creationContext paramter from idbKeyToV8Value
https://bugs.webkit.org/show_bug.cgi?id=109870

Reviewed by Kentaro Hara.

This parameter was left over from when the function was toV8(IDBKey). Remove it.

No new tests - just removing dead code.

* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::idbKeyToV8Value): Remove unused parameter.
(WebCore::injectIDBKeyIntoScriptValue): No need for dummy handle.
(WebCore::idbKeyToScriptValue): No need for dummy handle.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/bindings/v8/IDBBindingUtilities.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (142937 => 142938)

--- trunk/Source/WebCore/ChangeLog	2013-02-15 00:35:13 UTC (rev 142937)
+++ trunk/Source/WebCore/ChangeLog	2013-02-15 00:36:52 UTC (rev 142938)
@@ -1,3 +1,19 @@
+2013-02-14  Joshua Bell  jsb...@chromium.org
+
+[V8] IndexedDB: Remove unused creationContext paramter from idbKeyToV8Value
+https://bugs.webkit.org/show_bug.cgi?id=109870
+
+Reviewed by Kentaro Hara.
+
+This parameter was left over from when the function was toV8(IDBKey). Remove it.
+
+No new tests - just removing dead code.
+
+* bindings/v8/IDBBindingUtilities.cpp:
+(WebCore::idbKeyToV8Value): Remove unused parameter.
+(WebCore::injectIDBKeyIntoScriptValue): No need for dummy handle.
+(WebCore::idbKeyToScriptValue): No need for dummy handle.
+
 2013-02-14  Kondapally Kalyan  kalyan.kondapa...@intel.com
 
 [WebGL][Qt] regression:r142786 Qt Build fix for Arm and Windows.


Modified: trunk/Source/WebCore/bindings/v8/IDBBindingUtilities.cpp (142937 => 142938)

--- trunk/Source/WebCore/bindings/v8/IDBBindingUtilities.cpp	2013-02-15 00:35:13 UTC (rev 142937)
+++ trunk/Source/WebCore/bindings/v8/IDBBindingUtilities.cpp	2013-02-15 00:36:52 UTC (rev 142938)
@@ -39,7 +39,7 @@
 
 namespace WebCore {
 
-static v8::Handlev8::Value idbKeyToV8Value(IDBKey* key, v8::Handlev8::Object creationContext, v8::Isolate* isolate)
+static v8::Handlev8::Value idbKeyToV8Value(IDBKey* key, v8::Isolate* isolate)
 {
 if (!key) {
 // This should be undefined, not null.
@@ -62,7 +62,7 @@
 {
 v8::Localv8::Array array = v8::Array::New(key-array().size());
 for (size_t i = 0; i  key-array().size(); ++i)
-array-Set(i, idbKeyToV8Value(key-array()[i].get(), creationContext, isolate));
+array-Set(i, idbKeyToV8Value(key-array()[i].get(), isolate));
 return array;
 }
 }
@@ -275,7 +275,7 @@
 if (parent.IsEmpty())
 return false;
 
-if (!set(parent, keyPathElements.last(), idbKeyToV8Value(key.get(), v8::Handlev8::Object(), isolate), isolate))
+if (!set(parent, keyPathElements.last(), idbKeyToV8Value(key.get(), isolate), isolate))
 return false;
 
 return true;
@@ -301,7 +301,7 @@
 {
 ASSERT(v8::Context::InContext());
 v8::HandleScope handleScope;
-v8::Handlev8::Value v8Value(idbKeyToV8Value(key.get(), v8::Handlev8::Object(), state-context()-GetIsolate()));
+v8::Handlev8::Value v8Value(idbKeyToV8Value(key.get(), state-context()-GetIsolate()));
 return ScriptValue(v8Value);
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [142653] trunk/Source/WebKit/chromium

2013-02-12 Thread jsbell
Title: [142653] trunk/Source/WebKit/chromium








Revision 142653
Author jsb...@chromium.org
Date 2013-02-12 12:23:04 -0800 (Tue, 12 Feb 2013)


Log Message
[Chromium] IndexedDB/Worker crash during shutdown
https://bugs.webkit.org/show_bug.cgi?id=109467

Reviewed by Tony Chang.

If the message queue has already been terminated, don't bother scheduling
a new error event that will never be delivered. Speculative fix for the
issue, which only repros in multiprocess ports and so far only on some
platforms.

* src/IDBFactoryBackendProxy.cpp:
(WebKit::IDBFactoryBackendProxy::allowIndexedDB): Early exit.

Modified Paths

trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp




Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (142652 => 142653)

--- trunk/Source/WebKit/chromium/ChangeLog	2013-02-12 20:14:06 UTC (rev 142652)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-02-12 20:23:04 UTC (rev 142653)
@@ -1,3 +1,18 @@
+2013-02-12  Joshua Bell  jsb...@chromium.org
+
+[Chromium] IndexedDB/Worker crash during shutdown
+https://bugs.webkit.org/show_bug.cgi?id=109467
+
+Reviewed by Tony Chang.
+
+If the message queue has already been terminated, don't bother scheduling
+a new error event that will never be delivered. Speculative fix for the
+issue, which only repros in multiprocess ports and so far only on some
+platforms.
+
+* src/IDBFactoryBackendProxy.cpp:
+(WebKit::IDBFactoryBackendProxy::allowIndexedDB): Early exit.
+
 2013-02-12  Zan Dobersek  zdober...@igalia.com
 
 Remove ENABLE_XHR_RESPONSE_BLOB handling from various build systems


Modified: trunk/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp (142652 => 142653)

--- trunk/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp	2013-02-12 20:14:06 UTC (rev 142652)
+++ trunk/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp	2013-02-12 20:23:04 UTC (rev 142653)
@@ -182,9 +182,9 @@
 // Either the bridge returns, or the queue gets terminated.
 if (runLoop.runInMode(workerContext, mode) == MessageQueueTerminated) {
 bridge-cancel();
-allowed = false;
-} else
-allowed = bridge-result();
+return false;
+}
+allowed = bridge-result();
 }
 
 if (!allowed)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [142483] trunk

2013-02-11 Thread jsbell
Title: [142483] trunk








Revision 142483
Author jsb...@chromium.org
Date 2013-02-11 09:28:22 -0800 (Mon, 11 Feb 2013)


Log Message
[V8] IndexedDB: Minor GC can collect IDBDatabase wrapper with versionchange handler
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):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp


Added Paths

trunk/LayoutTests/storage/indexeddb/database-wrapper-expected.txt
trunk/LayoutTests/storage/indexeddb/database-wrapper.html
trunk/LayoutTests/storage/indexeddb/resources/database-wrapper.js




Diff

Modified: trunk/LayoutTests/ChangeLog (142482 => 142483)

--- trunk/LayoutTests/ChangeLog	2013-02-11 17:17:45 UTC (rev 142482)
+++ trunk/LayoutTests/ChangeLog	2013-02-11 17:28:22 UTC (rev 142483)
@@ -1,3 +1,23 @@
+2013-02-11  Joshua Bell  jsb...@chromium.org
+
+[V8] IndexedDB: Minor GC can collect IDBDatabase wrapper with versionchange handler
+https://bugs.webkit.org/show_bug.cgi?id=108670
+
+Reviewed by Kentaro Hara.
+
+* 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):
+
 2013-02-11  Christophe Dumez  ch.du...@sisa.samsung.com
 
 Unreviewed EFL gardening.


Added: trunk/LayoutTests/storage/indexeddb/database-wrapper-expected.txt (0 => 142483)

--- trunk/LayoutTests/storage/indexeddb/database-wrapper-expected.txt	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/database-wrapper-expected.txt	2013-02-11 17:28:22 UTC (rev 142483)
@@ -0,0 +1,38 @@
+Ensure IDBDatabase wrapper isn't prematurely collected.
+
+On success, you will see a series of PASS messages, followed by TEST COMPLETE.
+
+
+dbname = database-wrapper.html
+indexedDB.deleteDatabase(dbname)
+
+openDB():
+indexedDB.open(dbname, 1)
+
+onUpgradeNeeded():
+db = event.target.result
+db.createObjectStore('store').createIndex('index', 'keyPath')
+db = null
+
+openSuccess():
+sawVersionChangeEvent = false
+
+collectGarbage():
+self.gc()
+
+openAgain():
+indexedDB.open(dbname, 2)
+
+onVersionChange():
+event.target.close()
+sawVersionChangeEvent = true
+
+onBlocked():
+FIXME: Blocked event shouldn't fire. http://wkbug.com/71130
+
+openAgainSuccess():
+PASS sawVersionChangeEvent is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/storage/indexeddb/database-wrapper.html (0 => 142483)

--- trunk/LayoutTests/storage/indexeddb/database-wrapper.html	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/database-wrapper.html	2013-02-11 17:28:22 UTC (rev 142483)
@@ -0,0 +1,10 @@
+html
+head
+script src=""
+script src=""
+/head
+body
+script src=""
+script src=""
+/body
+/html


Added: trunk/LayoutTests/storage/indexeddb/resources/database-wrapper.js (0 => 142483)

--- trunk/LayoutTests/storage/indexeddb/resources/database-wrapper.js	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/resources/database-wrapper.js	2013-02-11 17:28:22 UTC (rev 142483)
@@ -0,0 +1,90 @@
+if (this.importScripts) {
+importScripts('../../../fast/js/resources/js-test-pre.js');
+importScripts('shared.js');
+}
+
+description(Ensure IDBDatabase wrapper isn't prematurely collected.);
+
+test();
+
+function test()
+{
+setDBNameFromPath();
+var deleteRequest = evalAndLog(indexedDB.deleteDatabase(dbname));
+deleteRequest._onblocked_ = unexpectedBlockedCallback;
+deleteRequest._onerror_ = unexpectedErrorCallback;
+

[webkit-changes] [142513] trunk

2013-02-11 Thread jsbell
Title: [142513] trunk








Revision 142513
Author jsb...@chromium.org
Date 2013-02-11 14:13:19 -0800 (Mon, 11 Feb 2013)


Log Message
IndexedDB: database connections don't close after versionchange transaction aborts
https://bugs.webkit.org/show_bug.cgi?id=102298

Reviewed by Tony Chang.

Source/WebCore:

Per spec, close the database if the versionchange transaction aborts.

Tests: storage/indexeddb/aborted-versionchange-closes.html
   storage/indexeddb/lazy-index-population.html
   storage/objectstore-basics.html

* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::onAbort): Tell the IDBDatabase (connection) to close if
this was a versionchange transaction.

LayoutTests:

Added dedicated test, updated tests dependent on buggy behavior.

* storage/indexeddb/aborted-versionchange-closes-expected.txt: Added.
* storage/indexeddb/aborted-versionchange-closes.html: Added.
* storage/indexeddb/lazy-index-population-expected.txt:
* storage/indexeddb/lazy-index-population.html: Remove manual closing.
* storage/indexeddb/objectstore-basics-expected.txt:
* storage/indexeddb/objectstore-basics-workers-expected.txt:
* storage/indexeddb/resources/aborted-versionchange-closes.js: Added.
* storage/indexeddb/resources/objectstore-basics.js: Removed dependency on bug.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/lazy-index-population-expected.txt
trunk/LayoutTests/storage/indexeddb/lazy-index-population.html
trunk/LayoutTests/storage/indexeddb/objectstore-basics-expected.txt
trunk/LayoutTests/storage/indexeddb/objectstore-basics-workers-expected.txt
trunk/LayoutTests/storage/indexeddb/resources/objectstore-basics.js
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp


Added Paths

trunk/LayoutTests/storage/indexeddb/aborted-versionchange-closes-expected.txt
trunk/LayoutTests/storage/indexeddb/aborted-versionchange-closes.html
trunk/LayoutTests/storage/indexeddb/resources/aborted-versionchange-closes.js




Diff

Modified: trunk/LayoutTests/ChangeLog (142512 => 142513)

--- trunk/LayoutTests/ChangeLog	2013-02-11 21:59:31 UTC (rev 142512)
+++ trunk/LayoutTests/ChangeLog	2013-02-11 22:13:19 UTC (rev 142513)
@@ -1,3 +1,21 @@
+2013-02-11  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: database connections don't close after versionchange transaction aborts
+https://bugs.webkit.org/show_bug.cgi?id=102298
+
+Reviewed by Tony Chang.
+
+Added dedicated test, updated tests dependent on buggy behavior.
+
+* storage/indexeddb/aborted-versionchange-closes-expected.txt: Added.
+* storage/indexeddb/aborted-versionchange-closes.html: Added.
+* storage/indexeddb/lazy-index-population-expected.txt:
+* storage/indexeddb/lazy-index-population.html: Remove manual closing.
+* storage/indexeddb/objectstore-basics-expected.txt:
+* storage/indexeddb/objectstore-basics-workers-expected.txt:
+* storage/indexeddb/resources/aborted-versionchange-closes.js: Added.
+* storage/indexeddb/resources/objectstore-basics.js: Removed dependency on bug.
+
 2013-02-11  Christophe Dumez  ch.du...@sisa.samsung.com
 
 [EFL] fast/forms/number/number-l10n-input.html is failing


Added: trunk/LayoutTests/storage/indexeddb/aborted-versionchange-closes-expected.txt (0 => 142513)

--- trunk/LayoutTests/storage/indexeddb/aborted-versionchange-closes-expected.txt	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/aborted-versionchange-closes-expected.txt	2013-02-11 22:13:19 UTC (rev 142513)
@@ -0,0 +1,46 @@
+Test that an aborted 'versionchange' transaction closes the connection.
+
+On success, you will see a series of PASS messages, followed by TEST COMPLETE.
+
+
+indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
+
+dbname = aborted-versionchange-closes.html
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname, 1)
+
+prepareDatabase():
+db = event.target.result
+db.createObjectStore('store')
+
+onOpen():
+db = event.target.result
+db.close()
+
+openAgain():
+request = indexedDB.open(dbname, 2)
+
+onUpgradeNeeded():
+db = event.target.result
+transaction = event.target.transaction
+sawTransactionAbort = false
+
+onTransactionAbort():
+sawTransactionAbort = true
+creating a transaction should fail because connection is closed:
+Expecting exception from db.transaction('store')
+PASS Exception was thrown.
+PASS code is DOMException.INVALID_STATE_ERR
+PASS ename is 'InvalidStateError'
+
+onOpenError():
+PASS sawTransactionAbort is true
+creating a transaction should fail because connection is closed:
+Expecting exception from db.transaction('store')
+PASS Exception was thrown.
+PASS code is DOMException.INVALID_STATE_ERR
+PASS ename is 'InvalidStateError'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/storage/indexeddb/aborted-versionchange-closes.html (0 => 

[webkit-changes] [142324] trunk/LayoutTests

2013-02-08 Thread jsbell
Title: [142324] trunk/LayoutTests








Revision 142324
Author jsb...@chromium.org
Date 2013-02-08 14:48:46 -0800 (Fri, 08 Feb 2013)


Log Message
IndexedDB: De-flake open-during-transaction layout test
https://bugs.webkit.org/show_bug.cgi?id=109072

Reviewed by Tony Chang.

This test was observed to be flaky in local runs; sometimes the transaction
would terminate after the third open() call rather than the second, resulting
in a TEXT difference. Added code to keep the transaction alive until all of
the open() calls are complete, and changed expectations to match.

* storage/indexeddb/open-during-transaction-expected.txt:
* storage/indexeddb/resources/open-during-transaction.js:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/open-during-transaction-expected.txt
trunk/LayoutTests/storage/indexeddb/resources/open-during-transaction.js




Diff

Modified: trunk/LayoutTests/ChangeLog (142323 => 142324)

--- trunk/LayoutTests/ChangeLog	2013-02-08 22:35:28 UTC (rev 142323)
+++ trunk/LayoutTests/ChangeLog	2013-02-08 22:48:46 UTC (rev 142324)
@@ -1,3 +1,18 @@
+2013-02-08  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: De-flake open-during-transaction layout test
+https://bugs.webkit.org/show_bug.cgi?id=109072
+
+Reviewed by Tony Chang.
+
+This test was observed to be flaky in local runs; sometimes the transaction
+would terminate after the third open() call rather than the second, resulting
+in a TEXT difference. Added code to keep the transaction alive until all of
+the open() calls are complete, and changed expectations to match.
+
+* storage/indexeddb/open-during-transaction-expected.txt:
+* storage/indexeddb/resources/open-during-transaction.js:
+
 2013-02-08  Stephen Chenney  schen...@chromium.org
 
 [Chromium] Expectations as a result of removing Skia code suppressions


Modified: trunk/LayoutTests/storage/indexeddb/open-during-transaction-expected.txt (142323 => 142324)

--- trunk/LayoutTests/storage/indexeddb/open-during-transaction-expected.txt	2013-02-08 22:35:28 UTC (rev 142323)
+++ trunk/LayoutTests/storage/indexeddb/open-during-transaction-expected.txt	2013-02-08 22:48:46 UTC (rev 142324)
@@ -14,7 +14,7 @@
 starting transaction
 state = 'starting'
 trans = dbc1.transaction('storeName', 'readwrite')
-trans.objectStore('storeName').put('value', 'key')
+the transaction is kept alive with a series of puts until opens are complete
 
 trying to open the same database
 openreq2 = indexedDB.open(dbname)
@@ -26,12 +26,13 @@
 PASS state is starting
 state = 'open2complete'
 
-transaction complete
-PASS state is open2complete
-
 openreq3.onsuccess
 PASS state is open2complete
 state = 'open3complete'
+
+transaction complete
+PASS state is open3complete
+
 PASS successfullyParsed is true
 
 TEST COMPLETE


Modified: trunk/LayoutTests/storage/indexeddb/resources/open-during-transaction.js (142323 => 142324)

--- trunk/LayoutTests/storage/indexeddb/resources/open-during-transaction.js	2013-02-08 22:35:28 UTC (rev 142323)
+++ trunk/LayoutTests/storage/indexeddb/resources/open-during-transaction.js	2013-02-08 22:48:46 UTC (rev 142324)
@@ -21,13 +21,24 @@
 debug(starting transaction);
 evalAndLog(state = 'starting');
 evalAndLog(trans = dbc1.transaction('storeName', 'readwrite'));
-evalAndLog(trans.objectStore('storeName').put('value', 'key'));
+
+debug(the transaction is kept alive with a series of puts until opens are complete);
+(function keepAlive() {
+// Don't log, since this may run an arbitrary number of times.
+if (state !== 'open3complete') {
+var request = trans.objectStore('storeName').put('value', 'key');
+request._onerror_ = unexpectedErrorCallback;
+request._onsuccess_ = keepAlive;
+}
+}());
+
 trans._onabort_ = unexpectedAbortCallback;
 trans._onerror_ = unexpectedErrorCallback;
 trans._oncomplete_ = function (e) {
 debug(transaction complete);
-shouldBeEqualToString(state, open2complete);
+shouldBeEqualToString(state, open3complete);
 debug();
+finishJSTest();
 };
 
 debug();
@@ -44,7 +55,7 @@
 shouldBeEqualToString(state, starting);
 evalAndLog(state = 'open2complete');
 debug();
-}
+};
 debug();
 
 debug(trying to open a different database);
@@ -54,7 +65,7 @@
 debug(openreq3.onsuccess);
 shouldBeEqualToString(state, open2complete);
 evalAndLog(state = 'open3complete');
-finishJSTest();
-}
+debug();
+};
 debug();
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [141338] trunk/Source/WebCore

2013-01-30 Thread jsbell
Title: [141338] trunk/Source/WebCore








Revision 141338
Author jsb...@chromium.org
Date 2013-01-30 16:25:37 -0800 (Wed, 30 Jan 2013)


Log Message
IndexedDB: IDBKeyRange::isOnlyKey() does pointer equality comparison
https://bugs.webkit.org/show_bug.cgi?id=107582

Reviewed by Tony Chang.

Per the bug title, IDBKeyRange::isOnlyKey() was testing the upper/lower pointers to
determine if this was a trivial range, which can be used to fast-path lookups. This
is insufficient in multi-process ports where range values may be thrown across the wire.
This is addressed by using the existing key equality tests.

In addition, the bounds type check incorrectly checked m_lowerType == LowerBoundOpen, which
meant the function could never return true (since upper == lower implies closed bounds).
Therefore, the fast-path case wasn't used even in single-process ports (e.g. DRT). The
slow-path case contructed a backing store cursor over the range, and exited early if the
cursor yielded nothing. The fast-path case doesn't need to create a cursor, so needs to
deal with lookup misses. This revealed two similar (but trivial) lurking bugs in the
fast-path.

No new behavior; covered by tests such as: storage/indexeddb/get-keyrange.html

* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::IDBBackingStore::getRecord): Handle backing store read miss case.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::GetOperation::perform): Handle backing store read miss case.
* Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::isOnlyKey): Compare keys by value, not pointer, correct
type checks, add assertions.
* Modules/indexeddb/IDBKeyRange.h:
(IDBKeyRange): Move implementation to CPP file.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBKeyRange.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBKeyRange.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (141337 => 141338)

--- trunk/Source/WebCore/ChangeLog	2013-01-31 00:05:31 UTC (rev 141337)
+++ trunk/Source/WebCore/ChangeLog	2013-01-31 00:25:37 UTC (rev 141338)
@@ -1,3 +1,35 @@
+2013-01-30  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: IDBKeyRange::isOnlyKey() does pointer equality comparison
+https://bugs.webkit.org/show_bug.cgi?id=107582
+
+Reviewed by Tony Chang.
+
+Per the bug title, IDBKeyRange::isOnlyKey() was testing the upper/lower pointers to
+determine if this was a trivial range, which can be used to fast-path lookups. This
+is insufficient in multi-process ports where range values may be thrown across the wire.
+This is addressed by using the existing key equality tests.
+
+In addition, the bounds type check incorrectly checked m_lowerType == LowerBoundOpen, which
+meant the function could never return true (since upper == lower implies closed bounds).
+Therefore, the fast-path case wasn't used even in single-process ports (e.g. DRT). The
+slow-path case contructed a backing store cursor over the range, and exited early if the
+cursor yielded nothing. The fast-path case doesn't need to create a cursor, so needs to
+deal with lookup misses. This revealed two similar (but trivial) lurking bugs in the
+fast-path.
+
+No new behavior; covered by tests such as: storage/indexeddb/get-keyrange.html
+
+* Modules/indexeddb/IDBBackingStore.cpp:
+(WebCore::IDBBackingStore::getRecord): Handle backing store read miss case.
+* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
+(WebCore::GetOperation::perform): Handle backing store read miss case.
+* Modules/indexeddb/IDBKeyRange.cpp:
+(WebCore::IDBKeyRange::isOnlyKey): Compare keys by value, not pointer, correct
+type checks, add assertions.
+* Modules/indexeddb/IDBKeyRange.h:
+(IDBKeyRange): Move implementation to CPP file.
+
 2013-01-30  Joe Mason  jma...@rim.com
 
 [BlackBerry] Never store empty credentials in NetworkJob::storeCredentials


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp (141337 => 141338)

--- trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp	2013-01-31 00:05:31 UTC (rev 141337)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp	2013-01-31 00:25:37 UTC (rev 141338)
@@ -790,6 +790,8 @@
 INTERNAL_READ_ERROR(GetRecord);
 return false;
 }
+if (!found)
+return true;
 
 int64_t version;
 const char* p = decodeVarInt(data.begin(), data.end(), version);


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp (141337 => 141338)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp	2013-01-31 00:05:31 UTC (rev 141337)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp	2013-01-31 00:25:37 UTC (rev 141338)
@@ -755,6 +755,10 

[webkit-changes] [141351] trunk/Source/WebCore

2013-01-30 Thread jsbell
Title: [141351] trunk/Source/WebCore








Revision 141351
Author jsb...@chromium.org
Date 2013-01-30 17:31:12 -0800 (Wed, 30 Jan 2013)


Log Message
IndexedDB: Remove speculative dispatchEvent crash fix now that root cause is addressed
https://bugs.webkit.org/show_bug.cgi?id=108131

Reviewed by Tony Chang.

A patch was landed in r140027 to prevent a null pointer crash in
IDBRequest::dispatchEvent and confirm the source of the crash (which
we couldn't repro locally). Following confirmation from user reports,
the root cause was tracked down to a race condition in MessageQueue,
and was fixed in r140483. This patch is no longer needed, and there's
always been an ASSERT in place to catch regressions while debugging.

No new tests - no behavior change.

* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent): Remove extraneous test.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (141350 => 141351)

--- trunk/Source/WebCore/ChangeLog	2013-01-31 01:26:22 UTC (rev 141350)
+++ trunk/Source/WebCore/ChangeLog	2013-01-31 01:31:12 UTC (rev 141351)
@@ -1,3 +1,22 @@
+2013-01-30  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Remove speculative dispatchEvent crash fix now that root cause is addressed
+https://bugs.webkit.org/show_bug.cgi?id=108131
+
+Reviewed by Tony Chang.
+
+A patch was landed in r140027 to prevent a null pointer crash in
+IDBRequest::dispatchEvent and confirm the source of the crash (which
+we couldn't repro locally). Following confirmation from user reports,
+the root cause was tracked down to a race condition in MessageQueue,
+and was fixed in r140483. This patch is no longer needed, and there's
+always been an ASSERT in place to catch regressions while debugging.
+
+No new tests - no behavior change.
+
+* Modules/indexeddb/IDBRequest.cpp:
+(WebCore::IDBRequest::dispatchEvent): Remove extraneous test.
+
 2013-01-30  Joe Mason  jma...@rim.com
 
 [BlackBerry] Store both proxy and host credentials simultaneously for NetworkJob


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp (141350 => 141351)

--- trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2013-01-31 01:26:22 UTC (rev 141350)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2013-01-31 01:31:12 UTC (rev 141351)
@@ -441,13 +441,6 @@
 ASSERT(event-target() == this);
 ASSERT_WITH_MESSAGE(m_readyState  DONE, When dispatching event %s, m_readyState  DONE(%d), was %d, event-type().string().utf8().data(), DONE, m_readyState);
 
-// FIXME: This method should not be called if stop() was previously called,
-// but there are crash reports (no local repro) indicating a null pointer
-// deference in the following DOMRequestState::Scope constructor. If this
-// resolves the crashes, track down the root cause, otherwise back this out.
-if (m_contextStopped)
-return false;
-
 DOMRequestState::Scope scope(m_requestState);
 
 if (event-type() != eventNames().blockedEvent)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [141128] trunk/Source

2013-01-29 Thread jsbell
Title: [141128] trunk/Source








Revision 141128
Author jsb...@chromium.org
Date 2013-01-29 09:58:07 -0800 (Tue, 29 Jan 2013)


Log Message
[Chromium] IndexedDB: Let callers specify reason (error) for aborting transaction
https://bugs.webkit.org/show_bug.cgi?id=107851

Reviewed by Tony Chang.

Source/WebCore:

Internal to the back-end, callers are able to abort transactions and specify a reason
as an IDBDatabaseError, e.g. ConstraintError. Expose this to the WebKit/chromium/public
API so that intermediate layers can specify reasons as well, e.g. QuotaExceededError.

Test will land in Chromium as fix for crbug.com/113118

* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::abort): Added overload that takes error.
* Modules/indexeddb/IDBDatabaseBackendImpl.h: Ditto.
* Modules/indexeddb/IDBDatabaseBackendInterface.h: Ditto.

Source/WebKit/chromium:

Let Chromium call abort() on a transaction and specify a reason, specifically for
QuotaExceededError.

* public/WebIDBDatabase.h:
(WebKit::WebIDBDatabase::abort): New overload for abort() that takes an error.
* public/WebIDBDatabaseError.h:
(WebKit::WebIDBDatabaseError::WebIDBDatabaseError): Overloaded constructor/assign that takes error.
* src/IDBDatabaseBackendProxy.cpp:
(WebKit::IDBDatabaseBackendProxy::abort): New overload for abort() that takes an error.
* src/IDBDatabaseBackendProxy.h:
(IDBDatabaseBackendProxy): Ditto.
* src/WebIDBDatabaseError.cpp: Implementation of overload ctor/assign.
* src/WebIDBDatabaseImpl.cpp:
(WebKit::WebIDBDatabaseImpl::abort): New overload for abort() that takes an error.
* src/WebIDBDatabaseImpl.h: Ditto.
* tests/IDBDatabaseBackendTest.cpp: Overload stubs for Mock class.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendInterface.h
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/public/WebIDBDatabase.h
trunk/Source/WebKit/chromium/public/WebIDBDatabaseError.h
trunk/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.cpp
trunk/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h
trunk/Source/WebKit/chromium/src/WebIDBDatabaseError.cpp
trunk/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
trunk/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h
trunk/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (141127 => 141128)

--- trunk/Source/WebCore/ChangeLog	2013-01-29 17:52:17 UTC (rev 141127)
+++ trunk/Source/WebCore/ChangeLog	2013-01-29 17:58:07 UTC (rev 141128)
@@ -1,3 +1,21 @@
+2013-01-29  Joshua Bell  jsb...@chromium.org
+
+[Chromium] IndexedDB: Let callers specify reason (error) for aborting transaction
+https://bugs.webkit.org/show_bug.cgi?id=107851
+
+Reviewed by Tony Chang.
+
+Internal to the back-end, callers are able to abort transactions and specify a reason
+as an IDBDatabaseError, e.g. ConstraintError. Expose this to the WebKit/chromium/public
+API so that intermediate layers can specify reasons as well, e.g. QuotaExceededError.
+
+Test will land in Chromium as fix for crbug.com/113118
+
+* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
+(WebCore::IDBDatabaseBackendImpl::abort): Added overload that takes error.
+* Modules/indexeddb/IDBDatabaseBackendImpl.h: Ditto.
+* Modules/indexeddb/IDBDatabaseBackendInterface.h: Ditto.
+
 2013-01-29  Victor Carbune  vcarb...@chromium.org
 
 Heap-use-after-free in WebCore::RenderTextTrackCue::layout


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp (141127 => 141128)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp	2013-01-29 17:52:17 UTC (rev 141127)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp	2013-01-29 17:58:07 UTC (rev 141128)
@@ -672,6 +672,13 @@
 m_transactions.get(transactionId)-abort();
 }
 
+void IDBDatabaseBackendImpl::abort(int64_t transactionId, PassRefPtrIDBDatabaseError error)
+{
+// If the transaction is unknown, then it has already been aborted by the backend before this call so it is safe to ignore it.
+if (m_transactions.contains(transactionId))
+m_transactions.get(transactionId)-abort(error);
+}
+
 void IDBDatabaseBackendImpl::get(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtrIDBKeyRange keyRange, bool keyOnly, PassRefPtrIDBCallbacks callbacks)
 {
 IDB_TRACE(IDBDatabaseBackendImpl::get);


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h (141127 => 141128)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h	2013-01-29 17:52:17 UTC (rev 141127)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h	2013-01-29 17:58:07 UTC (rev 141128)
@@ -72,6 +72,7 @@
 
 virtual void commit(int64_t transactionId);
  

[webkit-changes] [141169] branches/chromium/1364/Source

2013-01-29 Thread jsbell
Title: [141169] branches/chromium/1364/Source








Revision 141169
Author jsb...@chromium.org
Date 2013-01-29 15:00:10 -0800 (Tue, 29 Jan 2013)


Log Message
Merge 140483
 Prevent race condition during Worker shutdown
 https://bugs.webkit.org/show_bug.cgi?id=107577
 
 Reviewed by Dmitry Titov.
 
 Source/WebCore:
 
 During worker shutdown, from the main thread a cleanup task is posted followed by
 terminating the message queue, which prevents further tasks from being processed. It was
 possible for another task be posted by another thread between the main thread calls
 to postTask and terminate(), which would cause that task to run after cleanup. Expose
 a new WTF::MessageQueue::appendAndKill() method which keeps a mutex around the two steps,
 and use that during worker shutdown.
 
 No reliable tests for the race - problem identified by inspection of user crash stacks.
 
 * workers/WorkerRunLoop.cpp:
 (WebCore::WorkerRunLoop::postTaskAndTerminate): New method, uses MessageQueue::appendAndKill()
 * workers/WorkerRunLoop.h:
 * workers/WorkerThread.cpp:
 (WebCore::WorkerThread::stop): Uses postTaskAndTerminate() to avoid race.
 
 Source/WTF:
 
 Add MessageQueue::appendAndKill() which wraps those two steps with a mutex so other
 threads can't sneak a message in between.
 
 * wtf/MessageQueue.h: Added appendAndKill() method.
 

TBR=jsb...@chromium.org
Review URL: https://codereview.chromium.org/12096050

Modified Paths

branches/chromium/1364/Source/WTF/wtf/MessageQueue.h
branches/chromium/1364/Source/WebCore/workers/WorkerRunLoop.cpp
branches/chromium/1364/Source/WebCore/workers/WorkerRunLoop.h
branches/chromium/1364/Source/WebCore/workers/WorkerThread.cpp




Diff

Modified: branches/chromium/1364/Source/WTF/wtf/MessageQueue.h (141168 => 141169)

--- branches/chromium/1364/Source/WTF/wtf/MessageQueue.h	2013-01-29 22:52:58 UTC (rev 141168)
+++ branches/chromium/1364/Source/WTF/wtf/MessageQueue.h	2013-01-29 23:00:10 UTC (rev 141169)
@@ -55,6 +55,7 @@
 ~MessageQueue();
 
 void append(PassOwnPtrDataType);
+void appendAndKill(PassOwnPtrDataType);
 bool appendAndCheckEmpty(PassOwnPtrDataType);
 void prepend(PassOwnPtrDataType);
 
@@ -98,6 +99,15 @@
 m_condition.signal();
 }
 
+templatetypename DataType
+inline void MessageQueueDataType::appendAndKill(PassOwnPtrDataType message)
+{
+MutexLocker lock(m_mutex);
+m_queue.append(message.leakPtr());
+m_killed = true;
+m_condition.broadcast();
+}
+
 // Returns true if the queue was empty before the item was added.
 templatetypename DataType
 inline bool MessageQueueDataType::appendAndCheckEmpty(PassOwnPtrDataType message)


Modified: branches/chromium/1364/Source/WebCore/workers/WorkerRunLoop.cpp (141168 => 141169)

--- branches/chromium/1364/Source/WebCore/workers/WorkerRunLoop.cpp	2013-01-29 22:52:58 UTC (rev 141168)
+++ branches/chromium/1364/Source/WebCore/workers/WorkerRunLoop.cpp	2013-01-29 23:00:10 UTC (rev 141169)
@@ -201,6 +201,11 @@
 postTaskForMode(task, defaultMode());
 }
 
+void WorkerRunLoop::postTaskAndTerminate(PassOwnPtrScriptExecutionContext::Task task)
+{
+m_messageQueue.appendAndKill(Task::create(task, defaultMode().isolatedCopy()));
+}
+
 void WorkerRunLoop::postTaskForMode(PassOwnPtrScriptExecutionContext::Task task, const String mode)
 {
 m_messageQueue.append(Task::create(task, mode.isolatedCopy()));


Modified: branches/chromium/1364/Source/WebCore/workers/WorkerRunLoop.h (141168 => 141169)

--- branches/chromium/1364/Source/WebCore/workers/WorkerRunLoop.h	2013-01-29 22:52:58 UTC (rev 141168)
+++ branches/chromium/1364/Source/WebCore/workers/WorkerRunLoop.h	2013-01-29 23:00:10 UTC (rev 141169)
@@ -61,6 +61,7 @@
 bool terminated() const { return m_messageQueue.killed(); }
 
 void postTask(PassOwnPtrScriptExecutionContext::Task);
+void postTaskAndTerminate(PassOwnPtrScriptExecutionContext::Task);
 void postTaskForMode(PassOwnPtrScriptExecutionContext::Task, const String mode);
 
 unsigned long createUniqueId() { return ++m_uniqueId; }


Modified: branches/chromium/1364/Source/WebCore/workers/WorkerThread.cpp (141168 => 141169)

--- branches/chromium/1364/Source/WebCore/workers/WorkerThread.cpp	2013-01-29 22:52:58 UTC (rev 141168)
+++ branches/chromium/1364/Source/WebCore/workers/WorkerThread.cpp	2013-01-29 23:00:10 UTC (rev 141169)
@@ -267,7 +267,8 @@
 #if ENABLE(SQL_DATABASE)
 DatabaseManager::manager().interruptAllDatabasesForContext(m_workerContext.get());
 #endif
-m_runLoop.postTask(WorkerThreadShutdownStartTask::create());
+m_runLoop.postTaskAndTerminate(WorkerThreadShutdownStartTask::create());
+return;
 }
 m_runLoop.terminate();
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [141014] trunk/LayoutTests

2013-01-28 Thread jsbell
Title: [141014] trunk/LayoutTests








Revision 141014
Author jsb...@chromium.org
Date 2013-01-28 15:05:09 -0800 (Mon, 28 Jan 2013)


Log Message
[Chromium] Unreviewed gardening, removing Crash expectations from storage/indexeddb tests.
https://bugs.webkit.org/show_bug.cgi?id=108048

Unreviewed.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (141013 => 141014)

--- trunk/LayoutTests/ChangeLog	2013-01-28 22:47:38 UTC (rev 141013)
+++ trunk/LayoutTests/ChangeLog	2013-01-28 23:05:09 UTC (rev 141014)
@@ -1,3 +1,12 @@
+2013-01-28  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening, removing Crash expectations from storage/indexeddb tests.
+https://bugs.webkit.org/show_bug.cgi?id=108048
+
+Unreviewed.
+
+* platform/chromium/TestExpectations:
+
 2013-01-28  Sheriff Bot  webkit.review@gmail.com
 
 Unreviewed, rolling out r140934, r140935, and r140937.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (141013 => 141014)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2013-01-28 22:47:38 UTC (rev 141013)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2013-01-28 23:05:09 UTC (rev 141014)
@@ -4328,15 +4328,6 @@
 webkit.org/b/107567 editing/selection/extend-by-sentence-001.html [ Failure ] 
 webkit.org/b/107567 svg/carto.net/combobox.svg [ Pass Failure ] 
 
-webkit.org/b/108048 [ Debug ] storage/indexeddb/cursor-advance-workers.html [ Crash ]
-webkit.org/b/108048 [ Debug ] storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers.html [ Crash ]
-webkit.org/b/108048 [ Debug ] storage/indexeddb/factory-basics-workers.html [ Crash ]
-webkit.org/b/108048 [ Debug ] storage/indexeddb/index-basics-workers.html [ Crash ]
-webkit.org/b/108048 [ Debug ] storage/indexeddb/objectstore-basics-workers.html [ Crash ]
-webkit.org/b/108048 [ Debug ] storage/indexeddb/open-twice-workers.html [ Crash ]
-webkit.org/b/108048 [ Debug ] storage/indexeddb/pending-activity-workers.html [ Crash ]
-webkit.org/b/108048 [ Debug ] storage/indexeddb/transaction-complete-workers.html [ Crash ]
-
 webkit.org/b/107899 fast/repaint/selection-clear.html [ ImageOnlyFailure ]
 
 webkit.org/b/107893 [ MountainLion ] fast/exclusions/shape-inside/shape-inside-first-fit-001.html [ ImageOnlyFailure ] 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [140735] trunk/Tools

2013-01-24 Thread jsbell
Title: [140735] trunk/Tools








Revision 140735
Author jsb...@chromium.org
Date 2013-01-24 15:22:41 -0800 (Thu, 24 Jan 2013)


Log Message
Add watchlist for IndexedDB development, and add myself and others.

Unreviewed.

* Scripts/webkitpy/common/config/watchlist:

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitpy/common/config/watchlist




Diff

Modified: trunk/Tools/ChangeLog (140734 => 140735)

--- trunk/Tools/ChangeLog	2013-01-24 23:21:17 UTC (rev 140734)
+++ trunk/Tools/ChangeLog	2013-01-24 23:22:41 UTC (rev 140735)
@@ -1,3 +1,11 @@
+2013-01-24  Joshua Bell  jsb...@chromium.org
+
+Add watchlist for IndexedDB development, and add myself and others.
+
+Unreviewed.
+
+* Scripts/webkitpy/common/config/watchlist:
+
 2013-01-24  Martin Robinson  mrobin...@igalia.com
 
 Abstract the logic for appending a UChar32 onto StringBuilder


Modified: trunk/Tools/Scripts/webkitpy/common/config/watchlist (140734 => 140735)

--- trunk/Tools/Scripts/webkitpy/common/config/watchlist	2013-01-24 23:21:17 UTC (rev 140734)
+++ trunk/Tools/Scripts/webkitpy/common/config/watchlist	2013-01-24 23:22:41 UTC (rev 140735)
@@ -357,6 +357,15 @@
 RegionsUsage: {
 more: r(RenderRegion|RenderFlowThread|RenderNamedFlowThread)(?!\.(h|cpp)),
 },
+IndexedDB: {
+filename: rSource/WebCore/Modules/indexeddb
+r|Source/WebCore/bindings/.*IDB.*\.(h|cpp)
+r|Source/WebCore/bindings/.*SerializedScriptValue.*\.(h|cpp)
+r|Source/WebKit/chromium/.*IDB.*\.(h|cpp)
+r|Source/WebCore/platform/leveldb
+r|LayoutTests/storage/indexeddb
+r|LayoutTests/platform/.*/storage/indexeddb,
+},
 },
 CC_RULES: {
 # Note: All email addresses listed must be registered with bugzilla.
@@ -394,6 +403,7 @@
 GtkWebKit2PublicAPI: [ cgar...@igalia.com, g...@gnome.org, mrobin...@webkit.org ],
 Harfbuzz: [ dominik.rottsc...@intel.com ],
 HTML: [ ojan.aut...@gmail.com ],
+IndexedDB: [ alecfl...@chromium.org, dgro...@chromium.org, jsb...@chromium.org ],
 Loader: [ jap...@chromium.org ],
 MathML: [ dbar...@mathscribe.com ],
 Media: [ feature-media-revi...@chromium.org, eric.carl...@apple.com ],






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [140483] trunk/Source

2013-01-22 Thread jsbell
Title: [140483] trunk/Source








Revision 140483
Author jsb...@chromium.org
Date 2013-01-22 15:45:45 -0800 (Tue, 22 Jan 2013)


Log Message
Prevent race condition during Worker shutdown
https://bugs.webkit.org/show_bug.cgi?id=107577

Reviewed by Dmitry Titov.

Source/WebCore:

During worker shutdown, from the main thread a cleanup task is posted followed by
terminating the message queue, which prevents further tasks from being processed. It was
possible for another task be posted by another thread between the main thread calls
to postTask and terminate(), which would cause that task to run after cleanup. Expose
a new WTF::MessageQueue::appendAndKill() method which keeps a mutex around the two steps,
and use that during worker shutdown.

No reliable tests for the race - problem identified by inspection of user crash stacks.

* workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::postTaskAndTerminate): New method, uses MessageQueue::appendAndKill()
* workers/WorkerRunLoop.h:
* workers/WorkerThread.cpp:
(WebCore::WorkerThread::stop): Uses postTaskAndTerminate() to avoid race.

Source/WTF:

Add MessageQueue::appendAndKill() which wraps those two steps with a mutex so other
threads can't sneak a message in between.

* wtf/MessageQueue.h: Added appendAndKill() method.

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/MessageQueue.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/workers/WorkerRunLoop.cpp
trunk/Source/WebCore/workers/WorkerRunLoop.h
trunk/Source/WebCore/workers/WorkerThread.cpp




Diff

Modified: trunk/Source/WTF/ChangeLog (140482 => 140483)

--- trunk/Source/WTF/ChangeLog	2013-01-22 23:44:27 UTC (rev 140482)
+++ trunk/Source/WTF/ChangeLog	2013-01-22 23:45:45 UTC (rev 140483)
@@ -1,3 +1,15 @@
+2013-01-22  Joshua Bell  jsb...@chromium.org
+
+Prevent race condition during Worker shutdown
+https://bugs.webkit.org/show_bug.cgi?id=107577
+
+Reviewed by Dmitry Titov.
+
+Add MessageQueue::appendAndKill() which wraps those two steps with a mutex so other
+threads can't sneak a message in between.
+
+* wtf/MessageQueue.h: Added appendAndKill() method.
+
 2013-01-22  Roger Fong  roger_f...@apple.com
 
 WTF project files and property sheets for getting WebKit to compile in VS2010.


Modified: trunk/Source/WTF/wtf/MessageQueue.h (140482 => 140483)

--- trunk/Source/WTF/wtf/MessageQueue.h	2013-01-22 23:44:27 UTC (rev 140482)
+++ trunk/Source/WTF/wtf/MessageQueue.h	2013-01-22 23:45:45 UTC (rev 140483)
@@ -55,6 +55,7 @@
 ~MessageQueue();
 
 void append(PassOwnPtrDataType);
+void appendAndKill(PassOwnPtrDataType);
 bool appendAndCheckEmpty(PassOwnPtrDataType);
 void prepend(PassOwnPtrDataType);
 
@@ -98,6 +99,15 @@
 m_condition.signal();
 }
 
+templatetypename DataType
+inline void MessageQueueDataType::appendAndKill(PassOwnPtrDataType message)
+{
+MutexLocker lock(m_mutex);
+m_queue.append(message.leakPtr());
+m_killed = true;
+m_condition.broadcast();
+}
+
 // Returns true if the queue was empty before the item was added.
 templatetypename DataType
 inline bool MessageQueueDataType::appendAndCheckEmpty(PassOwnPtrDataType message)


Modified: trunk/Source/WebCore/ChangeLog (140482 => 140483)

--- trunk/Source/WebCore/ChangeLog	2013-01-22 23:44:27 UTC (rev 140482)
+++ trunk/Source/WebCore/ChangeLog	2013-01-22 23:45:45 UTC (rev 140483)
@@ -1,3 +1,25 @@
+2013-01-22  Joshua Bell  jsb...@chromium.org
+
+Prevent race condition during Worker shutdown
+https://bugs.webkit.org/show_bug.cgi?id=107577
+
+Reviewed by Dmitry Titov.
+
+During worker shutdown, from the main thread a cleanup task is posted followed by
+terminating the message queue, which prevents further tasks from being processed. It was
+possible for another task be posted by another thread between the main thread calls
+to postTask and terminate(), which would cause that task to run after cleanup. Expose
+a new WTF::MessageQueue::appendAndKill() method which keeps a mutex around the two steps,
+and use that during worker shutdown.
+
+No reliable tests for the race - problem identified by inspection of user crash stacks.
+
+* workers/WorkerRunLoop.cpp:
+(WebCore::WorkerRunLoop::postTaskAndTerminate): New method, uses MessageQueue::appendAndKill()
+* workers/WorkerRunLoop.h:
+* workers/WorkerThread.cpp:
+(WebCore::WorkerThread::stop): Uses postTaskAndTerminate() to avoid race.
+
 2013-01-22  Tony Chang  t...@chromium.org
 
 Unreviewed, rolling out r140171.


Modified: trunk/Source/WebCore/workers/WorkerRunLoop.cpp (140482 => 140483)

--- trunk/Source/WebCore/workers/WorkerRunLoop.cpp	2013-01-22 23:44:27 UTC (rev 140482)
+++ trunk/Source/WebCore/workers/WorkerRunLoop.cpp	2013-01-22 23:45:45 UTC (rev 140483)
@@ -201,6 +201,11 @@
 

[webkit-changes] [139987] trunk/Source/WebCore

2013-01-17 Thread jsbell
Title: [139987] trunk/Source/WebCore








Revision 139987
Author jsb...@chromium.org
Date 2013-01-17 10:28:20 -0800 (Thu, 17 Jan 2013)


Log Message
Unreviewed, rolling out r139929.
http://trac.webkit.org/changeset/139929
https://bugs.webkit.org/show_bug.cgi?id=107141

Speculative fix didn't work (Requested by jsbell on #webkit).

Patch by Sheriff Bot webkit.review@gmail.com on 2013-01-17

* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (139986 => 139987)

--- trunk/Source/WebCore/ChangeLog	2013-01-17 18:22:45 UTC (rev 139986)
+++ trunk/Source/WebCore/ChangeLog	2013-01-17 18:28:20 UTC (rev 139987)
@@ -1,3 +1,14 @@
+2013-01-17  Sheriff Bot  webkit.review@gmail.com
+
+Unreviewed, rolling out r139929.
+http://trac.webkit.org/changeset/139929
+https://bugs.webkit.org/show_bug.cgi?id=107141
+
+Speculative fix didn't work (Requested by jsbell on #webkit).
+
+* Modules/indexeddb/IDBObjectStore.cpp:
+(WebCore::IDBObjectStore::createIndex):
+
 2013-01-16  Alexey Proskuryakov  a...@apple.com
 
 Don't use NSApplication run loop in NetworkProcess


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp (139986 => 139987)

--- trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp	2013-01-17 18:22:45 UTC (rev 139986)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp	2013-01-17 18:28:20 UTC (rev 139987)
@@ -356,12 +356,6 @@
 PassRefPtrIDBIndex IDBObjectStore::createIndex(ScriptExecutionContext* context, const String name, const IDBKeyPath keyPath, bool unique, bool multiEntry, ExceptionCode ec)
 {
 IDB_TRACE(IDBObjectStore::createIndex);
-// FIXME: Temporary code to determine if null contexts are plausible during frame destruction.
-// https://bugs.webkit.org/show_bug.cgi?id=107050
-ASSERT(context);
-if (!context)
-return 0;
-
 if (!m_transaction-isVersionChange() || m_deleted) {
 ec = IDBDatabaseException::InvalidStateError;
 return 0;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [140027] trunk/Source/WebCore

2013-01-17 Thread jsbell
Title: [140027] trunk/Source/WebCore








Revision 140027
Author jsb...@chromium.org
Date 2013-01-17 12:37:54 -0800 (Thu, 17 Jan 2013)


Log Message
IndexedDB: Prevent crash dereferencing null if script context has stopped
https://bugs.webkit.org/show_bug.cgi?id=107146

Reviewed by Tony Chang.

We have crash reports from Chromium users (but no local repro) for a crash coming
from IDBRequest::dispatchEvent() that looks like it's calling toV8Context() after
the script execution context has stopped. The dispatch shouldn't be occurring
and we ASSERT as such, but something weird is going on during Worker tear down.
If this patch prevents the crash it would indicate that stop() is called before
dispatchEvent() which shouldn't be happening, and would let us continue chasing
the issue.

No new tests - this shouldn't be happening.

* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (140026 => 140027)

--- trunk/Source/WebCore/ChangeLog	2013-01-17 20:37:14 UTC (rev 140026)
+++ trunk/Source/WebCore/ChangeLog	2013-01-17 20:37:54 UTC (rev 140027)
@@ -1,3 +1,23 @@
+2013-01-17  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Prevent crash dereferencing null if script context has stopped
+https://bugs.webkit.org/show_bug.cgi?id=107146
+
+Reviewed by Tony Chang.
+
+We have crash reports from Chromium users (but no local repro) for a crash coming
+from IDBRequest::dispatchEvent() that looks like it's calling toV8Context() after
+the script execution context has stopped. The dispatch shouldn't be occurring
+and we ASSERT as such, but something weird is going on during Worker tear down.
+If this patch prevents the crash it would indicate that stop() is called before
+dispatchEvent() which shouldn't be happening, and would let us continue chasing
+the issue.
+
+No new tests - this shouldn't be happening.
+
+* Modules/indexeddb/IDBRequest.cpp:
+(WebCore::IDBRequest::dispatchEvent):
+
 2013-01-17  Robert Hogan  rob...@webkit.org
 
 Nested fixed position element not staying with parent


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp (140026 => 140027)

--- trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2013-01-17 20:37:14 UTC (rev 140026)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2013-01-17 20:37:54 UTC (rev 140027)
@@ -440,6 +440,13 @@
 ASSERT(event-target() == this);
 ASSERT_WITH_MESSAGE(m_readyState  DONE, When dispatching event %s, m_readyState  DONE(%d), was %d, event-type().string().utf8().data(), DONE, m_readyState);
 
+// FIXME: This method should not be called if stop() was previously called,
+// but there are crash reports (no local repro) indicating a null pointer
+// deference in the following DOMRequestState::Scope constructor. If this
+// resolves the crashes, track down the root cause, otherwise back this out.
+if (m_contextStopped)
+return false;
+
 DOMRequestState::Scope scope(m_requestState);
 
 if (event-type() != eventNames().blockedEvent)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [139929] trunk/Source/WebCore

2013-01-16 Thread jsbell
Title: [139929] trunk/Source/WebCore








Revision 139929
Author jsb...@chromium.org
Date 2013-01-16 15:11:07 -0800 (Wed, 16 Jan 2013)


Log Message
IndexedDB: Possible null ScriptExecutionContext passed to callbacks during frame destruction
https://bugs.webkit.org/show_bug.cgi?id=107050

Reviewed by Tony Chang.

Temporary code to defend against null contexts. Will either refute a hypothesis, or we'll
need to make a more systemic fix elsewhere. Either way it will be removed in a few days.
We're unable to repro, but watching crash reports from users. One possible source is
that during page tear-down WorkerScriptController::controllerForContext() returns null
(there's a comment about that case) leading to a null context.

No new tests - this shouldn't be happening.

* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (139928 => 139929)

--- trunk/Source/WebCore/ChangeLog	2013-01-16 23:08:53 UTC (rev 139928)
+++ trunk/Source/WebCore/ChangeLog	2013-01-16 23:11:07 UTC (rev 139929)
@@ -1,3 +1,21 @@
+2013-01-16  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Possible null ScriptExecutionContext passed to callbacks during frame destruction
+https://bugs.webkit.org/show_bug.cgi?id=107050
+
+Reviewed by Tony Chang.
+
+Temporary code to defend against null contexts. Will either refute a hypothesis, or we'll
+need to make a more systemic fix elsewhere. Either way it will be removed in a few days.
+We're unable to repro, but watching crash reports from users. One possible source is
+that during page tear-down WorkerScriptController::controllerForContext() returns null
+(there's a comment about that case) leading to a null context.
+
+No new tests - this shouldn't be happening.
+
+* Modules/indexeddb/IDBObjectStore.cpp:
+(WebCore::IDBObjectStore::createIndex):
+
 2013-01-16  Kenneth Russell  k...@google.com
 
 Simplify validation and data copying in WebGLBuffer


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp (139928 => 139929)

--- trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp	2013-01-16 23:08:53 UTC (rev 139928)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp	2013-01-16 23:11:07 UTC (rev 139929)
@@ -356,6 +356,12 @@
 PassRefPtrIDBIndex IDBObjectStore::createIndex(ScriptExecutionContext* context, const String name, const IDBKeyPath keyPath, bool unique, bool multiEntry, ExceptionCode ec)
 {
 IDB_TRACE(IDBObjectStore::createIndex);
+// FIXME: Temporary code to determine if null contexts are plausible during frame destruction.
+// https://bugs.webkit.org/show_bug.cgi?id=107050
+ASSERT(context);
+if (!context)
+return 0;
+
 if (!m_transaction-isVersionChange() || m_deleted) {
 ec = IDBDatabaseException::InvalidStateError;
 return 0;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [139747] trunk/Tools

2013-01-15 Thread jsbell
Title: [139747] trunk/Tools








Revision 139747
Author jsb...@chromium.org
Date 2013-01-15 09:24:04 -0800 (Tue, 15 Jan 2013)


Log Message
Unreviewed. Adding Michael Pruett as contributor.

* Scripts/webkitpy/common/config/committers.py:

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitpy/common/config/committers.py




Diff

Modified: trunk/Tools/ChangeLog (139746 => 139747)

--- trunk/Tools/ChangeLog	2013-01-15 17:13:07 UTC (rev 139746)
+++ trunk/Tools/ChangeLog	2013-01-15 17:24:04 UTC (rev 139747)
@@ -1,3 +1,9 @@
+2013-01-15  Joshua Bell  jsb...@chromium.org
+
+Unreviewed. Adding Michael Pruett as contributor.
+
+* Scripts/webkitpy/common/config/committers.py:
+
 2013-01-15  Victor Carbune  vic...@rosedu.org
 
 Unreviewed. Update my email addresses.


Modified: trunk/Tools/Scripts/webkitpy/common/config/committers.py (139746 => 139747)

--- trunk/Tools/Scripts/webkitpy/common/config/committers.py	2013-01-15 17:13:07 UTC (rev 139746)
+++ trunk/Tools/Scripts/webkitpy/common/config/committers.py	2013-01-15 17:24:04 UTC (rev 139747)
@@ -151,6 +151,7 @@
 Contributor(Kulanthaivel Palanichamy, kulanthai...@codeaurora.org, kvel),
 Contributor(Kiran Muppala, cmupp...@apple.com, kiranm),
 Contributor(Koji Ishii, kojii...@gmail.com),
+Contributor(Michael Pruett, mich...@68k.org, mpruett),
 Contributor(Mihai Balan, miba...@adobe.com, miChou),
 Contributor(Mihai Maerean, mmaer...@adobe.com, mmaerean),
 Contributor(Min Qin, qin...@chromium.org),






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [139793] trunk/LayoutTests

2013-01-15 Thread jsbell
Title: [139793] trunk/LayoutTests








Revision 139793
Author jsb...@chromium.org
Date 2013-01-15 14:27:58 -0800 (Tue, 15 Jan 2013)


Log Message
IndexedDB: Fix tests which depend upon V8 event listener behavior
https://bugs.webkit.org/show_bug.cgi?id=106731

Ensure consistent use of callback(evt) { preamble(evt); ... } pattern, which addresses
running in JSC and in V8 under Workers. Also add worker test wrappers.

Reviewed by Tony Chang.

* storage/indexeddb/cursor-advance-expected.txt:
* storage/indexeddb/cursor-advance-workers-expected.txt: Added.
* storage/indexeddb/cursor-advance-workers.html: Added.
* storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-expected.txt:
* storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers-expected.txt: Added.
* storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers.html: Added.
* storage/indexeddb/resources/cursor-advance.js:
(prepareDatabase):
(testPrefetchInRange.prefetch):
(testPrefetchInRange):
(testPrefetchOutOfRange.prefetch):
(testPrefetchOutOfRange):
(testBadAdvance.advanceBadly):
(testBadAdvance):
(testEdges.request.onsuccess):
(testEdges):
(testDelete.deleteSecond):
(testDelete):
* storage/indexeddb/resources/deletedatabase-delayed-by-open-and-versionchange.js:
(onOpenSuccess):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/cursor-advance-expected.txt
trunk/LayoutTests/storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-expected.txt
trunk/LayoutTests/storage/indexeddb/resources/cursor-advance.js
trunk/LayoutTests/storage/indexeddb/resources/deletedatabase-delayed-by-open-and-versionchange.js


Added Paths

trunk/LayoutTests/storage/indexeddb/cursor-advance-workers-expected.txt
trunk/LayoutTests/storage/indexeddb/cursor-advance-workers.html
trunk/LayoutTests/storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers-expected.txt
trunk/LayoutTests/storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers.html




Diff

Modified: trunk/LayoutTests/ChangeLog (139792 => 139793)

--- trunk/LayoutTests/ChangeLog	2013-01-15 22:21:43 UTC (rev 139792)
+++ trunk/LayoutTests/ChangeLog	2013-01-15 22:27:58 UTC (rev 139793)
@@ -1,3 +1,34 @@
+2013-01-15  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Fix tests which depend upon V8 event listener behavior
+https://bugs.webkit.org/show_bug.cgi?id=106731
+
+Ensure consistent use of callback(evt) { preamble(evt); ... } pattern, which addresses
+running in JSC and in V8 under Workers. Also add worker test wrappers.
+
+Reviewed by Tony Chang.
+
+* storage/indexeddb/cursor-advance-expected.txt:
+* storage/indexeddb/cursor-advance-workers-expected.txt: Added.
+* storage/indexeddb/cursor-advance-workers.html: Added.
+* storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-expected.txt:
+* storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers-expected.txt: Added.
+* storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-workers.html: Added.
+* storage/indexeddb/resources/cursor-advance.js:
+(prepareDatabase):
+(testPrefetchInRange.prefetch):
+(testPrefetchInRange):
+(testPrefetchOutOfRange.prefetch):
+(testPrefetchOutOfRange):
+(testBadAdvance.advanceBadly):
+(testBadAdvance):
+(testEdges.request.onsuccess):
+(testEdges):
+(testDelete.deleteSecond):
+(testDelete):
+* storage/indexeddb/resources/deletedatabase-delayed-by-open-and-versionchange.js:
+(onOpenSuccess):
+
 2013-01-15  Elliott Sprehn  espr...@gmail.com
 
 HTML parser should queue MutationRecords for its operations


Modified: trunk/LayoutTests/storage/indexeddb/cursor-advance-expected.txt (139792 => 139793)

--- trunk/LayoutTests/storage/indexeddb/cursor-advance-expected.txt	2013-01-15 22:21:43 UTC (rev 139792)
+++ trunk/LayoutTests/storage/indexeddb/cursor-advance-expected.txt	2013-01-15 22:27:58 UTC (rev 139793)
@@ -8,6 +8,8 @@
 dbname = cursor-advance.html
 indexedDB.deleteDatabase(dbname)
 indexedDB.open(dbname)
+
+prepareDatabase():
 objectStore = db.createObjectStore(objectStoreName);
 Now create the indexes.
 objectStore.createIndex(indexData[i].name, indexData[i].keyPath, indexData[i].options);
@@ -84,52 +86,96 @@
 trans = db.transaction(objectStoreName)
 objectStore = trans.objectStore(objectStoreName)
 request = objectStore.openCursor()
+
+prefetch():
 PASS expected is {\key\:\237-23-7732\,\value\:{\name\:\Bob\,\height\:60,\weight\:120},\primaryKey\:\237-23-7732\}
 cursor.continue()
+
+prefetch():
 PASS expected is {\key\:\237-23-7733\,\value\:{\name\:\Ann\,\height\:52,\weight\:110},\primaryKey\:\237-23-7733\}
 cursor.continue()
+
+prefetch():
 PASS expected is {\key\:\237-23-7734\,\value\:{\name\:\Ron\,\height\:73,\weight\:180},\primaryKey\:\237-23-7734\}
 cursor.continue()

[webkit-changes] [139641] trunk/Source/WebCore

2013-01-14 Thread jsbell
Title: [139641] trunk/Source/WebCore








Revision 139641
Author jsb...@chromium.org
Date 2013-01-14 12:25:26 -0800 (Mon, 14 Jan 2013)


Log Message
Bindings: Remove special cases for DOMString[]
https://bugs.webkit.org/show_bug.cgi?id=106506

Remove special in binding code generators that map DOMString[] to DOMStringList.
Array (T[]) and sequence (sequenceT) are supported enough now that to be used
for Internals, which is the only IDL that needed updating.

Reviewed by Adam Barth.

Tests: fast/forms/file/selected-files-from-history-state.html
   fast/forms/state-restore-broken-state.html
   fast/forms/state-restore-skip-stateless.html

Bindings test results updated for JS/V8.

* bindings/scripts/CodeGenerator.pm: Remove redundant IsArrayType (use GetArrayType instead)
(IsRefPtrType): Array and Sequence types are not RefPtr types.
* bindings/scripts/CodeGeneratorJS.pm:
(IndexGetterReturnsStrings): Remove special case for DOMString[].
(AddIncludesForType): Skip Array types, just like Sequence types. (Should probably recurse
for the base type, but not needed for now.)
(GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
(GetNativeType): Remove special case for DOMString[].
(GetNativeTypeForCallbacks): Ditto.
(JSValueToNative): Ditto.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
(GetNativeType): Remove special case for DOMString[].
(JSValueToNative): Ditto.
(GetV8HeaderName): Ditto.
(IsWrapperType):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
* bindings/scripts/test/JS/JSTestObj.h:
(WebCore):
* bindings/scripts/test/TestObj.idl: Added explicit new cases for DOMStringList
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::overloadedMethod7Callback):
(WebCore::TestObjV8Internal::overloadedMethod9Callback):
(WebCore::TestObjV8Internal::stringArrayFunctionCallback):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::domStringListFunctionCallback):
(WebCore):
(WebCore::ConfigureV8TestObjTemplate):
* testing/Internals.cpp:
(WebCore::Internals::formControlStateOfPreviousHistoryItem):
(WebCore::Internals::setFormControlStateOfPreviousHistoryItem):
(WebCore::Internals::iconURLs):
(WebCore::Internals::getReferencedFilePaths):
* testing/Internals.h:
(Internals):
* testing/Internals.idl: Produce DOMString[], consume sequenceDOMString to match tests.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm
trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h
trunk/Source/WebCore/bindings/scripts/test/TestObj.idl
trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp
trunk/Source/WebCore/testing/Internals.cpp
trunk/Source/WebCore/testing/Internals.h
trunk/Source/WebCore/testing/Internals.idl




Diff

Modified: trunk/Source/WebCore/ChangeLog (139640 => 139641)

--- trunk/Source/WebCore/ChangeLog	2013-01-14 20:23:02 UTC (rev 139640)
+++ trunk/Source/WebCore/ChangeLog	2013-01-14 20:25:26 UTC (rev 139641)
@@ -1,3 +1,62 @@
+2013-01-14  Joshua Bell  jsb...@chromium.org
+
+Bindings: Remove special cases for DOMString[]
+https://bugs.webkit.org/show_bug.cgi?id=106506
+
+Remove special in binding code generators that map DOMString[] to DOMStringList.
+Array (T[]) and sequence (sequenceT) are supported enough now that to be used
+for Internals, which is the only IDL that needed updating.
+
+Reviewed by Adam Barth.
+
+Tests: fast/forms/file/selected-files-from-history-state.html
+   fast/forms/state-restore-broken-state.html
+   fast/forms/state-restore-skip-stateless.html
+
+Bindings test results updated for JS/V8.
+
+* bindings/scripts/CodeGenerator.pm: Remove redundant IsArrayType (use GetArrayType instead)
+(IsRefPtrType): Array and Sequence types are not RefPtr types.
+* bindings/scripts/CodeGeneratorJS.pm:
+(IndexGetterReturnsStrings): Remove special case for DOMString[].
+(AddIncludesForType): Skip Array types, just like Sequence types. (Should probably recurse
+for the base type, but not needed for now.)
+(GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
+(GetNativeType): Remove special case for DOMString[].
+(GetNativeTypeForCallbacks): Ditto.
+(JSValueToNative): Ditto.
+* bindings/scripts/CodeGeneratorV8.pm:
+(GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
+(GetNativeType): Remove special case for DOMString[].
+(JSValueToNative): 

[webkit-changes] [139518] trunk/Source/WebCore

2013-01-11 Thread jsbell
Title: [139518] trunk/Source/WebCore








Revision 139518
Author jsb...@chromium.org
Date 2013-01-11 16:12:55 -0800 (Fri, 11 Jan 2013)


Log Message
IndexedDB: IDBTransaction should manage lifetime of IDBRequests
https://bugs.webkit.org/show_bug.cgi?id=106678

Reviewed by Tony Chang.

Ensure reference count of IDBRequests don't bounce off zero if there are no script
references are while the events are arriving.

No new tests - no detectable behavior changes.

* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::create): Register with transaction (which now takes a ref) here to...
(WebCore::IDBRequest::IDBRequest): ...avoid having to relax adoption requirements here.
* Modules/indexeddb/IDBTransaction.cpp: Keep RefPtrs to outstanding requests.
(WebCore::IDBTransaction::~IDBTransaction):
(WebCore::IDBTransaction::abort):
(WebCore::IDBTransaction::onAbort):
* Modules/indexeddb/IDBTransaction.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (139517 => 139518)

--- trunk/Source/WebCore/ChangeLog	2013-01-12 00:10:59 UTC (rev 139517)
+++ trunk/Source/WebCore/ChangeLog	2013-01-12 00:12:55 UTC (rev 139518)
@@ -1,3 +1,24 @@
+2013-01-11  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: IDBTransaction should manage lifetime of IDBRequests
+https://bugs.webkit.org/show_bug.cgi?id=106678
+
+Reviewed by Tony Chang.
+
+Ensure reference count of IDBRequests don't bounce off zero if there are no script
+references are while the events are arriving.
+
+No new tests - no detectable behavior changes.
+
+* Modules/indexeddb/IDBRequest.cpp:
+(WebCore::IDBRequest::create): Register with transaction (which now takes a ref) here to...
+(WebCore::IDBRequest::IDBRequest): ...avoid having to relax adoption requirements here.
+* Modules/indexeddb/IDBTransaction.cpp: Keep RefPtrs to outstanding requests.
+(WebCore::IDBTransaction::~IDBTransaction):
+(WebCore::IDBTransaction::abort):
+(WebCore::IDBTransaction::onAbort):
+* Modules/indexeddb/IDBTransaction.h:
+
 2013-01-11  James Simonsen  simon...@chromium.org
 
 [Resource Timing] XMLHttpRequests should have initiator type 'xmlhttprequest'


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp (139517 => 139518)

--- trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2013-01-12 00:10:59 UTC (rev 139517)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2013-01-12 00:12:55 UTC (rev 139518)
@@ -49,6 +49,9 @@
 {
 RefPtrIDBRequest request(adoptRef(new IDBRequest(context, source, IDBTransactionBackendInterface::NormalTask, transaction)));
 request-suspendIfNeeded();
+// Requests associated with IDBFactory (open/deleteDatabase/getDatabaseNames) are not associated with transactions.
+if (transaction)
+transaction-registerRequest(request.get());
 return request.release();
 }
 
@@ -56,6 +59,9 @@
 {
 RefPtrIDBRequest request(adoptRef(new IDBRequest(context, source, taskType, transaction)));
 request-suspendIfNeeded();
+// Requests associated with IDBFactory (open/deleteDatabase/getDatabaseNames) are not associated with transactions.
+if (transaction)
+transaction-registerRequest(request.get());
 return request.release();
 }
 
@@ -78,10 +84,6 @@
 , m_preventPropagation(false)
 , m_requestState(context)
 {
-// Requests associated with IDBFactory (open/deleteDatabase/getDatabaseNames) are not
-// associated with transactions.
-if (m_transaction)
-m_transaction-registerRequest(this);
 }
 
 IDBRequest::~IDBRequest()


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp (139517 => 139518)

--- trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp	2013-01-12 00:10:59 UTC (rev 139517)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp	2013-01-12 00:12:55 UTC (rev 139518)
@@ -120,6 +120,7 @@
 IDBTransaction::~IDBTransaction()
 {
 ASSERT(m_state == Finished);
+ASSERT(m_requestList.isEmpty());
 }
 
 const String IDBTransaction::mode() const
@@ -223,7 +224,7 @@
 m_state = Finishing;
 
 while (!m_requestList.isEmpty()) {
-IDBRequest* request = *m_requestList.begin();
+RefPtrIDBRequest request = *m_requestList.begin();
 m_requestList.remove(request);
 request-abort();
 }
@@ -300,7 +301,7 @@
 // Abort was not triggered by front-end, so outstanding requests must
 // be aborted now.
 while (!m_requestList.isEmpty()) {
-IDBRequest* request = *m_requestList.begin();
+RefPtrIDBRequest request = *m_requestList.begin();
 m_requestList.remove(request);
 request-abort();
 }


Modified: 

[webkit-changes] [138836] trunk

2013-01-04 Thread jsbell
Title: [138836] trunk








Revision 138836
Author jsb...@chromium.org
Date 2013-01-04 12:42:37 -0800 (Fri, 04 Jan 2013)


Log Message
Add tests for WebIDL type conversions
https://bugs.webkit.org/show_bug.cgi?id=105927

Reviewed by Adam Barth.

Source/WebCore:

Expose attributes of various WebIDL types for testing ECMAScript value conversion,
including edge cases such as NaNs, Infinities, etc. These attributes hang off
a TypeConversions object created via window.internals.typeConversions().

Test: fast/js/webidl-type-mapping.html

* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.vcproj/WebCoreTestSupport.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* testing/Internals.cpp:
(WebCore::Internals::typeConversions):
(WebCore):
* testing/Internals.h:
(WebCore):
* testing/Internals.idl:
* testing/TypeConversions.h: Added.
(WebCore):
(TypeConversions):
(WebCore::TypeConversions::create):
(WebCore::TypeConversions::testLong):
(WebCore::TypeConversions::setTestLong):
(WebCore::TypeConversions::testUnsignedLong):
(WebCore::TypeConversions::setTestUnsignedLong):
(WebCore::TypeConversions::testLongLong):
(WebCore::TypeConversions::setTestLongLong):
(WebCore::TypeConversions::testUnsignedLongLong):
(WebCore::TypeConversions::setTestUnsignedLongLong):
(WebCore::TypeConversions::TypeConversions):
* testing/TypeConversions.idl: Added.

LayoutTests:

This currently fails long long conversions of non-finites (which should map to 0). Patch
in progress at: http://wkbug.com/96798

* fast/js/webidl-type-mapping-expected.txt: Added.
* fast/js/webidl-type-mapping.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/DerivedSources.make
trunk/Source/WebCore/DerivedSources.pri
trunk/Source/WebCore/GNUmakefile.list.am
trunk/Source/WebCore/Target.pri
trunk/Source/WebCore/WebCore.gyp/WebCore.gyp
trunk/Source/WebCore/WebCore.gypi
trunk/Source/WebCore/WebCore.vcproj/WebCoreTestSupport.vcproj
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebCore/testing/Internals.cpp
trunk/Source/WebCore/testing/Internals.h
trunk/Source/WebCore/testing/Internals.idl


Added Paths

trunk/LayoutTests/fast/js/webidl-type-mapping-expected.txt
trunk/LayoutTests/fast/js/webidl-type-mapping.html
trunk/Source/WebCore/testing/TypeConversions.h
trunk/Source/WebCore/testing/TypeConversions.idl




Diff

Modified: trunk/LayoutTests/ChangeLog (138835 => 138836)

--- trunk/LayoutTests/ChangeLog	2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/LayoutTests/ChangeLog	2013-01-04 20:42:37 UTC (rev 138836)
@@ -1,3 +1,16 @@
+2013-01-04  Joshua Bell  jsb...@chromium.org
+
+Add tests for WebIDL type conversions
+https://bugs.webkit.org/show_bug.cgi?id=105927
+
+Reviewed by Adam Barth.
+
+This currently fails long long conversions of non-finites (which should map to 0). Patch
+in progress at: http://wkbug.com/96798
+
+* fast/js/webidl-type-mapping-expected.txt: Added.
+* fast/js/webidl-type-mapping.html: Added.
+
 2013-01-04  Stephen White  senorbla...@chromium.org
 
 Invalidation of some SVG filter attributes on HTML content doesn't work 


Added: trunk/LayoutTests/fast/js/webidl-type-mapping-expected.txt (0 => 138836)

--- trunk/LayoutTests/fast/js/webidl-type-mapping-expected.txt	(rev 0)
+++ trunk/LayoutTests/fast/js/webidl-type-mapping-expected.txt	2013-01-04 20:42:37 UTC (rev 138836)
@@ -0,0 +1,279 @@
+Exercise WebIDL type conversions.
+
+On success, you will see a series of PASS messages, followed by TEST COMPLETE.
+
+
+converter = window.internals.typeConversions()
+
+PASS 'testLong' in converter is true
+PASS typeof converter.testLong === 'number' is true
+converter.testLong = 0
+PASS converter.testLong is 0
+converter.testLong = -1
+PASS converter.testLong is -1
+converter.testLong = 1
+PASS converter.testLong is 1
+converter.testLong = 0x7F
+PASS converter.testLong is 0x7F
+converter.testLong = 0x80
+PASS converter.testLong is 0x80
+converter.testLong = 0xFF
+PASS converter.testLong is 0xFF
+converter.testLong = -0x80
+PASS converter.testLong is -0x80
+converter.testLong = -0x81
+PASS converter.testLong is -0x81
+converter.testLong = 0x7FFF
+PASS converter.testLong is 0x7FFF
+converter.testLong = 0x8000
+PASS converter.testLong is 0x8000
+converter.testLong = 0x
+PASS converter.testLong is 0x
+converter.testLong = -0x8000
+PASS converter.testLong is -0x8000
+converter.testLong = -0x8001
+PASS converter.testLong is -0x8001
+converter.testLong = 0x7FFF
+PASS converter.testLong is 0x7FFF
+converter.testLong = 0x8000
+PASS converter.testLong is -0x8000
+converter.testLong = 0x
+PASS converter.testLong is -1
+converter.testLong = -0x8000
+PASS converter.testLong is -0x8000
+converter.testLong = -0x8001
+PASS converter.testLong 

[webkit-changes] [138864] trunk/Source/WebCore

2013-01-04 Thread jsbell
Title: [138864] trunk/Source/WebCore








Revision 138864
Author jsb...@chromium.org
Date 2013-01-04 15:57:44 -0800 (Fri, 04 Jan 2013)


Log Message
Unreviewed, fix Apple Win build following http://trac.webkit.org/changeset/138838
https://bugs.webkit.org/show_bug.cgi?id=105927

* WebCore.vcproj/WebCoreTestSupport.vcproj:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/WebCore.vcproj/WebCoreTestSupport.vcproj




Diff

Modified: trunk/Source/WebCore/ChangeLog (138863 => 138864)

--- trunk/Source/WebCore/ChangeLog	2013-01-04 23:47:58 UTC (rev 138863)
+++ trunk/Source/WebCore/ChangeLog	2013-01-04 23:57:44 UTC (rev 138864)
@@ -1,3 +1,10 @@
+2013-01-04  Joshua Bell  jsb...@chromium.org
+
+Unreviewed, fix Apple Win build following http://trac.webkit.org/changeset/138838
+https://bugs.webkit.org/show_bug.cgi?id=105927
+
+* WebCore.vcproj/WebCoreTestSupport.vcproj:
+
 2013-01-04  Abhishek Arya  infe...@chromium.org
 
 Heap-use-after-free in WebCore::XMLDocumentParser::doEnd


Modified: trunk/Source/WebCore/WebCore.vcproj/WebCoreTestSupport.vcproj (138863 => 138864)

--- trunk/Source/WebCore/WebCore.vcproj/WebCoreTestSupport.vcproj	2013-01-04 23:47:58 UTC (rev 138863)
+++ trunk/Source/WebCore/WebCore.vcproj/WebCoreTestSupport.vcproj	2013-01-04 23:57:44 UTC (rev 138864)
@@ -484,6 +484,74 @@
 
 			/File
 			File
+RelativePath=$(ConfigurationBuildDir)\obj\WebCore\DerivedSources\JSTypeConversions.cpp
+
+FileConfiguration
+	Name=Debug|Win32
+	
+	Tool
+		Name=VCCLCompilerTool
+		UsePrecompiledHeader=0
+		DisableSpecificWarnings=4065;4273;4565;4701;4702
+		ForcedIncludeFiles=$(NOINHERIT)
+	/
+/FileConfiguration
+FileConfiguration
+	Name=Release|Win32
+	
+	Tool
+		Name=VCCLCompilerTool
+		UsePrecompiledHeader=0
+		DisableSpecificWarnings=4065;4273;4565;4701;4702
+		ForcedIncludeFiles=$(NOINHERIT)
+	/
+/FileConfiguration
+FileConfiguration
+	Name=Debug_Cairo_CFLite|Win32
+	
+	Tool
+		Name=VCCLCompilerTool
+		UsePrecompiledHeader=0
+		DisableSpecificWarnings=4065;4273;4565;4701;4702
+		ForcedIncludeFiles=$(NOINHERIT)
+	/
+/FileConfiguration
+FileConfiguration
+	Name=Release_Cairo_CFLite|Win32
+	
+	Tool
+		Name=VCCLCompilerTool
+		UsePrecompiledHeader=0
+		DisableSpecificWarnings=4065;4273;4565;4701;4702
+		ForcedIncludeFiles=$(NOINHERIT)
+	/
+/FileConfiguration
+FileConfiguration
+	Name=Debug_All|Win32
+	
+	Tool
+		Name=VCCLCompilerTool
+		UsePrecompiledHeader=0
+		DisableSpecificWarnings=4065;4273;4565;4701;4702
+		ForcedIncludeFiles=$(NOINHERIT)
+	/
+/FileConfiguration
+FileConfiguration
+	Name=Production|Win32
+	
+	Tool
+		Name=VCCLCompilerTool
+		UsePrecompiledHeader=0
+		DisableSpecificWarnings=4065;4273;4565;4701;4702
+		ForcedIncludeFiles=$(NOINHERIT)
+	/
+/FileConfiguration
+			/File
+			File
+RelativePath=$(ConfigurationBuildDir)\obj\WebCore\DerivedSources\JSTypeConversions.h
+
+			/File
+			File
 RelativePath=$(ConfigurationBuildDir)\obj\WebCore\DerivedSources\JSInternals.cpp
 
 FileConfiguration






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [138716] trunk/Source

2013-01-03 Thread jsbell
Title: [138716] trunk/Source








Revision 138716
Author jsb...@chromium.org
Date 2013-01-03 10:23:56 -0800 (Thu, 03 Jan 2013)


Log Message
IndexedDB: Simplify IDBTransactionBackendImpl::scheduleTask usage
https://bugs.webkit.org/show_bug.cgi?id=103536

Reviewed by Tony Chang.

Source/WebCore:

Move responsibility for firing abort errors from requests that arrive on the
back-end after an asynchronous transaction abort out of WebCore, since the
front-end takes care of this as far as script is concerned.

No new tests -  no behavior changes.

* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::continueFunction):
(WebCore::IDBCursorBackendImpl::advance):
(WebCore::IDBCursorBackendImpl::prefetchContinue):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::openCursor):
(WebCore::IDBIndexBackendImpl::openKeyCursor):
(WebCore::IDBIndexBackendImpl::count):
(WebCore::IDBIndexBackendImpl::get):
(WebCore::IDBIndexBackendImpl::getKey):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::get):
(WebCore::IDBObjectStoreBackendImpl::put):
(WebCore::IDBObjectStoreBackendImpl::deleteFunction):
(WebCore::IDBObjectStoreBackendImpl::clear):
(WebCore::IDBObjectStoreBackendImpl::openCursor):
(WebCore::IDBObjectStoreBackendImpl::count):

Source/WebKit/chromium:

Track whether IDBCallbacks has fired before being destructed. If not it probably
came in after a transaction had asynchronously aborted; fire an abort error which
will be ignored on the front-end but will clean up lingering IPC tracking.

* public/WebIDBDatabaseException.h:
* src/AssertMatchingEnums.cpp:
* src/IDBCallbacksProxy.cpp:
(WebKit::IDBCallbacksProxy::IDBCallbacksProxy):
(WebKit::IDBCallbacksProxy::~IDBCallbacksProxy):
(WebKit::IDBCallbacksProxy::onError):
(WebKit::IDBCallbacksProxy::onSuccess):
* src/IDBCallbacksProxy.h:
(IDBCallbacksProxy):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBIndexBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.cpp
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/public/WebIDBDatabaseException.h
trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp
trunk/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp
trunk/Source/WebKit/chromium/src/IDBCallbacksProxy.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (138715 => 138716)

--- trunk/Source/WebCore/ChangeLog	2013-01-03 18:17:21 UTC (rev 138715)
+++ trunk/Source/WebCore/ChangeLog	2013-01-03 18:23:56 UTC (rev 138716)
@@ -1,3 +1,34 @@
+2013-01-03  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Simplify IDBTransactionBackendImpl::scheduleTask usage
+https://bugs.webkit.org/show_bug.cgi?id=103536
+
+Reviewed by Tony Chang.
+
+Move responsibility for firing abort errors from requests that arrive on the
+back-end after an asynchronous transaction abort out of WebCore, since the
+front-end takes care of this as far as script is concerned.
+
+No new tests -  no behavior changes.
+
+* Modules/indexeddb/IDBCursorBackendImpl.cpp:
+(WebCore::IDBCursorBackendImpl::continueFunction):
+(WebCore::IDBCursorBackendImpl::advance):
+(WebCore::IDBCursorBackendImpl::prefetchContinue):
+* Modules/indexeddb/IDBIndexBackendImpl.cpp:
+(WebCore::IDBIndexBackendImpl::openCursor):
+(WebCore::IDBIndexBackendImpl::openKeyCursor):
+(WebCore::IDBIndexBackendImpl::count):
+(WebCore::IDBIndexBackendImpl::get):
+(WebCore::IDBIndexBackendImpl::getKey):
+* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
+(WebCore::IDBObjectStoreBackendImpl::get):
+(WebCore::IDBObjectStoreBackendImpl::put):
+(WebCore::IDBObjectStoreBackendImpl::deleteFunction):
+(WebCore::IDBObjectStoreBackendImpl::clear):
+(WebCore::IDBObjectStoreBackendImpl::openCursor):
+(WebCore::IDBObjectStoreBackendImpl::count):
+
 2013-01-03  Tiancheng Jiang  tiji...@rim.com
 
 Update BB10 media render theme.


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp (138715 => 138716)

--- trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp	2013-01-03 18:17:21 UTC (rev 138715)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp	2013-01-03 18:23:56 UTC (rev 138716)
@@ -127,17 +127,14 @@
 {
 IDB_TRACE(IDBCursorBackendImpl::continue);
 RefPtrIDBCallbacks callbacks = prpCallbacks;
-if (!m_transaction-scheduleTask(m_taskType, CursorIterationOperation::create(this, key, callbacks)))
-callbacks-onError(IDBDatabaseError::create(IDBDatabaseException::AbortError));
+m_transaction-scheduleTask(m_taskType, CursorIterationOperation::create(this, key, callbacks));
 }
 
 void IDBCursorBackendImpl::advance(unsigned long count, PassRefPtrIDBCallbacks prpCallbacks, 

[webkit-changes] [138400] trunk

2012-12-21 Thread jsbell
Title: [138400] trunk








Revision 138400
Author jsb...@chromium.org
Date 2012-12-21 15:26:24 -0800 (Fri, 21 Dec 2012)


Log Message
IndexedDB: Combine openConnection and openConnectionWithVersion
https://bugs.webkit.org/show_bug.cgi?id=105658

Reviewed by Tony Chang.

Source/WebCore:

Combine the logic from these two methods. Mostly a refactor, but in the pending calls
case the behavior is slightly altered since the version and no-version queues were
previously separate, so the order changes. The new order matches the spec and FF/IE
behavior, and a test is added to verify this.

Chromium's webkit_unit_tests rely on a quirk to bypass the upgrade mechanism; the usage
is slightly altered and made more explicit, and requires a small amount of test-only code.

Test: storage/indexeddb/open-ordering.html

* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
(WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackendImpl::close):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::open):

Source/WebKit/chromium:

* tests/IDBDatabaseBackendTest.cpp:

LayoutTests:

* storage/indexeddb/open-ordering-expected.txt: Added.
* storage/indexeddb/open-ordering.html: Added.
* storage/indexeddb/resources/open-ordering.js: Added.
(runTest):
(onDeleteSuccess):
(onRequest1Success):
(onRequest2Success):
(onRequest3Success):
(checkOrder):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h
trunk/Source/WebCore/Modules/indexeddb/IDBFactoryBackendImpl.cpp
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp


Added Paths

trunk/LayoutTests/storage/indexeddb/open-ordering-expected.txt
trunk/LayoutTests/storage/indexeddb/open-ordering.html
trunk/LayoutTests/storage/indexeddb/resources/open-ordering.js




Diff

Modified: trunk/LayoutTests/ChangeLog (138399 => 138400)

--- trunk/LayoutTests/ChangeLog	2012-12-21 22:34:34 UTC (rev 138399)
+++ trunk/LayoutTests/ChangeLog	2012-12-21 23:26:24 UTC (rev 138400)
@@ -1,3 +1,20 @@
+2012-12-21  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Combine openConnection and openConnectionWithVersion
+https://bugs.webkit.org/show_bug.cgi?id=105658
+
+Reviewed by Tony Chang.
+
+* storage/indexeddb/open-ordering-expected.txt: Added.
+* storage/indexeddb/open-ordering.html: Added.
+* storage/indexeddb/resources/open-ordering.js: Added.
+(runTest):
+(onDeleteSuccess):
+(onRequest1Success):
+(onRequest2Success):
+(onRequest3Success):
+(checkOrder):
+
 2012-12-21  Aaron Colwell  acolw...@chromium.org
 
 Unreviewed. Removing CRASH expectations for media layout tests


Added: trunk/LayoutTests/storage/indexeddb/open-ordering-expected.txt (0 => 138400)

--- trunk/LayoutTests/storage/indexeddb/open-ordering-expected.txt	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/open-ordering-expected.txt	2012-12-21 23:26:24 UTC (rev 138400)
@@ -0,0 +1,43 @@
+Test IndexedDB ordering of pending open calls.
+
+On success, you will see a series of PASS messages, followed by TEST COMPLETE.
+
+
+indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
+
+dbname = open-ordering.html
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname, 2)
+
+runTest():
+connection = event.target.result
+
+First a delete request, which will defer subsequent opens. The delete itself will be blocked by the open connection.
+deleteRequest = indexedDB.deleteDatabase(dbname)
+
+Now three open requests:
+order = []
+request1 = indexedDB.open(dbname, 2)
+request2 = indexedDB.open(dbname)
+request3 = indexedDB.open(dbname, 2)
+
+Close the connection to unblock the delete
+connection.close()
+
+onDeleteSuccess():
+
+onRequest1Success():
+order.push(1)
+
+onRequest2Success():
+order.push(2)
+
+onRequest3Success():
+order.push(3)
+
+checkOrder():
+PASS JSON.stringify(order) is [1,2,3]
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/storage/indexeddb/open-ordering.html (0 => 138400)

--- trunk/LayoutTests/storage/indexeddb/open-ordering.html	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/open-ordering.html	2012-12-21 23:26:24 UTC (rev 138400)
@@ -0,0 +1,10 @@
+html
+head
+script src=""
+script src=""
+/head
+body
+script 

[webkit-changes] [138402] trunk/LayoutTests

2012-12-21 Thread jsbell
Title: [138402] trunk/LayoutTests








Revision 138402
Author jsb...@chromium.org
Date 2012-12-21 15:48:36 -0800 (Fri, 21 Dec 2012)


Log Message
[Chromium] IndexedDB: storage/indexeddb/intversion-close-between-events.html flaky in content_shell
https://bugs.webkit.org/show_bug.cgi?id=105665

Test uses a setTimeout() which may fire at different times relative to the completion of the
IDBOpenDBRequest in multiprocess ports. Make the test resilient against different outcomes.

Reviewed by Tony Chang.

* storage/indexeddb/resources/intversion-close-between-events.js:
(deleteSuccess):
(openSuccessOrError):
(checkFinished):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/resources/intversion-close-between-events.js




Diff

Modified: trunk/LayoutTests/ChangeLog (138401 => 138402)

--- trunk/LayoutTests/ChangeLog	2012-12-21 23:27:49 UTC (rev 138401)
+++ trunk/LayoutTests/ChangeLog	2012-12-21 23:48:36 UTC (rev 138402)
@@ -1,5 +1,20 @@
 2012-12-21  Joshua Bell  jsb...@chromium.org
 
+[Chromium] IndexedDB: storage/indexeddb/intversion-close-between-events.html flaky in content_shell
+https://bugs.webkit.org/show_bug.cgi?id=105665
+
+Test uses a setTimeout() which may fire at different times relative to the completion of the
+IDBOpenDBRequest in multiprocess ports. Make the test resilient against different outcomes.
+
+Reviewed by Tony Chang.
+
+* storage/indexeddb/resources/intversion-close-between-events.js:
+(deleteSuccess):
+(openSuccessOrError):
+(checkFinished):
+
+2012-12-21  Joshua Bell  jsb...@chromium.org
+
 IndexedDB: Combine openConnection and openConnectionWithVersion
 https://bugs.webkit.org/show_bug.cgi?id=105658
 


Modified: trunk/LayoutTests/storage/indexeddb/resources/intversion-close-between-events.js (138401 => 138402)

--- trunk/LayoutTests/storage/indexeddb/resources/intversion-close-between-events.js	2012-12-21 23:27:49 UTC (rev 138401)
+++ trunk/LayoutTests/storage/indexeddb/resources/intversion-close-between-events.js	2012-12-21 23:48:36 UTC (rev 138402)
@@ -19,10 +19,9 @@
 preamble(evt);
 
 evalAndLog(request = indexedDB.open(dbname, 7));
-request._onsuccess_ = openSuccess;
+request._onsuccess_ = request._onerror_ = openSuccessOrError;
 request._onupgradeneeded_ = upgradeNeeded;
 request._onblocked_ = unexpectedBlockedCallback;
-request._onerror_ = unexpectedErrorCallback;
 }
 
 var sawTransactionComplete = false;
@@ -50,7 +49,7 @@
 }
 
 var didCallCloseDB = false;
-var didGetOpenSuccess = false;
+var didGetOpenSuccessOrError = false;
 
 function closeDB()
 {
@@ -59,9 +58,11 @@
 checkFinished();
 }
 
-function openSuccess(evt)
+function openSuccessOrError(evt)
 {
-didGetOpenSuccess = true;
+// May get either a success or error event, depending on when the timeout fires
+// relative to the open steps.
+didGetOpenSuccessOrError = true;
 
 var quiet = true;
 if (didCallCloseDB) {
@@ -77,7 +78,7 @@
 {
 preamble();
 
-if (!didCallCloseDB || !didGetOpenSuccess) {
+if (!didCallCloseDB || !didGetOpenSuccessOrError) {
 debug(Not done yet...);
 return;
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [138268] trunk

2012-12-20 Thread jsbell
Title: [138268] trunk








Revision 138268
Author jsb...@chromium.org
Date 2012-12-20 10:21:35 -0800 (Thu, 20 Dec 2012)


Log Message
IndexedDB: Layout test showing delete database getting two blocked events
https://bugs.webkit.org/show_bug.cgi?id=92674

Reviewed by Tony Chang.

Source/WebCore:

Match the steps specified behavior for deleteDatabase() in the spec: versionchange/blocked
events fire if necessary, then waits until a condition is satisfied before continuing with
the steps to delete the database. The bug was caused by retrying the full call again. Events
are also now sent out immediately when a versionchange transaction is running, rather
than entering a limbo state - again, the new behavior matches the spec more accurately.

Tests: storage/indexeddb/delete-in-upgradeneeded-close-in-open-success.html
   storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange.html
   storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange.html
   storage/indexeddb/intversion-gated-on-delete.html

* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::deleteDatabase): First half of the steps.
(WebCore):
(WebCore::IDBDatabaseBackendImpl::isDeleteDatabaseBlocked): Pull out condition test.
(WebCore::IDBDatabaseBackendImpl::deleteDatabaseFinal): Second half of the of steps.
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):

LayoutTests:

Update/add tests to match the expected behavior where blocked/versionchange events fire
even when a versionchange transaction is running.

* storage/indexeddb/delete-in-upgradeneeded-close-in-open-success-expected.txt: Copied from LayoutTests/storage/indexeddb/intversion-delete-in-upgradeneeded-expected.txt.
* storage/indexeddb/delete-in-upgradeneeded-close-in-open-success.html: Copied from LayoutTests/storage/indexeddb/intversion-delete-in-upgradeneeded.html.
* storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange-expected.txt: Renamed from LayoutTests/storage/indexeddb/intversion-delete-in-upgradeneeded-expected.txt.
* storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange.html: Renamed from LayoutTests/storage/indexeddb/intversion-delete-in-upgradeneeded.html.
* storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-expected.txt:
* storage/indexeddb/deletedatabase-delayed-by-versionchange-expected.txt:
* storage/indexeddb/intversion-gated-on-delete-expected.txt:
* storage/indexeddb/resources/delete-in-upgradeneeded-close-in-open-success.js: Copied from LayoutTests/storage/indexeddb/resources/intversion-delete-in-upgradeneeded.js.
* storage/indexeddb/resources/delete-in-upgradeneeded-close-in-versionchange.js: Renamed from LayoutTests/storage/indexeddb/resources/intversion-delete-in-upgradeneeded.js.
* storage/indexeddb/resources/deletedatabase-delayed-by-open-and-versionchange.js:
* storage/indexeddb/resources/factory-deletedatabase.js:
* storage/indexeddb/resources/intversion-gated-on-delete.js:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-expected.txt
trunk/LayoutTests/storage/indexeddb/deletedatabase-delayed-by-versionchange-expected.txt
trunk/LayoutTests/storage/indexeddb/intversion-gated-on-delete-expected.txt
trunk/LayoutTests/storage/indexeddb/resources/deletedatabase-delayed-by-open-and-versionchange.js
trunk/LayoutTests/storage/indexeddb/resources/factory-deletedatabase.js
trunk/LayoutTests/storage/indexeddb/resources/intversion-gated-on-delete.js
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h


Added Paths

trunk/LayoutTests/storage/indexeddb/delete-in-upgradeneeded-close-in-open-success-expected.txt
trunk/LayoutTests/storage/indexeddb/delete-in-upgradeneeded-close-in-open-success.html
trunk/LayoutTests/storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange-expected.txt
trunk/LayoutTests/storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange.html
trunk/LayoutTests/storage/indexeddb/resources/delete-in-upgradeneeded-close-in-open-success.js
trunk/LayoutTests/storage/indexeddb/resources/delete-in-upgradeneeded-close-in-versionchange.js


Removed Paths

trunk/LayoutTests/storage/indexeddb/intversion-delete-in-upgradeneeded-expected.txt
trunk/LayoutTests/storage/indexeddb/intversion-delete-in-upgradeneeded.html
trunk/LayoutTests/storage/indexeddb/resources/intversion-delete-in-upgradeneeded.js




Diff

Modified: trunk/LayoutTests/ChangeLog (138267 => 138268)

--- trunk/LayoutTests/ChangeLog	2012-12-20 18:21:28 UTC (rev 138267)
+++ trunk/LayoutTests/ChangeLog	2012-12-20 18:21:35 UTC (rev 138268)
@@ -1,3 +1,26 @@
+2012-12-20  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Layout test showing delete database getting two blocked events
+

[webkit-changes] [137773] trunk/Source/WebKit/chromium

2012-12-14 Thread jsbell
Title: [137773] trunk/Source/WebKit/chromium








Revision 137773
Author jsb...@chromium.org
Date 2012-12-14 14:31:53 -0800 (Fri, 14 Dec 2012)


Log Message
[Chromium] IndexedDB: Memory leak in IDBCallbacksProxy::onSuccess(PassRefPtrIDBDatabaseBackendInterface)
https://bugs.webkit.org/show_bug.cgi?id=104615

Reviewed by Tony Chang.

Don't create (and leak) a new wrapper object for onSuccess if one was created for onUpgradeNeeded.

* src/IDBCallbacksProxy.cpp:
(WebKit::IDBCallbacksProxy::IDBCallbacksProxy):
(WebKit::IDBCallbacksProxy::onSuccess):
(WebKit::IDBCallbacksProxy::onUpgradeNeeded):
* src/IDBCallbacksProxy.h:
(IDBCallbacksProxy):

Modified Paths

trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp
trunk/Source/WebKit/chromium/src/IDBCallbacksProxy.h




Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (137772 => 137773)

--- trunk/Source/WebKit/chromium/ChangeLog	2012-12-14 22:30:20 UTC (rev 137772)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-12-14 22:31:53 UTC (rev 137773)
@@ -1,3 +1,19 @@
+2012-12-14  Joshua Bell  jsb...@chromium.org
+
+[Chromium] IndexedDB: Memory leak in IDBCallbacksProxy::onSuccess(PassRefPtrIDBDatabaseBackendInterface)
+https://bugs.webkit.org/show_bug.cgi?id=104615
+
+Reviewed by Tony Chang.
+
+Don't create (and leak) a new wrapper object for onSuccess if one was created for onUpgradeNeeded.
+
+* src/IDBCallbacksProxy.cpp:
+(WebKit::IDBCallbacksProxy::IDBCallbacksProxy):
+(WebKit::IDBCallbacksProxy::onSuccess):
+(WebKit::IDBCallbacksProxy::onUpgradeNeeded):
+* src/IDBCallbacksProxy.h:
+(IDBCallbacksProxy):
+
 2012-12-14  Yusuf Ozuysal  yus...@google.com
 
 Send a message from WebViewImpl to the compositor to inform about end of flings


Modified: trunk/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp (137772 => 137773)

--- trunk/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp	2012-12-14 22:30:20 UTC (rev 137772)
+++ trunk/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp	2012-12-14 22:31:53 UTC (rev 137773)
@@ -59,6 +59,7 @@
 
 IDBCallbacksProxy::IDBCallbacksProxy(PassOwnPtrWebIDBCallbacks callbacks)
 : m_callbacks(callbacks)
+, m_didCreateProxy(false)
 {
 }
 
@@ -79,7 +80,8 @@
 void IDBCallbacksProxy::onSuccess(PassRefPtrIDBDatabaseBackendInterface backend)
 {
 ASSERT(m_databaseCallbacks.get());
-m_callbacks-onSuccess(new WebIDBDatabaseImpl(backend, m_databaseCallbacks.release()));
+WebIDBDatabaseImpl* impl = m_didCreateProxy ? 0 : new WebIDBDatabaseImpl(backend, m_databaseCallbacks.release());
+m_callbacks-onSuccess(impl);
 }
 
 void IDBCallbacksProxy::onSuccess(PassRefPtrIDBKey idbKey)
@@ -147,6 +149,7 @@
 void IDBCallbacksProxy::onUpgradeNeeded(int64_t oldVersion, PassRefPtrIDBTransactionBackendInterface transaction, PassRefPtrIDBDatabaseBackendInterface database)
 {
 ASSERT(m_databaseCallbacks);
+m_didCreateProxy = true;
 m_callbacks-onUpgradeNeeded(oldVersion, new WebIDBTransactionImpl(transaction), new WebIDBDatabaseImpl(database, m_databaseCallbacks));
 }
 


Modified: trunk/Source/WebKit/chromium/src/IDBCallbacksProxy.h (137772 => 137773)

--- trunk/Source/WebKit/chromium/src/IDBCallbacksProxy.h	2012-12-14 22:30:20 UTC (rev 137772)
+++ trunk/Source/WebKit/chromium/src/IDBCallbacksProxy.h	2012-12-14 22:31:53 UTC (rev 137773)
@@ -68,6 +68,7 @@
 
 OwnPtrWebIDBCallbacks m_callbacks;
 RefPtrIDBDatabaseCallbacksProxy m_databaseCallbacks;
+bool m_didCreateProxy;
 };
 
 } // namespace WebKit






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [136958] trunk/Source/WebCore

2012-12-07 Thread jsbell
Title: [136958] trunk/Source/WebCore








Revision 136958
Author jsb...@chromium.org
Date 2012-12-07 09:52:36 -0800 (Fri, 07 Dec 2012)


Log Message
IndexedDB: Check SSV version when opening database
https://bugs.webkit.org/show_bug.cgi?id=102243

Reviewed by Tony Chang.

Ensure that the data format (SerializedScriptValue) isn't from the future when opening
a backing store. Treat an unknown version the same as an unknown schema version.

Chromium-side test at https://codereview.chromium.org/11470013/ (same as other schema version tests)

* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore):
(WebCore::isSchemaKnown): Check data version as well.
(WebCore::setUpMetadata): Ensure data version is recorded; bump schema version.
* Modules/indexeddb/IDBLevelDBCoding.cpp: Encoding for DataVersion global metadata entry.
(IDBLevelDBCoding):
(WebCore::IDBLevelDBCoding::compare):
(WebCore::IDBLevelDBCoding::DataVersionKey::encode):
* Modules/indexeddb/IDBLevelDBCoding.h:
(DataVersionKey):
(IDBLevelDBCoding):
* bindings/js/SerializedScriptValue.cpp:
(SerializedScriptValue::wireFormatVersion): New method (JSC side).
* bindings/js/SerializedScriptValue.h:
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::wireFormatVersion): New method (V8 side).
(WebCore):
* bindings/v8/SerializedScriptValue.h:
(SerializedScriptValue):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h
trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp
trunk/Source/WebCore/bindings/js/SerializedScriptValue.h
trunk/Source/WebCore/bindings/v8/SerializedScriptValue.cpp
trunk/Source/WebCore/bindings/v8/SerializedScriptValue.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (136957 => 136958)

--- trunk/Source/WebCore/ChangeLog	2012-12-07 16:54:31 UTC (rev 136957)
+++ trunk/Source/WebCore/ChangeLog	2012-12-07 17:52:36 UTC (rev 136958)
@@ -1,3 +1,35 @@
+2012-12-07  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Check SSV version when opening database
+https://bugs.webkit.org/show_bug.cgi?id=102243
+
+Reviewed by Tony Chang.
+
+Ensure that the data format (SerializedScriptValue) isn't from the future when opening
+a backing store. Treat an unknown version the same as an unknown schema version.
+
+Chromium-side test at https://codereview.chromium.org/11470013/ (same as other schema version tests)
+
+* Modules/indexeddb/IDBBackingStore.cpp:
+(WebCore):
+(WebCore::isSchemaKnown): Check data version as well.
+(WebCore::setUpMetadata): Ensure data version is recorded; bump schema version.
+* Modules/indexeddb/IDBLevelDBCoding.cpp: Encoding for DataVersion global metadata entry.
+(IDBLevelDBCoding):
+(WebCore::IDBLevelDBCoding::compare):
+(WebCore::IDBLevelDBCoding::DataVersionKey::encode):
+* Modules/indexeddb/IDBLevelDBCoding.h:
+(DataVersionKey):
+(IDBLevelDBCoding):
+* bindings/js/SerializedScriptValue.cpp:
+(SerializedScriptValue::wireFormatVersion): New method (JSC side).
+* bindings/js/SerializedScriptValue.h:
+* bindings/v8/SerializedScriptValue.cpp:
+(WebCore::SerializedScriptValue::wireFormatVersion): New method (V8 side).
+(WebCore):
+* bindings/v8/SerializedScriptValue.h:
+(SerializedScriptValue):
+
 2012-12-07  Andreas Kling  akl...@apple.com
 
 Throw away StyleResolvers that haven't been used for a long time.


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp (136957 => 136958)

--- trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp	2012-12-07 16:54:31 UTC (rev 136957)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp	2012-12-07 17:52:36 UTC (rev 136958)
@@ -181,30 +181,51 @@
 virtual const char* name() const { return idb_cmp1; }
 };
 
-const int64_t latestSchemaVersion = 1;
+// 0 - Initial version.
+// 1 - Adds UserIntVersion to DatabaseMetaData.
+// 2 - Adds DataVersion to to global metadata.
+const int64_t latestKnownSchemaVersion = 2;
 static bool isSchemaKnown(LevelDBDatabase* db)
 {
-int64_t schemaVersion = 0;
-const Vectorchar metaDataKey = SchemaVersionKey::encode();
-if (!getInt(db, metaDataKey, schemaVersion))
+int64_t dbSchemaVersion = 0;
+if (!getInt(db, SchemaVersionKey::encode(), dbSchemaVersion))
 return true;
-return schemaVersion = latestSchemaVersion;
+if (dbSchemaVersion  latestKnownSchemaVersion)
+return false;
+
+const uint32_t latestKnownDataVersion = SerializedScriptValue::wireFormatVersion();
+int64_t dbDataVersion = 0;
+if (!getInt(db, DataVersionKey::encode(), dbDataVersion))
+return true;
+
+if (dbDataVersion  latestKnownDataVersion)
+return false;
+
+return true;
 }
 
 static bool 

[webkit-changes] [136869] trunk/Source/WebCore

2012-12-06 Thread jsbell
Title: [136869] trunk/Source/WebCore








Revision 136869
Author jsb...@chromium.org
Date 2012-12-06 12:11:42 -0800 (Thu, 06 Dec 2012)


Log Message
IndexedDB: Remove IDBDatabaseException.idl
https://bugs.webkit.org/show_bug.cgi?id=102961

Reviewed by Adam Barth.

Delete the IDL and references to it. No longer needed as a enum member
in the autogenerated ExceptionCodeDescription.h so removed from the .in
file; only direct references are retained in the autogenerated cpp file.

Ideally the code generator would handle these new-style DOMExceptions,
but we don't have any other examples yet to know what pattern to follow.

No new tests - just removing dead code.

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Modules/indexeddb/IDBDatabaseException.idl: Removed.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMExceptions.in:
* dom/make_dom_exceptions.pl:
(generateImplementation):

Modified Paths

trunk/Source/WebCore/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/DerivedSources.cpp
trunk/Source/WebCore/DerivedSources.make
trunk/Source/WebCore/DerivedSources.pri
trunk/Source/WebCore/GNUmakefile.list.am
trunk/Source/WebCore/WebCore.gypi
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebCore/dom/DOMExceptions.in
trunk/Source/WebCore/dom/make_dom_exceptions.pl


Removed Paths

trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseException.idl




Diff

Modified: trunk/Source/WebCore/CMakeLists.txt (136868 => 136869)

--- trunk/Source/WebCore/CMakeLists.txt	2012-12-06 20:02:19 UTC (rev 136868)
+++ trunk/Source/WebCore/CMakeLists.txt	2012-12-06 20:11:42 UTC (rev 136869)
@@ -189,7 +189,6 @@
 Modules/indexeddb/IDBCursor.idl
 Modules/indexeddb/IDBCursorWithValue.idl
 Modules/indexeddb/IDBDatabase.idl
-Modules/indexeddb/IDBDatabaseException.idl
 Modules/indexeddb/IDBFactory.idl
 Modules/indexeddb/IDBIndex.idl
 Modules/indexeddb/IDBKey.idl


Modified: trunk/Source/WebCore/ChangeLog (136868 => 136869)

--- trunk/Source/WebCore/ChangeLog	2012-12-06 20:02:19 UTC (rev 136868)
+++ trunk/Source/WebCore/ChangeLog	2012-12-06 20:11:42 UTC (rev 136869)
@@ -1,3 +1,32 @@
+2012-12-06  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Remove IDBDatabaseException.idl
+https://bugs.webkit.org/show_bug.cgi?id=102961
+
+Reviewed by Adam Barth.
+
+Delete the IDL and references to it. No longer needed as a enum member
+in the autogenerated ExceptionCodeDescription.h so removed from the .in
+file; only direct references are retained in the autogenerated cpp file.
+
+Ideally the code generator would handle these new-style DOMExceptions,
+but we don't have any other examples yet to know what pattern to follow.
+
+No new tests - just removing dead code.
+
+* CMakeLists.txt:
+* DerivedSources.cpp:
+* DerivedSources.make:
+* DerivedSources.pri:
+* GNUmakefile.list.am:
+* Modules/indexeddb/IDBDatabaseException.idl: Removed.
+* WebCore.gypi:
+* WebCore.vcproj/WebCore.vcproj:
+* WebCore.xcodeproj/project.pbxproj:
+* dom/DOMExceptions.in:
+* dom/make_dom_exceptions.pl:
+(generateImplementation):
+
 2012-12-06  Andreas Kling  akl...@apple.com
 
 [Mac] Drain the CSSValuePool on memory pressure.


Modified: trunk/Source/WebCore/DerivedSources.cpp (136868 => 136869)

--- trunk/Source/WebCore/DerivedSources.cpp	2012-12-06 20:02:19 UTC (rev 136868)
+++ trunk/Source/WebCore/DerivedSources.cpp	2012-12-06 20:11:42 UTC (rev 136869)
@@ -219,7 +219,6 @@
 #include JSIDBAny.cpp
 #include JSIDBCursor.cpp
 #include JSIDBDatabase.cpp
-#include JSIDBDatabaseException.cpp
 #include JSIDBFactory.cpp
 #include JSIDBIndex.cpp
 #include JSIDBKey.cpp


Modified: trunk/Source/WebCore/DerivedSources.make (136868 => 136869)

--- trunk/Source/WebCore/DerivedSources.make	2012-12-06 20:02:19 UTC (rev 136868)
+++ trunk/Source/WebCore/DerivedSources.make	2012-12-06 20:11:42 UTC (rev 136869)
@@ -95,7 +95,6 @@
 $(WebCore)/Modules/indexeddb/IDBAny.idl \
 $(WebCore)/Modules/indexeddb/IDBCursor.idl \
 $(WebCore)/Modules/indexeddb/IDBDatabase.idl \
-$(WebCore)/Modules/indexeddb/IDBDatabaseException.idl \
 $(WebCore)/Modules/indexeddb/IDBFactory.idl \
 $(WebCore)/Modules/indexeddb/IDBIndex.idl \
 $(WebCore)/Modules/indexeddb/IDBKey.idl \


Modified: trunk/Source/WebCore/DerivedSources.pri (136868 => 136869)

--- trunk/Source/WebCore/DerivedSources.pri	2012-12-06 20:02:19 UTC (rev 136868)
+++ trunk/Source/WebCore/DerivedSources.pri	2012-12-06 20:11:42 UTC (rev 136869)
@@ -118,7 +118,6 @@
 $$PWD/Modules/indexeddb/DOMWindowIndexedDatabase.idl \
 $$PWD/Modules/indexeddb/IDBAny.idl \
 $$PWD/Modules/indexeddb/IDBCursor.idl \
-

[webkit-changes] [136892] trunk/LayoutTests

2012-12-06 Thread jsbell
Title: [136892] trunk/LayoutTests








Revision 136892
Author jsb...@chromium.org
Date 2012-12-06 14:30:06 -0800 (Thu, 06 Dec 2012)


Log Message
[Chromium] IndexedDB: storage/indexeddb/resources/cursor-advance.html flaky in content_shell after WK136782
https://bugs.webkit.org/show_bug.cgi?id=104292

Reviewed by Tony Chang.

Test had a read-only transaction depending on the completion of a prior read-write transaction,
which is not guaranteed by the spec. Switch from triggering the second transaction into the
oncomplete of the first.

* storage/indexeddb/resources/cursor-advance.js:
(populateObjectStore):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/resources/cursor-advance.js




Diff

Modified: trunk/LayoutTests/ChangeLog (136891 => 136892)

--- trunk/LayoutTests/ChangeLog	2012-12-06 22:21:27 UTC (rev 136891)
+++ trunk/LayoutTests/ChangeLog	2012-12-06 22:30:06 UTC (rev 136892)
@@ -1,3 +1,17 @@
+2012-12-06  Joshua Bell  jsb...@chromium.org
+
+[Chromium] IndexedDB: storage/indexeddb/resources/cursor-advance.html flaky in content_shell after WK136782
+https://bugs.webkit.org/show_bug.cgi?id=104292
+
+Reviewed by Tony Chang.
+
+Test had a read-only transaction depending on the completion of a prior read-write transaction,
+which is not guaranteed by the spec. Switch from triggering the second transaction into the
+oncomplete of the first.
+
+* storage/indexeddb/resources/cursor-advance.js:
+(populateObjectStore):
+
 2012-12-06  Andrew Scherkus  scher...@chromium.org
 
 [Chromium] Unreviewed, rebaselining http/tests/media/video-buffered-range-contains-currentTime.html


Modified: trunk/LayoutTests/storage/indexeddb/resources/cursor-advance.js (136891 => 136892)

--- trunk/LayoutTests/storage/indexeddb/resources/cursor-advance.js	2012-12-06 22:21:27 UTC (rev 136891)
+++ trunk/LayoutTests/storage/indexeddb/resources/cursor-advance.js	2012-12-06 22:30:06 UTC (rev 136892)
@@ -51,7 +51,7 @@
 request = evalAndLog(request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key););
 request._onerror_ = unexpectedErrorCallback;
 }
-request._onsuccess_ = testSimple;
+trans._oncomplete_ = testSimple;
 }
 
 function createIndexes()






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [136475] trunk

2012-12-03 Thread jsbell
Title: [136475] trunk








Revision 136475
Author jsb...@chromium.org
Date 2012-12-03 23:17:04 -0800 (Mon, 03 Dec 2012)


Log Message
IndexedDB: Correct database version after aborted upgrade
https://bugs.webkit.org/show_bug.cgi?id=103763

Reviewed by Tony Chang.

Source/WebCore:

After an aborted versionchange transaction, the IDBDatabase would fetch a fresh snapshot
of the metadata from the back end. If the back end had already started a new versionchange
transaction the snapshot would be bogus. Instead, save a copy of the IDBDatabase's metadata
and roll back to that, as is done for IDBObjectStore.

Tests: storage/indexeddb/intversion-abort-in-initial-upgradeneeded.html
   storage/indexeddb/mozilla/versionchange-abort.html
   storage/indexeddb/unblocked-version-changes.html

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::IDBDatabase):
(WebCore::IDBDatabase::transactionCreated):
* Modules/indexeddb/IDBDatabase.h:
(WebCore::IDBDatabase::setMetadata): Let IDBOpenDBRequest and IDBTransaction tinker.
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded): Fetch new and compute old metadata.
(WebCore::IDBOpenDBRequest::onSuccess): Fetch new metadata, in case upgrade changed it.
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::create): Stash the old metadata, in case of rollback.
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::onAbort): Revert the database as well as the stores.
* Modules/indexeddb/IDBTransaction.h:
(IDBTransaction):

Source/WebKit/chromium:

Pass previously created proxy along in an open onSuccess, rather than a useless wrapper.

* src/WebIDBCallbacksImpl.cpp:
(WebKit::WebIDBCallbacksImpl::WebIDBCallbacksImpl):
(WebKit::WebIDBCallbacksImpl::onSuccess):
(WebKit::WebIDBCallbacksImpl::onUpgradeNeeded):
* src/WebIDBCallbacksImpl.h:
(WebCore):
(WebIDBCallbacksImpl):

LayoutTests:

Update test expectations and tweak a test so it's testing what it claimed.

* storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt:
* storage/indexeddb/mozilla/resources/versionchange-abort.js:
(postAbort):
* storage/indexeddb/mozilla/versionchange-abort-expected.txt:
* storage/indexeddb/resources/unblocked-version-changes.js:
(onUpgradeNeeded):
* storage/indexeddb/unblocked-version-changes-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt
trunk/LayoutTests/storage/indexeddb/mozilla/resources/versionchange-abort.js
trunk/LayoutTests/storage/indexeddb/mozilla/versionchange-abort-expected.txt
trunk/LayoutTests/storage/indexeddb/resources/unblocked-version-changes.js
trunk/LayoutTests/storage/indexeddb/unblocked-version-changes-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h
trunk/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
trunk/Source/WebKit/chromium/src/WebIDBCallbacksImpl.h




Diff

Modified: trunk/LayoutTests/ChangeLog (136474 => 136475)

--- trunk/LayoutTests/ChangeLog	2012-12-04 06:59:22 UTC (rev 136474)
+++ trunk/LayoutTests/ChangeLog	2012-12-04 07:17:04 UTC (rev 136475)
@@ -1,3 +1,20 @@
+2012-12-03  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Correct database version after aborted upgrade
+https://bugs.webkit.org/show_bug.cgi?id=103763
+
+Reviewed by Tony Chang.
+
+Update test expectations and tweak a test so it's testing what it claimed.
+
+* storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt:
+* storage/indexeddb/mozilla/resources/versionchange-abort.js:
+(postAbort):
+* storage/indexeddb/mozilla/versionchange-abort-expected.txt:
+* storage/indexeddb/resources/unblocked-version-changes.js:
+(onUpgradeNeeded):
+* storage/indexeddb/unblocked-version-changes-expected.txt:
+
 2012-12-03  Roger Fong  roger_f...@apple.com
 
 Unreviewed. Gardening of Apple Windows port.


Modified: trunk/LayoutTests/storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt (136474 => 136475)

--- trunk/LayoutTests/storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt	2012-12-04 06:59:22 UTC (rev 136474)
+++ trunk/LayoutTests/storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt	2012-12-04 07:17:04 UTC (rev 136475)
@@ -16,14 +16,14 @@
 transaction.abort()
 
 onAbort():
-FAIL event.target.db.version should be 0 (of type number). Was  (of type string).
+PASS event.target.db.version is 0
 PASS request.transaction is non-null.
 
 onError():
 PASS db is event.target.result
 PASS request is event.target
 PASS event.target.error.name is 

[webkit-changes] [136084] trunk

2012-11-28 Thread jsbell
Title: [136084] trunk








Revision 136084
Author jsb...@chromium.org
Date 2012-11-28 18:24:38 -0800 (Wed, 28 Nov 2012)


Log Message
[Chromium] IndexedDB: Assert/crash in indexing layout tests in content_shell
https://bugs.webkit.org/show_bug.cgi?id=103562

Reviewed by Tony Chang.

Source/WebCore:

In multi-process ports, an commit request or setIndexesReady request may arrive from the
front-end after the back-end has already aborted. Don't freak out if those occur.

Tests: storage/indexeddb/index-population.html
   storage/indexeddb/lazy-index-population.html
   storage/indexeddb/transaction-error.html

* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys): Ensure transaction hasn't finished before continuing.
(WebCore::IDBObjectStoreBackendImpl::setIndexesReady): Ditto.
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::commit): Ignore a commit request if already aborted.

LayoutTests:

Fix an expectation glitch that may arise in multi-process ports (an error on
the open request may arrive before logging has stopped; safe to ignore it).

* storage/indexeddb/resources/transaction-error.js:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/resources/transaction-error.js
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h




Diff

Modified: trunk/LayoutTests/ChangeLog (136083 => 136084)

--- trunk/LayoutTests/ChangeLog	2012-11-29 02:24:31 UTC (rev 136083)
+++ trunk/LayoutTests/ChangeLog	2012-11-29 02:24:38 UTC (rev 136084)
@@ -1,3 +1,15 @@
+2012-11-28  Joshua Bell  jsb...@chromium.org
+
+[Chromium] IndexedDB: Assert/crash in indexing layout tests in content_shell
+https://bugs.webkit.org/show_bug.cgi?id=103562
+
+Reviewed by Tony Chang.
+
+Fix an expectation glitch that may arise in multi-process ports (an error on
+the open request may arrive before logging has stopped; safe to ignore it).
+
+* storage/indexeddb/resources/transaction-error.js:
+
 2012-11-23  Dirk Schulze  k...@webkit.org
 
 Remove -webkit-mask-attachment


Modified: trunk/LayoutTests/storage/indexeddb/resources/transaction-error.js (136083 => 136084)

--- trunk/LayoutTests/storage/indexeddb/resources/transaction-error.js	2012-11-29 02:24:31 UTC (rev 136083)
+++ trunk/LayoutTests/storage/indexeddb/resources/transaction-error.js	2012-11-29 02:24:38 UTC (rev 136084)
@@ -96,7 +96,7 @@
 trans._oncomplete_ = function() {
 db.close();
 evalAndLog(request = indexedDB.open(dbname, 2));
-request._onerror_ = unexpectedSuccessCallback;
+request._onsuccess_ = unexpectedSuccessCallback;
 request._onblocked_ = unexpectedBlockedCallback;
 request._onupgradeneeded_ = function() {
 evalAndLog(trans = request.transaction);


Modified: trunk/Source/WebCore/ChangeLog (136083 => 136084)

--- trunk/Source/WebCore/ChangeLog	2012-11-29 02:24:31 UTC (rev 136083)
+++ trunk/Source/WebCore/ChangeLog	2012-11-29 02:24:38 UTC (rev 136084)
@@ -1,3 +1,23 @@
+2012-11-28  Joshua Bell  jsb...@chromium.org
+
+[Chromium] IndexedDB: Assert/crash in indexing layout tests in content_shell
+https://bugs.webkit.org/show_bug.cgi?id=103562
+
+Reviewed by Tony Chang.
+
+In multi-process ports, an commit request or setIndexesReady request may arrive from the
+front-end after the back-end has already aborted. Don't freak out if those occur.
+
+Tests: storage/indexeddb/index-population.html
+   storage/indexeddb/lazy-index-population.html
+   storage/indexeddb/transaction-error.html
+
+* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
+(WebCore::IDBObjectStoreBackendImpl::setIndexKeys): Ensure transaction hasn't finished before continuing.
+(WebCore::IDBObjectStoreBackendImpl::setIndexesReady): Ditto.
+* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
+(WebCore::IDBTransactionBackendImpl::commit): Ignore a commit request if already aborted.
+
 2012-11-28  Shinya Kawanaka  shin...@chromium.org
 
 [Shadow] Move Distribution requirements from ShadowRoot


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.cpp (136083 => 136084)

--- trunk/Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.cpp	2012-11-29 02:24:31 UTC (rev 136083)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.cpp	2012-11-29 02:24:38 UTC (rev 136084)
@@ -226,6 +226,8 @@
 IDB_TRACE(IDBObjectStoreBackendImpl::setIndexKeys);
 RefPtrIDBKey primaryKey = prpPrimaryKey;
 RefPtrIDBTransactionBackendImpl transaction = IDBTransactionBackendImpl::from(transactionPtr);
+if (transaction-isFinished())
+return;
 
 

[webkit-changes] [135927] trunk/Source

2012-11-27 Thread jsbell
Title: [135927] trunk/Source








Revision 135927
Author jsb...@chromium.org
Date 2012-11-27 15:08:17 -0800 (Tue, 27 Nov 2012)


Log Message
IndexedDB: Simplify transaction timers and event tracking
https://bugs.webkit.org/show_bug.cgi?id=102984

Reviewed by Tony Chang.

Source/WebCore:

Now that the transaction commit decision is made on the front-end, the back end no-longer
needs to be aware of when individual IDBRequests have dispatched to script or track pending
events (except for preemptive ones like createIndex). This also lets two timers be collapsed
into one which significantly simplifies the code flow in IDBTransactionBackendImpl.

No new tests - just simplification. Exercised by storage/indexeddb/transaction-*.html etc.

* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::prefetchContinueInternal): No more tracking.
(WebCore::IDBCursorBackendImpl::prefetchReset): No more tracking.
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal): No more tracking.
(WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal): No more tracking.
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal): No more tracking.
(WebCore::IDBObjectStoreBackendImpl::createIndexInternal): No more tracking.
(WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal): No more tracking.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent): Order must be:
1. request is unregistered from transaction (so request list may be empty)
2. abort transaction if event being dispatched was an error
3. deactivate transaction (which may commit if #1 left it empty and #2 didn't abort)
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl): Need to track if commit
was requested; previously the front end would have triggered an event timer which, on
completion, would be the signal that the front end was finished.
(WebCore::IDBTransactionBackendImpl::scheduleTask): Schedule a timer to service the new
task, if necessary.
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::hasPendingTasks):
(WebCore::IDBTransactionBackendImpl::commit):
(WebCore::IDBTransactionBackendImpl::taskTimerFired): Picks up commit responsibilities
from the now deleted taskEventTimerFired, if everything is truly complete done.
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
(WebCore::IDBTransactionBackendInterface::didCompleteTaskEvents): Removed from interface.

Source/WebKit/chromium:

Remove now-unused didCompleteTaskEvents() method.

* src/IDBTransactionBackendProxy.cpp:
* src/IDBTransactionBackendProxy.h:
(IDBTransactionBackendProxy):
* src/WebIDBTransactionImpl.cpp:
* src/WebIDBTransactionImpl.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h
trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendInterface.h
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/src/IDBTransactionBackendProxy.cpp
trunk/Source/WebKit/chromium/src/IDBTransactionBackendProxy.h
trunk/Source/WebKit/chromium/src/WebIDBTransactionImpl.cpp
trunk/Source/WebKit/chromium/src/WebIDBTransactionImpl.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (135926 => 135927)

--- trunk/Source/WebCore/ChangeLog	2012-11-27 23:01:26 UTC (rev 135926)
+++ trunk/Source/WebCore/ChangeLog	2012-11-27 23:08:17 UTC (rev 135927)
@@ -1,3 +1,48 @@
+2012-11-27  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Simplify transaction timers and event tracking
+https://bugs.webkit.org/show_bug.cgi?id=102984
+
+Reviewed by Tony Chang.
+
+Now that the transaction commit decision is made on the front-end, the back end no-longer
+needs to be aware of when individual IDBRequests have dispatched to script or track pending
+events (except for preemptive ones like createIndex). This also lets two timers be collapsed
+into one which significantly simplifies the code flow in IDBTransactionBackendImpl.
+
+No new tests - just simplification. Exercised by storage/indexeddb/transaction-*.html etc.
+
+* Modules/indexeddb/IDBCursorBackendImpl.cpp:
+(WebCore::IDBCursorBackendImpl::prefetchContinueInternal): No more tracking.
+(WebCore::IDBCursorBackendImpl::prefetchReset): No more tracking.
+* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
+(WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal): No more 

[webkit-changes] [135332] trunk/Source/WebCore

2012-11-20 Thread jsbell
Title: [135332] trunk/Source/WebCore








Revision 135332
Author jsb...@chromium.org
Date 2012-11-20 16:35:09 -0800 (Tue, 20 Nov 2012)


Log Message
IndexedDB: Move control of transaction completion to front end
https://bugs.webkit.org/show_bug.cgi?id=100903

Reviewed by Tony Chang.

When a transaction can no longer become active, the implementation must attempt to
commit it - that is, all requests have dispatched success/error events and no further
requests have been made. Previously, this was done by the back end waiting for events
from the front end, but the front end can more efficiently make the decision.

There should be no detectable behavior change.

Tests: storage/indexeddb/transaction-*.html

* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::setActive):
(WebCore::IDBTransaction::registerRequest):
* Modules/indexeddb/IDBTransaction.h:
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::hasPendingTasks): Added.
(WebCore::IDBTransactionBackendImpl::didCompleteTaskEvents):
(WebCore::IDBTransactionBackendImpl::run):
(WebCore::IDBTransactionBackendImpl::taskEventTimerFired):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h
trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (135331 => 135332)

--- trunk/Source/WebCore/ChangeLog	2012-11-21 00:27:00 UTC (rev 135331)
+++ trunk/Source/WebCore/ChangeLog	2012-11-21 00:35:09 UTC (rev 135332)
@@ -1,3 +1,30 @@
+2012-11-20  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Move control of transaction completion to front end
+https://bugs.webkit.org/show_bug.cgi?id=100903
+
+Reviewed by Tony Chang.
+
+When a transaction can no longer become active, the implementation must attempt to
+commit it - that is, all requests have dispatched success/error events and no further
+requests have been made. Previously, this was done by the back end waiting for events
+from the front end, but the front end can more efficiently make the decision.
+
+There should be no detectable behavior change.
+
+Tests: storage/indexeddb/transaction-*.html
+
+* Modules/indexeddb/IDBTransaction.cpp:
+(WebCore::IDBTransaction::IDBTransaction):
+(WebCore::IDBTransaction::setActive):
+(WebCore::IDBTransaction::registerRequest):
+* Modules/indexeddb/IDBTransaction.h:
+* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
+(WebCore::IDBTransactionBackendImpl::hasPendingTasks): Added.
+(WebCore::IDBTransactionBackendImpl::didCompleteTaskEvents):
+(WebCore::IDBTransactionBackendImpl::run):
+(WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
+
 2012-11-20  Kentaro Hara  hara...@chromium.org
 
 Unreviewed. Rebaselined run-bindings-tests results.


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp (135331 => 135332)

--- trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2012-11-21 00:27:00 UTC (rev 135331)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2012-11-21 00:35:09 UTC (rev 135332)
@@ -500,6 +500,11 @@
 m_transaction-setActive(true);
 
 bool dontPreventDefault = IDBEventDispatcher::dispatch(event.get(), targets);
+
+if (m_transaction  m_readyState == DONE)
+m_transaction-unregisterRequest(this);
+
+// If this was the last request in the transaction's list, it may commit here.
 if (setTransactionActive)
 m_transaction-setActive(false);
 
@@ -518,9 +523,6 @@
 
 if (event-type() != eventNames().blockedEvent)
 m_transaction-backend()-didCompleteTaskEvents();
-
-if (m_readyState == DONE)
-m_transaction-unregisterRequest(this);
 }
 
 return dontPreventDefault;


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp (135331 => 135332)

--- trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp	2012-11-21 00:27:00 UTC (rev 135331)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp	2012-11-21 00:35:09 UTC (rev 135332)
@@ -95,8 +95,7 @@
 , m_objectStoreNames(objectStoreNames)
 , m_openDBRequest(openDBRequest)
 , m_mode(mode)
-, m_active(true)
-, m_state(Unused)
+, m_state(Active)
 , m_hasPendingActivity(true)
 , m_contextStopped(false)
 {
@@ -104,14 +103,12 @@
 
 if (mode == VERSION_CHANGE) {
 // Not active until the callback.
-m_active = false;
-// Implicitly used by the version change itself.
-m_state = Used;
+m_state = Inactive;
 }
 
 // We pass a reference of this object before it can be adopted.
 

[webkit-changes] [135027] trunk

2012-11-16 Thread jsbell
Title: [135027] trunk








Revision 135027
Author jsb...@chromium.org
Date 2012-11-16 18:08:13 -0800 (Fri, 16 Nov 2012)


Log Message
IndexedDB: Assert hit when getting non-existent object store in version change transaction
https://bugs.webkit.org/show_bug.cgi?id=102547

Reviewed by Tony Chang.

Source/WebCore:

Code did not account for the not-found case in versionchange transactions, where all
object stores are implicitly in scope.

Test: storage/indexeddb/object-lookups-in-versionchange.html

* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::objectStore):

LayoutTests:

Regression test - make sure that .objectStore() and .index() fail on unknown names
in versionchange transactions.

* storage/indexeddb/object-lookups-in-versionchange-expected.txt: Added.
* storage/indexeddb/object-lookups-in-versionchange.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp


Added Paths

trunk/LayoutTests/storage/indexeddb/object-lookups-in-versionchange-expected.txt
trunk/LayoutTests/storage/indexeddb/object-lookups-in-versionchange.html




Diff

Modified: trunk/LayoutTests/ChangeLog (135026 => 135027)

--- trunk/LayoutTests/ChangeLog	2012-11-17 02:03:58 UTC (rev 135026)
+++ trunk/LayoutTests/ChangeLog	2012-11-17 02:08:13 UTC (rev 135027)
@@ -1,3 +1,16 @@
+2012-11-16  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Assert hit when getting non-existent object store in version change transaction
+https://bugs.webkit.org/show_bug.cgi?id=102547
+
+Reviewed by Tony Chang.
+
+Regression test - make sure that .objectStore() and .index() fail on unknown names
+in versionchange transactions.
+
+* storage/indexeddb/object-lookups-in-versionchange-expected.txt: Added.
+* storage/indexeddb/object-lookups-in-versionchange.html: Added.
+
 2012-11-16  Simon Fraser  simon.fra...@apple.com
 
 Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions


Added: trunk/LayoutTests/storage/indexeddb/object-lookups-in-versionchange-expected.txt (0 => 135027)

--- trunk/LayoutTests/storage/indexeddb/object-lookups-in-versionchange-expected.txt	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/object-lookups-in-versionchange-expected.txt	2012-11-17 02:08:13 UTC (rev 135027)
@@ -0,0 +1,27 @@
+Regression test for http://webkit.org/b/102547
+
+On success, you will see a series of PASS messages, followed by TEST COMPLETE.
+
+
+indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
+
+dbname = object-lookups-in-versionchange.html
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname)
+db = event.target.result
+transaction = event.target.transaction
+store = db.createObjectStore('store')
+
+Expecting exception from transaction.objectStore('no-such-store')
+PASS Exception was thrown.
+PASS code is DOMException.NOT_FOUND_ERR
+PASS ename is 'NotFoundError'
+
+Expecting exception from store.index('no-such-index')
+PASS Exception was thrown.
+PASS code is DOMException.NOT_FOUND_ERR
+PASS ename is 'NotFoundError'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/storage/indexeddb/object-lookups-in-versionchange.html (0 => 135027)

--- trunk/LayoutTests/storage/indexeddb/object-lookups-in-versionchange.html	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/object-lookups-in-versionchange.html	2012-11-17 02:08:13 UTC (rev 135027)
@@ -0,0 +1,21 @@
+!DOCTYPE html
+script src=""
+script src=""
+script
+
+description(Regression test for http://webkit.org/b/102547);
+
+indexedDBTest(prepareDatabase, finishJSTest);
+
+function prepareDatabase() {
+evalAndLog(db = event.target.result);
+evalAndLog(transaction = event.target.transaction);
+evalAndLog(store = db.createObjectStore('store'));
+debug();
+evalAndExpectException(transaction.objectStore('no-such-store'), DOMException.NOT_FOUND_ERR, 'NotFoundError');
+debug();
+evalAndExpectException(store.index('no-such-index'), DOMException.NOT_FOUND_ERR, 'NotFoundError');
+}
+
+/script
+script src=""


Modified: trunk/Source/WebCore/ChangeLog (135026 => 135027)

--- trunk/Source/WebCore/ChangeLog	2012-11-17 02:03:58 UTC (rev 135026)
+++ trunk/Source/WebCore/ChangeLog	2012-11-17 02:08:13 UTC (rev 135027)
@@ -1,3 +1,18 @@
+2012-11-16  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Assert hit when getting non-existent object store in version change transaction
+https://bugs.webkit.org/show_bug.cgi?id=102547
+
+Reviewed by Tony Chang.
+
+Code did not account for the not-found case in versionchange transactions, where all
+object stores are implicitly in scope.
+
+Test: storage/indexeddb/object-lookups-in-versionchange.html
+
+* Modules/indexeddb/IDBTransaction.cpp:
+

[webkit-changes] [134838] trunk

2012-11-15 Thread jsbell
Title: [134838] trunk








Revision 134838
Author jsb...@chromium.org
Date 2012-11-15 15:17:32 -0800 (Thu, 15 Nov 2012)


Log Message
IndexedDB: Indexing tests are flaky-crashing
https://bugs.webkit.org/show_bug.cgi?id=102283

Reviewed by Tony Chang.

Source/WebCore:

Processing the final task can cause IDBTransactionBackendImpl references to be released
by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
swapping queues) control would fall off the end of the function. The loop termination
check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
the method completes.

Test: storage/indexeddb/transaction-crash-in-tasks.html

* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::abort): Rename self = protect.
(WebCore::IDBTransactionBackendImpl::commit): Rename self = protect.
(WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.

LayoutTests:

Reduced repro case, although the behavior is still flaky.

* storage/indexeddb/transaction-crash-in-tasks-expected.txt: Added.
* storage/indexeddb/transaction-crash-in-tasks.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp


Added Paths

trunk/LayoutTests/storage/indexeddb/transaction-crash-in-tasks-expected.txt
trunk/LayoutTests/storage/indexeddb/transaction-crash-in-tasks.html




Diff

Modified: trunk/LayoutTests/ChangeLog (134837 => 134838)

--- trunk/LayoutTests/ChangeLog	2012-11-15 23:01:37 UTC (rev 134837)
+++ trunk/LayoutTests/ChangeLog	2012-11-15 23:17:32 UTC (rev 134838)
@@ -1,3 +1,15 @@
+2012-11-15  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Indexing tests are flaky-crashing
+https://bugs.webkit.org/show_bug.cgi?id=102283
+
+Reviewed by Tony Chang.
+
+Reduced repro case, although the behavior is still flaky.
+
+* storage/indexeddb/transaction-crash-in-tasks-expected.txt: Added.
+* storage/indexeddb/transaction-crash-in-tasks.html: Added.
+
 2012-11-15  Roger Fong  roger_f...@apple.com
 
 Unreviewed. HiDPI is not enabled on Windows (as indicated by test result). Adding failing expected result.


Added: trunk/LayoutTests/storage/indexeddb/transaction-crash-in-tasks-expected.txt (0 => 134838)

--- trunk/LayoutTests/storage/indexeddb/transaction-crash-in-tasks-expected.txt	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/transaction-crash-in-tasks-expected.txt	2012-11-15 23:17:32 UTC (rev 134838)
@@ -0,0 +1,14 @@
+Regression test for http://webkit.org/b/102283
+
+On success, you will see a series of PASS messages, followed by TEST COMPLETE.
+
+
+indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
+
+dbname = transaction-crash-in-tasks.html
+indexedDB.open(dbname, 2)
+indexedDB.open(dbname, 3)
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/storage/indexeddb/transaction-crash-in-tasks.html (0 => 134838)

--- trunk/LayoutTests/storage/indexeddb/transaction-crash-in-tasks.html	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/transaction-crash-in-tasks.html	2012-11-15 23:17:32 UTC (rev 134838)
@@ -0,0 +1,19 @@
+!DOCTYPE html
+script src=""
+script src=""
+script
+
+description(Regression test for http://webkit.org/b/102283);
+
+test();
+function test() {
+removeVendorPrefixes();
+setDBNameFromPath();
+
+evalAndLog(indexedDB.open(dbname, 2));
+evalAndLog(indexedDB.open(dbname, 3));
+
+finishJSTest();
+}
+/script
+script src=""


Modified: trunk/Source/WebCore/ChangeLog (134837 => 134838)

--- trunk/Source/WebCore/ChangeLog	2012-11-15 23:01:37 UTC (rev 134837)
+++ trunk/Source/WebCore/ChangeLog	2012-11-15 23:17:32 UTC (rev 134838)
@@ -1,3 +1,23 @@
+2012-11-15  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Indexing tests are flaky-crashing
+https://bugs.webkit.org/show_bug.cgi?id=102283
+
+Reviewed by Tony Chang.
+
+Processing the final task can cause IDBTransactionBackendImpl references to be released
+by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
+swapping queues) control would fall off the end of the function. The loop termination
+check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
+the method completes.
+
+Test: storage/indexeddb/transaction-crash-in-tasks.html
+
+* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
+(WebCore::IDBTransactionBackendImpl::abort): Rename self = protect.
+(WebCore::IDBTransactionBackendImpl::commit): Rename self = protect.
+(WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.
+
 2012-11-15  Elliott Sprehn  espr...@chromium.org
 
 MutationObserver wrapper should not be collected while still observing



[webkit-changes] [134646] trunk/Source/WebCore

2012-11-14 Thread jsbell
Title: [134646] trunk/Source/WebCore








Revision 134646
Author jsb...@chromium.org
Date 2012-11-14 12:22:41 -0800 (Wed, 14 Nov 2012)


Log Message
Rename NATIVE_TYPE_ERR to TypeError
https://bugs.webkit.org/show_bug.cgi?id=102114

Reviewed by Kentaro Hara.

Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
V8 binding code had colliding enum members, which required prefixing.

No new tests - just internal renames.

* Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
(WebCore::IDBCursor::advance):
(WebCore::IDBCursor::stringToDirection):
(WebCore::IDBCursor::directionToString):
* Modules/indexeddb/IDBDatabase.cpp: Ditto.
(WebCore::IDBDatabase::setVersion):
* Modules/indexeddb/IDBFactory.cpp: Ditto.
(WebCore::IDBFactory::open):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
* Modules/indexeddb/IDBObjectStore.cpp: Ditto.
(WebCore::IDBObjectStore::createIndex):
* Modules/indexeddb/IDBTransaction.cpp: Ditto.
(WebCore::IDBTransaction::stringToMode):
(WebCore::IDBTransaction::modeToString):
* bindings/js/JSDOMBinding.cpp: Ditto.
(WebCore::setDOMException):
* bindings/v8/DateExtension.cpp: Prefix ErrorType enum/members w/ V8/v8.
(WebCore::DateExtension::OnSleepDetected):
* bindings/v8/NPV8Object.cpp: Ditto.
(_NPN_SetException):
* bindings/v8/V8Binding.cpp: Ditto.
(WebCore::throwError):
(WebCore::handleMaxRecursionDepthExceeded):
* bindings/v8/V8Binding.h: Ditto.
(WebCore):
* bindings/v8/V8NPObject.cpp: Ditto.
(WebCore::npObjectInvokeImpl):
(WebCore::npObjectGetProperty):
(WebCore::npObjectSetProperty):
(WebCore::npObjectPropertyEnumerator):
* bindings/v8/V8ThrowException.cpp: Rename ALL the errors!
(WebCore::V8ThrowException::setDOMException):
(WebCore::V8ThrowException::throwError):
(WebCore::V8ThrowException::throwTypeError):
(WebCore::V8ThrowException::throwNotEnoughArgumentsError):
* bindings/v8/V8ThrowException.h:
(V8ThrowException):
* bindings/v8/WorkerContextExecutionProxy.cpp: Prefixing (continued)
(WebCore::WorkerContextExecutionProxy::evaluate):
* bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
(WebCore::V8ArrayBuffer::constructorCallback):
* bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
(WebCore::constructWebGLArrayWithArrayBufferArgument):
(WebCore::constructWebGLArray):
(WebCore::setWebGLArrayHelper):
* bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
(WebCore::V8AudioContext::constructorCallback):
* bindings/v8/custom/V8BlobCustom.cpp: Ditto.
(WebCore::V8Blob::constructorCallback):
* bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
(WebCore::V8Clipboard::clearDataCallback):
(WebCore::V8Clipboard::setDragImageCallback):
* bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
(WebCore::V8DOMFormData::appendCallback):
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Ditto.
(WebCore::V8SQLResultSetRowList::itemCallback):
* dom/ExceptionCode.h: Add WebIDL exception types.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp
trunk/Source/WebCore/bindings/js/JSDOMBinding.cpp
trunk/Source/WebCore/bindings/v8/DateExtension.cpp
trunk/Source/WebCore/bindings/v8/NPV8Object.cpp
trunk/Source/WebCore/bindings/v8/V8Binding.cpp
trunk/Source/WebCore/bindings/v8/V8Binding.h
trunk/Source/WebCore/bindings/v8/V8NPObject.cpp
trunk/Source/WebCore/bindings/v8/V8ThrowException.cpp
trunk/Source/WebCore/bindings/v8/V8ThrowException.h
trunk/Source/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp
trunk/Source/WebCore/bindings/v8/custom/V8ArrayBufferCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h
trunk/Source/WebCore/bindings/v8/custom/V8AudioContextCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8BlobCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8ClipboardCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8DOMFormDataCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8SQLResultSetRowListCustom.cpp
trunk/Source/WebCore/dom/ExceptionCode.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (134645 => 134646)

--- trunk/Source/WebCore/ChangeLog	2012-11-14 20:19:15 UTC (rev 134645)
+++ trunk/Source/WebCore/ChangeLog	2012-11-14 20:22:41 UTC (rev 134646)
@@ -1,3 +1,74 @@
+2012-11-14  Joshua Bell  jsb...@chromium.org
+
+Rename NATIVE_TYPE_ERR to TypeError
+https://bugs.webkit.org/show_bug.cgi?id=102114
+
+Reviewed by Kentaro Hara.
+
+Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
+V8 binding code had colliding enum members, which required prefixing.
+
+No new tests - just internal renames.
+
+* Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
+(WebCore::IDBCursor::advance):
+(WebCore::IDBCursor::stringToDirection):

[webkit-changes] [134680] trunk/Source

2012-11-14 Thread jsbell
Title: [134680] trunk/Source








Revision 134680
Author jsb...@chromium.org
Date 2012-11-14 15:28:54 -0800 (Wed, 14 Nov 2012)


Log Message
IndexedDB: Remove magic numbers in record comparator, handle missing case
https://bugs.webkit.org/show_bug.cgi?id=102255

Reviewed by Tony Chang.

Source/WebCore:

For some ranges of metadata entries, a simple type byte comparison is sufficient
for the backing store comparator. In two places those ranges used magic numbers,
one of which was incorrect - which could lead to failed reads/writes.

Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'

* Modules/indexeddb/IDBLevelDBCoding.cpp:
(IDBLevelDBCoding):
(WebCore::IDBLevelDBCoding::compare):
* Modules/indexeddb/IDBLevelDBCoding.h:

Source/WebKit/chromium:

Add test keys for various metadata types.

* tests/IDBLevelDBCodingTest.cpp:
(IDBLevelDBCoding::TEST):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/tests/IDBLevelDBCodingTest.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (134679 => 134680)

--- trunk/Source/WebCore/ChangeLog	2012-11-14 23:27:11 UTC (rev 134679)
+++ trunk/Source/WebCore/ChangeLog	2012-11-14 23:28:54 UTC (rev 134680)
@@ -1,3 +1,21 @@
+2012-11-14  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Remove magic numbers in record comparator, handle missing case
+https://bugs.webkit.org/show_bug.cgi?id=102255
+
+Reviewed by Tony Chang.
+
+For some ranges of metadata entries, a simple type byte comparison is sufficient
+for the backing store comparator. In two places those ranges used magic numbers,
+one of which was incorrect - which could lead to failed reads/writes.
+
+Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
+
+* Modules/indexeddb/IDBLevelDBCoding.cpp:
+(IDBLevelDBCoding):
+(WebCore::IDBLevelDBCoding::compare):
+* Modules/indexeddb/IDBLevelDBCoding.h:
+
 2012-11-14  Dirk Schulze  k...@webkit.org
 
 Cleanup BasicShape blending check


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp (134679 => 134680)

--- trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp	2012-11-14 23:27:11 UTC (rev 134679)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp	2012-11-14 23:28:54 UTC (rev 134680)
@@ -61,6 +61,7 @@
 // database id, 0, 0, 1 = utf16 database name [DatabaseMetaDataKey]
 // database id, 0, 0, 2 = utf16 user version data [DatabaseMetaDataKey]
 // database id, 0, 0, 3 = maximum object store id ever allocated [DatabaseMetaDataKey]
+// database id, 0, 0, 4 = user integer version (var int) [DatabaseMetaDataKey]
 //
 //
 // Object store meta-data:
@@ -153,6 +154,7 @@
 
 static const unsigned char SchemaVersionTypeByte = 0;
 static const unsigned char MaxDatabaseIdTypeByte = 1;
+static const unsigned char MaxSimpleGlobalMetaDataTypeByte = 2; // Insert before this and increment.
 static const unsigned char DatabaseFreeListTypeByte = 100;
 static const unsigned char DatabaseNameTypeByte = 201;
 
@@ -857,9 +859,9 @@
 
 if (int x = typeByteA - typeByteB)
 return x;
-
-if (typeByteA = 1)
+if (typeByteA  MaxSimpleGlobalMetaDataTypeByte)
 return 0;
+
 if (typeByteA == DatabaseFreeListTypeByte)
 return compareDatabaseFreeListKey(a, b);
 if (typeByteA == DatabaseNameTypeByte)
@@ -875,9 +877,7 @@
 
 if (int x = typeByteA - typeByteB)
 return x;
-
-// FIXME: Replace this magic number. Should it account for UserIntVersion?
-if (typeByteA = 3)
+if (typeByteA  DatabaseMetaDataKey::MaxSimpleMetaDataType)
 return 0;
 
 if (typeByteA == ObjectStoreMetaDataTypeByte)
@@ -892,9 +892,6 @@
 return compareObjectStoreNamesKey(a, b);
 if (typeByteA == IndexNamesKeyTypeByte)
 return compareIndexNamesKey(a, b);
-
-// FIXME: Assert not reached here?
-return 0;
 }
 
 if (prefixA.type() == KeyPrefix::ObjectStoreData) {


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h (134679 => 134680)

--- trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h	2012-11-14 23:27:11 UTC (rev 134679)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h	2012-11-14 23:28:54 UTC (rev 134680)
@@ -146,7 +146,8 @@
 DatabaseName = 1,
 UserVersion = 2,
 MaxObjectStoreId = 3,
-UserIntVersion = 4
+UserIntVersion = 4,
+MaxSimpleMetaDataType = 5
 };
 
 static Vectorchar encode(int64_t databaseId, MetaDataType);


Modified: trunk/Source/WebKit/chromium/ChangeLog (134679 => 134680)

--- trunk/Source/WebKit/chromium/ChangeLog	2012-11-14 23:27:11 UTC (rev 134679)
+++ 

[webkit-changes] [134685] trunk/Source/WebCore

2012-11-14 Thread jsbell
Title: [134685] trunk/Source/WebCore








Revision 134685
Author jsb...@chromium.org
Date 2012-11-14 15:52:06 -0800 (Wed, 14 Nov 2012)


Log Message
IndexedDB: Indexing tests are flaky-crashing
https://bugs.webkit.org/show_bug.cgi?id=102283

Reviewed by Tony Chang.

Don't commit the transaction if there are outstanding pre-emptive events
from indexing operations.

Speculative fix for the flakiness.

* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::taskEventTimerFired):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (134684 => 134685)

--- trunk/Source/WebCore/ChangeLog	2012-11-14 23:43:25 UTC (rev 134684)
+++ trunk/Source/WebCore/ChangeLog	2012-11-14 23:52:06 UTC (rev 134685)
@@ -1,3 +1,18 @@
+2012-11-14  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Indexing tests are flaky-crashing
+https://bugs.webkit.org/show_bug.cgi?id=102283
+
+Reviewed by Tony Chang.
+
+Don't commit the transaction if there are outstanding pre-emptive events
+from indexing operations.
+
+Speculative fix for the flakiness.
+
+* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
+(WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
+
 2012-11-14  Tony Chang  t...@chromium.org
 
 Crash in flexbox when removing absolutely positioned children


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp (134684 => 134685)

--- trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp	2012-11-14 23:43:25 UTC (rev 134684)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp	2012-11-14 23:52:06 UTC (rev 134685)
@@ -262,7 +262,7 @@
 IDB_TRACE(IDBTransactionBackendImpl::taskEventTimerFired);
 ASSERT(m_state == Running);
 
-if (!m_pendingEvents  isTaskQueueEmpty()) {
+if (!m_pendingEvents  !m_pendingPreemptiveEvents  isTaskQueueEmpty()) {
 // The last task event has completed and the task
 // queue is empty. Commit the transaction.
 commit();






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [134439] trunk/LayoutTests

2012-11-13 Thread jsbell
Title: [134439] trunk/LayoutTests








Revision 134439
Author jsb...@chromium.org
Date 2012-11-13 10:45:34 -0800 (Tue, 13 Nov 2012)


Log Message
IndexedDB: storage/indexeddb/mozilla/add-twice-failure.html is flaky following r134252
https://bugs.webkit.org/show_bug.cgi?id=101996

Reviewed by Dimitri Glazkov.

Error being tested may cause transaction to abort, which could happen before or after
test output is captured. Prevent default behavior of the error so this doesn't happen.

* storage/indexeddb/mozilla/resources/add-twice-failure.js:
(addSecondExpectedError):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/mozilla/resources/add-twice-failure.js




Diff

Modified: trunk/LayoutTests/ChangeLog (134438 => 134439)

--- trunk/LayoutTests/ChangeLog	2012-11-13 18:26:38 UTC (rev 134438)
+++ trunk/LayoutTests/ChangeLog	2012-11-13 18:45:34 UTC (rev 134439)
@@ -1,3 +1,16 @@
+2012-11-13  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: storage/indexeddb/mozilla/add-twice-failure.html is flaky following r134252
+https://bugs.webkit.org/show_bug.cgi?id=101996
+
+Reviewed by Dimitri Glazkov.
+
+Error being tested may cause transaction to abort, which could happen before or after
+test output is captured. Prevent default behavior of the error so this doesn't happen.
+
+* storage/indexeddb/mozilla/resources/add-twice-failure.js:
+(addSecondExpectedError):
+
 2012-11-13  Erik Arvidsson  a...@chromium.org
 
 Update DOMException name: HierarchyRequestError


Modified: trunk/LayoutTests/storage/indexeddb/mozilla/resources/add-twice-failure.js (134438 => 134439)

--- trunk/LayoutTests/storage/indexeddb/mozilla/resources/add-twice-failure.js	2012-11-13 18:26:38 UTC (rev 134438)
+++ trunk/LayoutTests/storage/indexeddb/mozilla/resources/add-twice-failure.js	2012-11-13 18:45:34 UTC (rev 134439)
@@ -35,5 +35,6 @@
 function addSecondExpectedError()
 {
 shouldBe(event.target.errorCode, IDBDatabaseException.CONSTRAINT_ERR);
+event.preventDefault();
 finishJSTest();
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [134527] trunk/Source/WebCore

2012-11-13 Thread jsbell
Title: [134527] trunk/Source/WebCore








Revision 134527
Author jsb...@chromium.org
Date 2012-11-13 20:22:39 -0800 (Tue, 13 Nov 2012)


Log Message
[V8] Add missing ENABLE(SVG) test in header
https://bugs.webkit.org/show_bug.cgi?id=102143

Reviewed by Kentaro Hara.

Need to wrap the #include of a header that's only conditionally generated.

Fixes build error if compiling e.g. w/ GYP_DEFINES=enable_svg=0

* bindings/v8/custom/V8ElementCustom.cpp:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/bindings/v8/custom/V8ElementCustom.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (134526 => 134527)

--- trunk/Source/WebCore/ChangeLog	2012-11-14 04:21:41 UTC (rev 134526)
+++ trunk/Source/WebCore/ChangeLog	2012-11-14 04:22:39 UTC (rev 134527)
@@ -1,3 +1,16 @@
+2012-11-13  Joshua Bell  jsb...@chromium.org
+
+[V8] Add missing ENABLE(SVG) test in header
+https://bugs.webkit.org/show_bug.cgi?id=102143
+
+Reviewed by Kentaro Hara.
+
+Need to wrap the #include of a header that's only conditionally generated.
+
+Fixes build error if compiling e.g. w/ GYP_DEFINES=enable_svg=0
+
+* bindings/v8/custom/V8ElementCustom.cpp:
+
 2012-11-13  Jon Lee  jon...@apple.com
 
 Automatically run small plugins


Modified: trunk/Source/WebCore/bindings/v8/custom/V8ElementCustom.cpp (134526 => 134527)

--- trunk/Source/WebCore/bindings/v8/custom/V8ElementCustom.cpp	2012-11-14 04:21:41 UTC (rev 134526)
+++ trunk/Source/WebCore/bindings/v8/custom/V8ElementCustom.cpp	2012-11-14 04:22:39 UTC (rev 134527)
@@ -33,7 +33,10 @@
 
 #include V8Element.h
 #include V8HTMLElement.h
+
+#if ENABLE(SVG)
 #include V8SVGElement.h
+#endif
 
 namespace WebCore {
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [134529] trunk/Source/WebCore

2012-11-13 Thread jsbell
Title: [134529] trunk/Source/WebCore








Revision 134529
Author jsb...@chromium.org
Date 2012-11-13 20:33:39 -0800 (Tue, 13 Nov 2012)


Log Message
IndexedDB: Run multiple tasks per transaction tick
https://bugs.webkit.org/show_bug.cgi?id=97738

Reviewed by Tony Chang.

Process multiple tasks from the pending queue(s) when the timer fires. The
task may initiate new tasks that change which queue is active (e.g. indexing
operations) so the loop must re-check each tick which queue to use.

In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).

No new tests - just perf improvements, covered by (nearly) all existing IDB tests.

* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
(WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (134528 => 134529)

--- trunk/Source/WebCore/ChangeLog	2012-11-14 04:25:11 UTC (rev 134528)
+++ trunk/Source/WebCore/ChangeLog	2012-11-14 04:33:39 UTC (rev 134529)
@@ -1,3 +1,23 @@
+2012-11-13  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Run multiple tasks per transaction tick
+https://bugs.webkit.org/show_bug.cgi?id=97738
+
+Reviewed by Tony Chang.
+
+Process multiple tasks from the pending queue(s) when the timer fires. The
+task may initiate new tasks that change which queue is active (e.g. indexing
+operations) so the loop must re-check each tick which queue to use.
+
+In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
+in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
+
+No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
+
+* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
+(WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
+(WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
+
 2012-11-13  Elliott Sprehn  espr...@chromium.org
 
 Disable frame loading instead of throwing exceptions on subtree modifications in ChildFrameDisconnector


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp (134528 => 134529)

--- trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp	2012-11-14 04:25:11 UTC (rev 134528)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp	2012-11-14 04:33:39 UTC (rev 134529)
@@ -122,8 +122,7 @@
 
 // Run the abort tasks, if any.
 while (!m_abortTaskQueue.isEmpty()) {
-OwnPtrScriptExecutionContext::Task task(m_abortTaskQueue.first().release());
-m_abortTaskQueue.removeFirst();
+OwnPtrScriptExecutionContext::Task task(m_abortTaskQueue.takeFirst());
 task-performTask(0);
 }
 
@@ -246,15 +245,15 @@
 m_state = Running;
 }
 
-// Just process a single event here, in case the event itself
-// changes which queue should be processed next.
-TaskQueue taskQueue = m_pendingPreemptiveEvents ? m_preemptiveTaskQueue : m_taskQueue;
-if (!taskQueue.isEmpty()  m_state != Finished) {
+TaskQueue* taskQueue = m_pendingPreemptiveEvents ? m_preemptiveTaskQueue : m_taskQueue;
+while (!taskQueue-isEmpty()  m_state != Finished) {
 ASSERT(m_state == Running);
-OwnPtrScriptExecutionContext::Task task(taskQueue.first().release());
-taskQueue.removeFirst();
+OwnPtrScriptExecutionContext::Task task(taskQueue-takeFirst());
 m_pendingEvents++;
 task-performTask(0);
+
+// Event itself may change which queue should be processed next.
+taskQueue = m_pendingPreemptiveEvents ? m_preemptiveTaskQueue : m_taskQueue;
 }
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [134342] trunk/Source/WebCore

2012-11-12 Thread jsbell
Title: [134342] trunk/Source/WebCore








Revision 134342
Author jsb...@chromium.org
Date 2012-11-12 19:09:31 -0800 (Mon, 12 Nov 2012)


Log Message
IndexedDB: Use sequence instead of DOMString[] in IDL
https://bugs.webkit.org/show_bug.cgi?id=100539

Reviewed by Adam Barth.

In the binding layer, DOMString[] is implemented as an alias for DOMStringList.
WebIDL usage is tending towards sequenceDOMString anyway for inputs, so switch
to that. Note webkit.org/b/100537 which requires sequenceString instead.

Covered by storage/indexeddb/transaction-basics.html and objectstore-basics.html

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::transaction): DOMStringList - VectorString
* Modules/indexeddb/IDBDatabase.h:
(WebCore::IDBDatabase::transaction):
(IDBDatabase):
* Modules/indexeddb/IDBDatabase.idl: DOMString[] - sequenceString
* Modules/indexeddb/IDBObjectStore.cpp: Move trivial impls to header.
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::createIndex):
* Modules/indexeddb/IDBObjectStore.idl: DOMString[] - sequenceString

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.idl
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.h
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.idl




Diff

Modified: trunk/Source/WebCore/ChangeLog (134341 => 134342)

--- trunk/Source/WebCore/ChangeLog	2012-11-13 02:48:40 UTC (rev 134341)
+++ trunk/Source/WebCore/ChangeLog	2012-11-13 03:09:31 UTC (rev 134342)
@@ -1,3 +1,27 @@
+2012-11-12  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Use sequence instead of DOMString[] in IDL
+https://bugs.webkit.org/show_bug.cgi?id=100539
+
+Reviewed by Adam Barth.
+
+In the binding layer, DOMString[] is implemented as an alias for DOMStringList.
+WebIDL usage is tending towards sequenceDOMString anyway for inputs, so switch
+to that. Note webkit.org/b/100537 which requires sequenceString instead.
+
+Covered by storage/indexeddb/transaction-basics.html and objectstore-basics.html
+
+* Modules/indexeddb/IDBDatabase.cpp:
+(WebCore::IDBDatabase::transaction): DOMStringList - VectorString
+* Modules/indexeddb/IDBDatabase.h:
+(WebCore::IDBDatabase::transaction):
+(IDBDatabase):
+* Modules/indexeddb/IDBDatabase.idl: DOMString[] - sequenceString
+* Modules/indexeddb/IDBObjectStore.cpp: Move trivial impls to header.
+* Modules/indexeddb/IDBObjectStore.h:
+(WebCore::IDBObjectStore::createIndex):
+* Modules/indexeddb/IDBObjectStore.idl: DOMString[] - sequenceString
+
 2012-11-12  Anders Carlsson  ander...@apple.com
 
 Remove Leopard only gradient code


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp (134341 => 134342)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp	2012-11-13 02:48:40 UTC (rev 134341)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.cpp	2012-11-13 03:09:31 UTC (rev 134342)
@@ -226,11 +226,9 @@
 return request;
 }
 
-PassRefPtrIDBTransaction IDBDatabase::transaction(ScriptExecutionContext* context, PassRefPtrDOMStringList prpStoreNames, const String modeString, ExceptionCode ec)
+PassRefPtrIDBTransaction IDBDatabase::transaction(ScriptExecutionContext* context, const VectorString scope, const String modeString, ExceptionCode ec)
 {
-RefPtrDOMStringList storeNames = prpStoreNames;
-ASSERT(storeNames.get());
-if (storeNames-isEmpty()) {
+if (!scope.size()) {
 ec = IDBDatabaseException::IDB_INVALID_ACCESS_ERR;
 return 0;
 }
@@ -245,8 +243,8 @@
 }
 
 Vectorint64_t objectStoreIds;
-for (size_t i = 0; i  storeNames-length(); ++i) {
-int64_t objectStoreId = findObjectStoreId(storeNames-item(i));
+for (size_t i = 0; i  scope.size(); ++i) {
+int64_t objectStoreId = findObjectStoreId(scope[i]);
 if (objectStoreId == IDBObjectStoreMetadata::InvalidId) {
 ec = IDBDatabaseException::IDB_NOT_FOUND_ERR;
 return 0;
@@ -263,7 +261,7 @@
 ASSERT(ec);
 return 0;
 }
-RefPtrIDBTransaction transaction = IDBTransaction::create(context, transactionBackend, *storeNames, mode, this);
+RefPtrIDBTransaction transaction = IDBTransaction::create(context, transactionBackend, scope, mode, this);
 transactionBackend-setCallbacks(transaction.get());
 return transaction.release();
 }


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h (134341 => 134342)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h	2012-11-13 02:48:40 UTC (rev 134341)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h	2012-11-13 03:09:31 UTC (rev 134342)
@@ -64,7 +64,8 @@
 PassRefPtrDOMStringList objectStoreNames() const;
 
 PassRefPtrIDBObjectStore 

[webkit-changes] [134343] trunk/LayoutTests

2012-11-12 Thread jsbell
Title: [134343] trunk/LayoutTests








Revision 134343
Author jsb...@chromium.org
Date 2012-11-12 19:38:47 -0800 (Mon, 12 Nov 2012)


Log Message
IndexedDB: storage/indexeddb/cursor-prev-no-duplicate.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=101990

Reviewed by Tony Chang.

Race condition in test leads to flaky behavior. Refactor test to remove flake
and clean up output.

* storage/indexeddb/cursor-prev-no-duplicate-expected.txt:
* storage/indexeddb/resources/cursor-prev-no-duplicate.js:
(testFarRangeCursor_closed):
(.trans.oncomplete):
(.storeReq.onsuccess):
(runTest):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/cursor-prev-no-duplicate-expected.txt
trunk/LayoutTests/storage/indexeddb/resources/cursor-prev-no-duplicate.js




Diff

Modified: trunk/LayoutTests/ChangeLog (134342 => 134343)

--- trunk/LayoutTests/ChangeLog	2012-11-13 03:09:31 UTC (rev 134342)
+++ trunk/LayoutTests/ChangeLog	2012-11-13 03:38:47 UTC (rev 134343)
@@ -1,3 +1,20 @@
+2012-11-12  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: storage/indexeddb/cursor-prev-no-duplicate.html is flaky
+https://bugs.webkit.org/show_bug.cgi?id=101990
+
+Reviewed by Tony Chang.
+
+Race condition in test leads to flaky behavior. Refactor test to remove flake
+and clean up output.
+
+* storage/indexeddb/cursor-prev-no-duplicate-expected.txt:
+* storage/indexeddb/resources/cursor-prev-no-duplicate.js:
+(testFarRangeCursor_closed):
+(.trans.oncomplete):
+(.storeReq.onsuccess):
+(runTest):
+
 2012-11-12  Hayato Ito  hay...@chromium.org
 
 Unreviewed, gardening.


Modified: trunk/LayoutTests/storage/indexeddb/cursor-prev-no-duplicate-expected.txt (134342 => 134343)

--- trunk/LayoutTests/storage/indexeddb/cursor-prev-no-duplicate-expected.txt	2012-11-13 03:09:31 UTC (rev 134342)
+++ trunk/LayoutTests/storage/indexeddb/cursor-prev-no-duplicate-expected.txt	2012-11-13 03:38:47 UTC (rev 134343)
@@ -20,103 +20,90 @@
 store.put({sorted: 10, value: 444}, 17)
 store.put({sorted: 10, value: 555}, 16)
 store.put({sorted: 10, value: 666}, 15)
+
 testFarRangeCursor: upper bound is well out of range, results always the same, whether open or closed
 storeReq = store.openCursor(IDBKeyRange.upperBound(7, false), 'prev')
-
-Testing: store.openCursor(IDBKeyRange.upperBound(7, false), 'prev')
 PASS cursor.key is 3
 PASS cursor.value.value is 333
-storeReq = store.openCursor(IDBKeyRange.upperBound(7, true), 'prev')
 DONE
 
-Testing: store.openCursor(IDBKeyRange.upperBound(7, true), 'prev')
+storeReq = store.openCursor(IDBKeyRange.upperBound(7, true), 'prev')
 PASS cursor.key is 3
 PASS cursor.value.value is 333
-storeReq = index.openCursor(IDBKeyRange.upperBound(7, false), 'prev')
 DONE
 
-Testing: index.openCursor(IDBKeyRange.upperBound(7, false), 'prev')
+storeReq = index.openCursor(IDBKeyRange.upperBound(7, false), 'prev')
 PASS cursor.key is 3
 PASS cursor.value.value is 111
 PASS cursor.primaryKey is 1
-storeReq = index.openCursor(IDBKeyRange.upperBound(7, true), 'prev')
 DONE
 
-Testing: index.openCursor(IDBKeyRange.upperBound(7, true), 'prev')
+storeReq = index.openCursor(IDBKeyRange.upperBound(7, true), 'prev')
 PASS cursor.key is 3
 PASS cursor.value.value is 111
 PASS cursor.primaryKey is 1
-storeReq = index.openKeyCursor(IDBKeyRange.upperBound(7, false), 'prev')
 DONE
 
-Testing: index.openKeyCursor(IDBKeyRange.upperBound(7, false), 'prev')
+storeReq = index.openKeyCursor(IDBKeyRange.upperBound(7, false), 'prev')
 PASS cursor.key is 3
 PASS cursor.primaryKey is 1
-storeReq = index.openKeyCursor(IDBKeyRange.upperBound(7, true), 'prev')
 DONE
 
-Testing: index.openKeyCursor(IDBKeyRange.upperBound(7, true), 'prev')
+storeReq = index.openKeyCursor(IDBKeyRange.upperBound(7, true), 'prev')
 PASS cursor.key is 3
 PASS cursor.primaryKey is 1
-storeReq = store.openCursor(IDBKeyRange.upperBound(3, false), 'prev')
 DONE
 
-Testing: store.openCursor(IDBKeyRange.upperBound(3, false), 'prev')
+storeReq = store.openCursor(IDBKeyRange.upperBound(3, false), 'prev')
 PASS cursor.key is 3
 PASS cursor.value.value is 333
-storeReq = store.openCursor(IDBKeyRange.upperBound(3, true), 'prev')
 DONE
 
-Testing: store.openCursor(IDBKeyRange.upperBound(3, true), 'prev')
+storeReq = store.openCursor(IDBKeyRange.upperBound(3, true), 'prev')
 PASS cursor.key is 2
 PASS cursor.value.value is 222
-storeReq = index.openCursor(IDBKeyRange.upperBound(3, false), 'prev')
 DONE
 
-Testing: index.openCursor(IDBKeyRange.upperBound(3, false), 'prev')
+storeReq = index.openCursor(IDBKeyRange.upperBound(3, false), 'prev')
 PASS cursor.key is 3
 PASS cursor.value.value is 111
 PASS cursor.primaryKey is 1
-storeReq = index.openCursor(IDBKeyRange.upperBound(3, true), 'prev')
 DONE
 
-Testing: index.openCursor(IDBKeyRange.upperBound(3, true), 'prev')
+storeReq = index.openCursor(IDBKeyRange.upperBound(3, true), 'prev')
 PASS cursor.key is 2
 PASS cursor.value.value 

[webkit-changes] [134076] trunk/LayoutTests

2012-11-09 Thread jsbell
Title: [134076] trunk/LayoutTests








Revision 134076
Author jsb...@chromium.org
Date 2012-11-09 09:16:30 -0800 (Fri, 09 Nov 2012)


Log Message
[Chromium] Unreviewed gardening - rebaseline a handful of image tests for chromium-mac-lion.

* platform/chromium-mac-lion/platform/chromium/compositing/layout-width-change-expected.png: Added.
* platform/chromium-mac-lion/platform/chromium/compositing/video-frame-size-change-expected.png: Added.
* platform/chromium-mac-lion/tables/mozilla_expected_failures/core/backgrounds-expected.png: Added.
* platform/chromium-mac-lion/tables/mozilla_expected_failures/core/captions1-expected.png: Added.
* platform/chromium-mac-lion/tables/mozilla_expected_failures/core/captions2-expected.png: Added.
* platform/chromium-mac-lion/tables/mozilla_expected_failures/core/captions3-expected.png: Added.
* platform/chromium-mac-lion/tables/mozilla_expected_failures/marvin/backgr_border-table-cell-expected.png: Added.
* platform/chromium-mac-lion/tables/mozilla_expected_failures/marvin/backgr_border-table-column-group-expected.png: Added.

Modified Paths

trunk/LayoutTests/ChangeLog


Added Paths

trunk/LayoutTests/platform/chromium-mac-lion/platform/chromium/compositing/layout-width-change-expected.png
trunk/LayoutTests/platform/chromium-mac-lion/platform/chromium/compositing/video-frame-size-change-expected.png
trunk/LayoutTests/platform/chromium-mac-lion/tables/mozilla_expected_failures/core/backgrounds-expected.png
trunk/LayoutTests/platform/chromium-mac-lion/tables/mozilla_expected_failures/core/captions1-expected.png
trunk/LayoutTests/platform/chromium-mac-lion/tables/mozilla_expected_failures/core/captions2-expected.png
trunk/LayoutTests/platform/chromium-mac-lion/tables/mozilla_expected_failures/core/captions3-expected.png
trunk/LayoutTests/platform/chromium-mac-lion/tables/mozilla_expected_failures/marvin/backgr_border-table-cell-expected.png
trunk/LayoutTests/platform/chromium-mac-lion/tables/mozilla_expected_failures/marvin/backgr_border-table-column-group-expected.png




Diff

Modified: trunk/LayoutTests/ChangeLog (134075 => 134076)

--- trunk/LayoutTests/ChangeLog	2012-11-09 17:09:06 UTC (rev 134075)
+++ trunk/LayoutTests/ChangeLog	2012-11-09 17:16:30 UTC (rev 134076)
@@ -1,3 +1,16 @@
+2012-11-09  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening - rebaseline a handful of image tests for chromium-mac-lion.
+
+* platform/chromium-mac-lion/platform/chromium/compositing/layout-width-change-expected.png: Added.
+* platform/chromium-mac-lion/platform/chromium/compositing/video-frame-size-change-expected.png: Added.
+* platform/chromium-mac-lion/tables/mozilla_expected_failures/core/backgrounds-expected.png: Added.
+* platform/chromium-mac-lion/tables/mozilla_expected_failures/core/captions1-expected.png: Added.
+* platform/chromium-mac-lion/tables/mozilla_expected_failures/core/captions2-expected.png: Added.
+* platform/chromium-mac-lion/tables/mozilla_expected_failures/core/captions3-expected.png: Added.
+* platform/chromium-mac-lion/tables/mozilla_expected_failures/marvin/backgr_border-table-cell-expected.png: Added.
+* platform/chromium-mac-lion/tables/mozilla_expected_failures/marvin/backgr_border-table-column-group-expected.png: Added.
+
 2012-11-09  Jussi Kukkonen  jussi.kukko...@intel.com
 
 [EFL] Rebaseline svg tests after 99870


Added: trunk/LayoutTests/platform/chromium-mac-lion/platform/chromium/compositing/layout-width-change-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-mac-lion/platform/chromium/compositing/layout-width-change-expected.png
___

Added: svn:mime-type

Added: trunk/LayoutTests/platform/chromium-mac-lion/platform/chromium/compositing/video-frame-size-change-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-mac-lion/platform/chromium/compositing/video-frame-size-change-expected.png
___

Added: svn:mime-type

Added: trunk/LayoutTests/platform/chromium-mac-lion/tables/mozilla_expected_failures/core/backgrounds-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-mac-lion/tables/mozilla_expected_failures/core/backgrounds-expected.png
___

Added: svn:mime-type

Added: trunk/LayoutTests/platform/chromium-mac-lion/tables/mozilla_expected_failures/core/captions1-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-mac-lion/tables/mozilla_expected_failures/core/captions1-expected.png
___

Added: svn:mime-type

Added: trunk/LayoutTests/platform/chromium-mac-lion/tables/mozilla_expected_failures/core/captions2-expected.png

(Binary files 

[webkit-changes] [134091] trunk/Source/WebCore

2012-11-09 Thread jsbell
Title: [134091] trunk/Source/WebCore








Revision 134091
Author jsb...@chromium.org
Date 2012-11-09 11:27:35 -0800 (Fri, 09 Nov 2012)


Log Message
[Chromium] Unreviewed gardening. Fix chromium-win builds following r134082

* WebCore.gypi:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/WebCore.gypi




Diff

Modified: trunk/Source/WebCore/ChangeLog (134090 => 134091)

--- trunk/Source/WebCore/ChangeLog	2012-11-09 19:15:32 UTC (rev 134090)
+++ trunk/Source/WebCore/ChangeLog	2012-11-09 19:27:35 UTC (rev 134091)
@@ -1,3 +1,9 @@
+2012-11-09  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening. Fix chromium-win builds following r134082
+
+* WebCore.gypi:
+
 2012-11-09  Dan Carney  dcar...@google.com
 
 [V8] Remove ScriptController::windowShell()


Modified: trunk/Source/WebCore/WebCore.gypi (134090 => 134091)

--- trunk/Source/WebCore/WebCore.gypi	2012-11-09 19:15:32 UTC (rev 134090)
+++ trunk/Source/WebCore/WebCore.gypi	2012-11-09 19:27:35 UTC (rev 134091)
@@ -312,7 +312,6 @@
 'platform/PlatformMouseEvent.h',
 'platform/PlatformScreen.h',
 'platform/PlatformStrategies.h',
-'platform/PlatformCookieJar.h',
 'platform/PlatformWheelEvent.h',
 'platform/PopupMenu.h',
 'platform/PopupMenuClient.h',
@@ -479,6 +478,7 @@
 'platform/network/HTTPHeaderMap.h',
 'platform/network/MIMEHeader.h',
 'platform/network/NetworkingContext.h',
+'platform/network/PlatformCookieJar.h',
 'platform/network/ProtectionSpace.h',
 'platform/network/ProtectionSpaceHash.h',
 'platform/network/ProxyServer.h',






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [134110] trunk/LayoutTests

2012-11-09 Thread jsbell
Title: [134110] trunk/LayoutTests








Revision 134110
Author jsb...@chromium.org
Date 2012-11-09 14:00:28 -0800 (Fri, 09 Nov 2012)


Log Message
[Chromium] Unreviewed gardening, failing new hidpi tests in r134099/r134100

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (134109 => 134110)

--- trunk/LayoutTests/ChangeLog	2012-11-09 21:53:27 UTC (rev 134109)
+++ trunk/LayoutTests/ChangeLog	2012-11-09 22:00:28 UTC (rev 134110)
@@ -1,3 +1,9 @@
+2012-11-09  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening, failing new hidpi tests in r134099/r134100
+
+* platform/chromium/TestExpectations:
+
 2012-11-09  Dirk Pranke  dpra...@chromium.org
 
 Unreviewed, last few chromium-mac-mountainlion expectations cleaned up.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (134109 => 134110)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-09 21:53:27 UTC (rev 134109)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-09 22:00:28 UTC (rev 134110)
@@ -4282,3 +4282,8 @@
 webkit.org/b/101547 svg/custom/hit-test-unclosed-subpaths.svg [ ImageOnlyFailure ]
 # The following test has prior expectations which were disabled. Re-enable when removing this:
 webkit.org/b/101547 svg/custom/hit-test-with-br.xhtml [ ImageOnlyFailure ]
+
+webkit.org/b/101794 fast/canvas/canvas-as-image-hidpi.html [ ImageOnlyFailure ]
+webkit.org/b/101794 platform/chromium/virtual/gpu/fast/canvas/canvas-as-image-hidpi.html [ ImageOnlyFailure ]
+webkit.org/b/101794 fast/canvas/canvas-resize-reset-pixelRatio.html [ Failure ]
+webkit.org/b/101794 platform/chromium/virtual/gpu/fast/canvas/canvas-resize-reset-pixelRatio.html [ Failure ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [134115] trunk/LayoutTests

2012-11-09 Thread jsbell
Title: [134115] trunk/LayoutTests








Revision 134115
Author jsb...@chromium.org
Date 2012-11-09 14:31:11 -0800 (Fri, 09 Nov 2012)


Log Message
[Chromium] Unreviewed gardening. Updated expectations following 134112.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (134114 => 134115)

--- trunk/LayoutTests/ChangeLog	2012-11-09 22:28:47 UTC (rev 134114)
+++ trunk/LayoutTests/ChangeLog	2012-11-09 22:31:11 UTC (rev 134115)
@@ -1,3 +1,9 @@
+2012-11-09  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening. Updated expectations following 134112.
+
+* platform/chromium/TestExpectations:
+
 2012-11-09  Slavomir Kaslev  skas...@google.com
 
 [chromium] Rebaselining software compositor tests.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (134114 => 134115)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-09 22:28:47 UTC (rev 134114)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-09 22:31:11 UTC (rev 134115)
@@ -3448,7 +3448,7 @@
 webkit.org/b/86909 [ Win ] http/tests/inspector/network/network-content-replacement-xhr.html [ Pass Timeout ]
 webkit.org/b/86909 [ Win Debug ] http/tests/security/referrer-policy-redirect-link.html [ Pass Timeout ]
 webkit.org/b/86909 [ Win Debug ] platform/chromium/virtual/gpu/fast/canvas/imagedata-contains-uint8clampedarray.html [ Pass Timeout ]
-#webkit.org/b/86909 [ Win ] platform/chromium/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint.html [ Pass Slow ]
+webkit.org/b/86909 [ Win ] platform/chromium/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint.html [ Pass Slow ]
 
 # Ref-tests can't have platform specific results.
 webkit.org/b/87175 fast/regions/floats-basic-in-variable-width-regions.html
@@ -4202,13 +4202,6 @@
 
 webkit.org/b/101618 [ Win7 Debug ] http/tests/inspector/indexeddb/database-data.html [ Crash ]
 
-# Failures following Chromium r166632:
-# The following test has prior expectations which were disabled. Re-enable when removing this:
-crbug.com/160075 fast/canvas/webgl/webgl-composite-modes-repaint.html [ ImageOnlyFailure ]
-crbug.com/160075 fast/canvas/webgl/webgl-composite-modes.html [ ImageOnlyFailure ]
-crbug.com/160075 platform/chromium/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint.html [ ImageOnlyFailure ]
-crbug.com/160075 platform/chromium/virtual/gpu/fast/canvas/webgl/webgl-composite-modes.html [ ImageOnlyFailure ]
-
 # Failures following r133840:
 webkit.org/b/101547 fast/repaint/4774354.html [ ImageOnlyFailure ]
 webkit.org/b/101547 fast/repaint/caret-outside-block.html [ ImageOnlyFailure ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [134123] trunk/LayoutTests

2012-11-09 Thread jsbell
Title: [134123] trunk/LayoutTests








Revision 134123
Author jsb...@chromium.org
Date 2012-11-09 15:40:16 -0800 (Fri, 09 Nov 2012)


Log Message
[Chromium] Unreviewed gardening. Widen cross-fade-invalidation expectation to include all platforms.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (134122 => 134123)

--- trunk/LayoutTests/ChangeLog	2012-11-09 23:37:23 UTC (rev 134122)
+++ trunk/LayoutTests/ChangeLog	2012-11-09 23:40:16 UTC (rev 134123)
@@ -1,3 +1,9 @@
+2012-11-09  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening. Widen cross-fade-invalidation expectation to include all platforms.
+
+* platform/chromium/TestExpectations:
+
 2012-11-09  Raphael Kubo da Costa  raphael.kubo.da.co...@intel.com
 
 [EFL] Unreviewed gardening.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (134122 => 134123)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-09 23:37:23 UTC (rev 134122)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-09 23:40:16 UTC (rev 134123)
@@ -3076,7 +3076,7 @@
 
 webkit.org/b/76488 css3/images/cross-fade-background-size.html [ Failure ImageOnlyFailure ]
 
-webkit.org/b/81542 [ SnowLeopard ] css3/images/cross-fade-invalidation.html [ ImageOnlyFailure Pass ]
+webkit.org/b/81542 css3/images/cross-fade-invalidation.html [ ImageOnlyFailure Pass ]
 
 webkit.org/b/76727 fast/multicol/span/span-as-immediate-child-property-removal.html [ Failure ImageOnlyFailure Pass ]
 webkit.org/b/76727 fast/multicol/span/span-as-immediate-columns-child-removal.html [ Failure ImageOnlyFailure Pass ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [134124] trunk/LayoutTests

2012-11-09 Thread jsbell
Title: [134124] trunk/LayoutTests








Revision 134124
Author jsb...@chromium.org
Date 2012-11-09 15:46:00 -0800 (Fri, 09 Nov 2012)


Log Message
[Chromium] Unreviewed gardening. A few more baselines following 134112.

* platform/chromium-mac-lion/platform/chromium/virtual/softwarecompositing/overflow/overflow-positioning-expected.png: Added.
* platform/chromium-mac-snowleopard/platform/chromium/virtual/softwarecompositing/overflow/overflow-positioning-expected.png: Added.
* platform/chromium-mac-snowleopard/platform/chromium/virtual/softwarecompositing/reflections/reflection-opacity-expected.png: Added.
* platform/chromium-mac/platform/chromium/virtual/softwarecompositing/overflow/clip-content-under-overflow-controls-expected.png: Added.
* platform/chromium-mac/platform/chromium/virtual/softwarecompositing/overflow/overflow-positioning-expected.png: Added.
* platform/chromium-mac/platform/chromium/virtual/softwarecompositing/reflections/reflection-opacity-expected.png: Added.
* platform/chromium-mac/platform/chromium/virtual/softwarecompositing/repaint/newly-composited-on-scroll-expected.png: Added.
* platform/chromium-win/platform/chromium/virtual/softwarecompositing/absolute-position-changed-with-composited-parent-layer-expected.png: Added.
* platform/chromium-win/platform/chromium/virtual/softwarecompositing/iframes/composited-iframe-alignment-expected.png: Added.

Modified Paths

trunk/LayoutTests/ChangeLog


Added Paths

trunk/LayoutTests/platform/chromium-mac/platform/chromium/virtual/softwarecompositing/overflow/
trunk/LayoutTests/platform/chromium-mac/platform/chromium/virtual/softwarecompositing/overflow/clip-content-under-overflow-controls-expected.png
trunk/LayoutTests/platform/chromium-mac/platform/chromium/virtual/softwarecompositing/overflow/overflow-positioning-expected.png
trunk/LayoutTests/platform/chromium-mac/platform/chromium/virtual/softwarecompositing/reflections/reflection-opacity-expected.png
trunk/LayoutTests/platform/chromium-mac/platform/chromium/virtual/softwarecompositing/repaint/newly-composited-on-scroll-expected.png
trunk/LayoutTests/platform/chromium-mac-lion/platform/chromium/virtual/softwarecompositing/overflow/
trunk/LayoutTests/platform/chromium-mac-lion/platform/chromium/virtual/softwarecompositing/overflow/overflow-positioning-expected.png
trunk/LayoutTests/platform/chromium-mac-snowleopard/platform/chromium/virtual/softwarecompositing/overflow/
trunk/LayoutTests/platform/chromium-mac-snowleopard/platform/chromium/virtual/softwarecompositing/overflow/overflow-positioning-expected.png
trunk/LayoutTests/platform/chromium-mac-snowleopard/platform/chromium/virtual/softwarecompositing/reflections/reflection-opacity-expected.png
trunk/LayoutTests/platform/chromium-win/platform/chromium/virtual/softwarecompositing/absolute-position-changed-with-composited-parent-layer-expected.png
trunk/LayoutTests/platform/chromium-win/platform/chromium/virtual/softwarecompositing/iframes/
trunk/LayoutTests/platform/chromium-win/platform/chromium/virtual/softwarecompositing/iframes/composited-iframe-alignment-expected.png




Diff

Modified: trunk/LayoutTests/ChangeLog (134123 => 134124)

--- trunk/LayoutTests/ChangeLog	2012-11-09 23:40:16 UTC (rev 134123)
+++ trunk/LayoutTests/ChangeLog	2012-11-09 23:46:00 UTC (rev 134124)
@@ -1,5 +1,19 @@
 2012-11-09  Joshua Bell  jsb...@chromium.org
 
+[Chromium] Unreviewed gardening. A few more baselines following 134112.
+
+* platform/chromium-mac-lion/platform/chromium/virtual/softwarecompositing/overflow/overflow-positioning-expected.png: Added.
+* platform/chromium-mac-snowleopard/platform/chromium/virtual/softwarecompositing/overflow/overflow-positioning-expected.png: Added.
+* platform/chromium-mac-snowleopard/platform/chromium/virtual/softwarecompositing/reflections/reflection-opacity-expected.png: Added.
+* platform/chromium-mac/platform/chromium/virtual/softwarecompositing/overflow/clip-content-under-overflow-controls-expected.png: Added.
+* platform/chromium-mac/platform/chromium/virtual/softwarecompositing/overflow/overflow-positioning-expected.png: Added.
+* platform/chromium-mac/platform/chromium/virtual/softwarecompositing/reflections/reflection-opacity-expected.png: Added.
+* platform/chromium-mac/platform/chromium/virtual/softwarecompositing/repaint/newly-composited-on-scroll-expected.png: Added.
+* platform/chromium-win/platform/chromium/virtual/softwarecompositing/absolute-position-changed-with-composited-parent-layer-expected.png: Added.
+* platform/chromium-win/platform/chromium/virtual/softwarecompositing/iframes/composited-iframe-alignment-expected.png: Added.
+
+2012-11-09  Joshua Bell  jsb...@chromium.org
+
 [Chromium] Unreviewed gardening. Widen cross-fade-invalidation expectation to include all platforms.
 
 * platform/chromium/TestExpectations:


Added: 

[webkit-changes] [134136] trunk/LayoutTests

2012-11-09 Thread jsbell
Title: [134136] trunk/LayoutTests








Revision 134136
Author jsb...@chromium.org
Date 2012-11-09 16:46:06 -0800 (Fri, 09 Nov 2012)


Log Message
[Chromium] Unreviewed gardening. One more baseline following 134112.

* platform/chromium-linux/platform/chromium/virtual/softwarecompositing/iframes/composited-iframe-alignment-expected.png: Added.

Modified Paths

trunk/LayoutTests/ChangeLog


Added Paths

trunk/LayoutTests/platform/chromium-linux/platform/chromium/virtual/softwarecompositing/iframes/
trunk/LayoutTests/platform/chromium-linux/platform/chromium/virtual/softwarecompositing/iframes/composited-iframe-alignment-expected.png




Diff

Modified: trunk/LayoutTests/ChangeLog (134135 => 134136)

--- trunk/LayoutTests/ChangeLog	2012-11-10 00:16:52 UTC (rev 134135)
+++ trunk/LayoutTests/ChangeLog	2012-11-10 00:46:06 UTC (rev 134136)
@@ -1,3 +1,9 @@
+2012-11-09  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening. One more baseline following 134112.
+
+* platform/chromium-linux/platform/chromium/virtual/softwarecompositing/iframes/composited-iframe-alignment-expected.png: Added.
+
 2012-11-09  Tien-Ren Chen  trc...@chromium.org
 
 Correct hit-test point scaling for document.elementFromPoint


Added: trunk/LayoutTests/platform/chromium-linux/platform/chromium/virtual/softwarecompositing/iframes/composited-iframe-alignment-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-linux/platform/chromium/virtual/softwarecompositing/iframes/composited-iframe-alignment-expected.png
___

Added: svn:mime-type




___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133909] trunk/Source/WebCore

2012-11-08 Thread jsbell
Title: [133909] trunk/Source/WebCore








Revision 133909
Author jsb...@chromium.org
Date 2012-11-08 09:35:11 -0800 (Thu, 08 Nov 2012)


Log Message
Unreviewed, rolling out r133892.
http://trac.webkit.org/changeset/133892
https://bugs.webkit.org/show_bug.cgi?id=101617

Compile failures on mac, android, linux (Requested by
jsbell|gardener on #webkit).

Patch by Sheriff Bot webkit.review@gmail.com on 2012-11-08

* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::domDataStore):
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::getCachedWrapper):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp
trunk/Source/WebCore/bindings/v8/DOMWrapperWorld.h
trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (133908 => 133909)

--- trunk/Source/WebCore/ChangeLog	2012-11-08 17:28:38 UTC (rev 133908)
+++ trunk/Source/WebCore/ChangeLog	2012-11-08 17:35:11 UTC (rev 133909)
@@ -1,3 +1,20 @@
+2012-11-08  Sheriff Bot  webkit.review@gmail.com
+
+Unreviewed, rolling out r133892.
+http://trac.webkit.org/changeset/133892
+https://bugs.webkit.org/show_bug.cgi?id=101617
+
+Compile failures on mac, android, linux (Requested by
+    jsbell|gardener on #webkit).
+
+* bindings/v8/DOMDataStore.cpp:
+(WebCore::DOMDataStore::current):
+* bindings/v8/DOMWrapperWorld.h:
+(WebCore::DOMWrapperWorld::domDataStore):
+(WebCore::DOMWrapperWorld::DOMWrapperWorld):
+* bindings/v8/V8DOMWrapper.h:
+(WebCore::V8DOMWrapper::getCachedWrapper):
+
 2012-11-08  Andrey Adaikin  aand...@chromium.org
 
 Web Inspector: [Canvas] UI iterations: image on the top, auto replay


Modified: trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp (133908 => 133909)

--- trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp	2012-11-08 17:28:38 UTC (rev 133908)
+++ trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp	2012-11-08 17:35:11 UTC (rev 133909)
@@ -54,14 +54,14 @@
 
 DOMDataStore* DOMDataStore::current(v8::Isolate* isolate)
 {
-DEFINE_STATIC_LOCAL(DOMDataStore, mainWorldDOMDataStore, (MainWorld));
+DEFINE_STATIC_LOCAL(DOMDataStore, defaultStore, (MainWorld));
 V8PerIsolateData* data = "" ? V8PerIsolateData::from(isolate) : V8PerIsolateData::current();
 if (UNLIKELY(!!data-domDataStore()))
 return data-domDataStore();
 V8DOMWindowShell* context = V8DOMWindowShell::getEntered();
 if (UNLIKELY(!!context))
-return context-world()-isolatedWorldDOMDataStore();
-return mainWorldDOMDataStore;
+return context-world()-domDataStore();
+return defaultStore;
 }
 
 void DOMDataStore::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const


Modified: trunk/Source/WebCore/bindings/v8/DOMWrapperWorld.h (133908 => 133909)

--- trunk/Source/WebCore/bindings/v8/DOMWrapperWorld.h	2012-11-08 17:28:38 UTC (rev 133908)
+++ trunk/Source/WebCore/bindings/v8/DOMWrapperWorld.h	2012-11-08 17:35:11 UTC (rev 133909)
@@ -78,9 +78,9 @@
 bool isIsolatedWorld() { return isIsolatedWorldId(m_worldId); }
 int worldId() const { return m_worldId; }
 int extensionGroup() const { return m_extensionGroup; }
-DOMDataStore* isolatedWorldDOMDataStore() const
+DOMDataStore* domDataStore() const
 {
-ASSERT(isIsolatedWorld());
+ASSERT(m_worldId != uninitializedWorldId);
 return m_domDataStore.get();
 }
 void deref()
@@ -98,7 +98,7 @@
 : m_worldId(worldId)
 , m_extensionGroup(extensionGroup)
 {
-if (isIsolatedWorld())
+if (worldId != uninitializedWorldId)
 m_domDataStore = adoptPtr(new DOMDataStore(DOMDataStore::IsolatedWorld));
 }
 


Modified: trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h (133908 => 133909)

--- trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h	2012-11-08 17:28:38 UTC (rev 133908)
+++ trunk/Source/WebCore/bindings/v8/V8DOMWrapper.h	2012-11-08 17:35:11 UTC (rev 133909)
@@ -122,7 +122,7 @@
 if (LIKELY(!context))
 return node-wrapper();
 
-return context-world()-isolatedWorldDOMDataStore()-get(node);
+return context-world()-domDataStore()-get(node);
 }
 
 private:






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133911] trunk/LayoutTests

2012-11-08 Thread jsbell
Title: [133911] trunk/LayoutTests








Revision 133911
Author jsb...@chromium.org
Date 2012-11-08 09:44:51 -0800 (Thu, 08 Nov 2012)


Log Message
[Chromium] http/tests/inspector/indexeddb/database-data.html ASSERT on Win7 following r133855
https://bugs.webkit.org/show_bug.cgi?id=101618

Unreviewed gardening.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133910 => 133911)

--- trunk/LayoutTests/ChangeLog	2012-11-08 17:43:20 UTC (rev 133910)
+++ trunk/LayoutTests/ChangeLog	2012-11-08 17:44:51 UTC (rev 133911)
@@ -1,3 +1,12 @@
+2012-11-08  Joshua Bell  jsb...@chromium.org
+
+[Chromium] http/tests/inspector/indexeddb/database-data.html ASSERT on Win7 following r133855
+https://bugs.webkit.org/show_bug.cgi?id=101618
+
+Unreviewed gardening.
+
+* platform/chromium/TestExpectations:
+
 2012-11-08  Emil A Eklund  e...@chromium.org
 
 Unreviewed chromium mac rebaseline for r101497.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133910 => 133911)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-08 17:43:20 UTC (rev 133910)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-08 17:44:51 UTC (rev 133911)
@@ -4177,3 +4177,5 @@
 webkit.org/b/101408 platform/chromium/fast/forms/calendar-picker/calendar-picker-key-operations.html [ Failure Pass ]
 
 webkit.org/b/101539 [ Linux Win ] editing/execCommand/switch-list-type-with-orphaned-li.html [ Failure ]
+
+webkit.org/b/101618 [ Win7 Debug ] http/tests/inspector/indexeddb/database-data.html [ Crash ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133912] trunk/LayoutTests

2012-11-08 Thread jsbell
Title: [133912] trunk/LayoutTests








Revision 133912
Author jsb...@chromium.org
Date 2012-11-08 09:51:01 -0800 (Thu, 08 Nov 2012)


Log Message
[Chromium] Widen flaky crash expectation fast/workers/worker-multi-startup.html to include linux.

Unreviewed gardening.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133911 => 133912)

--- trunk/LayoutTests/ChangeLog	2012-11-08 17:44:51 UTC (rev 133911)
+++ trunk/LayoutTests/ChangeLog	2012-11-08 17:51:01 UTC (rev 133912)
@@ -1,5 +1,13 @@
 2012-11-08  Joshua Bell  jsb...@chromium.org
 
+[Chromium] Widen flaky crash expectation fast/workers/worker-multi-startup.html to include linux.
+
+Unreviewed gardening.
+
+* platform/chromium/TestExpectations:
+
+2012-11-08  Joshua Bell  jsb...@chromium.org
+
 [Chromium] http/tests/inspector/indexeddb/database-data.html ASSERT on Win7 following r133855
 https://bugs.webkit.org/show_bug.cgi?id=101618
 


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133911 => 133912)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-08 17:44:51 UTC (rev 133911)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-08 17:51:01 UTC (rev 133912)
@@ -3118,7 +3118,7 @@
 webkit.org/b/78684 fast/block/basic/fieldset-stretch-to-legend.html [ Failure ]
 webkit.org/b/78684 fast/borders/fieldsetBorderRadius.html [ Failure ]
 
-webkit.org/b/80498 [ Win ] fast/workers/worker-multi-startup.html [ Crash Pass ]
+webkit.org/b/80498 [ Linux Win ] fast/workers/worker-multi-startup.html [ Crash Pass ]
 
 webkit.org/b/91946 platform/chromium/fast/events/rtl-scrollbar.html [ Failure Pass ]
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133913] trunk/LayoutTests

2012-11-08 Thread jsbell
Title: [133913] trunk/LayoutTests








Revision 133913
Author jsb...@chromium.org
Date 2012-11-08 10:15:54 -0800 (Thu, 08 Nov 2012)


Log Message
[Chromium] Test expectations for failing image tests following Chromium r166632.

Unreviewed gardening.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133912 => 133913)

--- trunk/LayoutTests/ChangeLog	2012-11-08 17:51:01 UTC (rev 133912)
+++ trunk/LayoutTests/ChangeLog	2012-11-08 18:15:54 UTC (rev 133913)
@@ -1,5 +1,13 @@
 2012-11-08  Joshua Bell  jsb...@chromium.org
 
+[Chromium] Test expectations for failing image tests following Chromium r166632.
+
+Unreviewed gardening.
+
+* platform/chromium/TestExpectations:
+
+2012-11-08  Joshua Bell  jsb...@chromium.org
+
 [Chromium] Widen flaky crash expectation fast/workers/worker-multi-startup.html to include linux.
 
 Unreviewed gardening.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133912 => 133913)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-08 17:51:01 UTC (rev 133912)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-08 18:15:54 UTC (rev 133913)
@@ -4179,3 +4179,8 @@
 webkit.org/b/101539 [ Linux Win ] editing/execCommand/switch-list-type-with-orphaned-li.html [ Failure ]
 
 webkit.org/b/101618 [ Win7 Debug ] http/tests/inspector/indexeddb/database-data.html [ Crash ]
+
+crbug.com/160075 fast/canvas/webgl/webgl-composite-modes-repaint.html [ ImageOnlyFailure ]
+crbug.com/160075 fast/canvas/webgl/webgl-composite-modes.html [ ImageOnlyFailure ]
+crbug.com/160075 platform/chromium/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint.html [ ImageOnlyFailure ]
+crbug.com/160075 platform/chromium/virtual/gpu/fast/canvas/webgl/webgl-composite-modes.html [ ImageOnlyFailure ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133917] trunk/LayoutTests

2012-11-08 Thread jsbell
Title: [133917] trunk/LayoutTests








Revision 133917
Author jsb...@chromium.org
Date 2012-11-08 10:37:03 -0800 (Thu, 08 Nov 2012)


Log Message
Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
https://bugs.webkit.org/show_bug.cgi?id=101547

[Chromium] Unreviewed gardening - test expectations update.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133916 => 133917)

--- trunk/LayoutTests/ChangeLog	2012-11-08 18:33:22 UTC (rev 133916)
+++ trunk/LayoutTests/ChangeLog	2012-11-08 18:37:03 UTC (rev 133917)
@@ -1,5 +1,14 @@
 2012-11-08  Joshua Bell  jsb...@chromium.org
 
+Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
+https://bugs.webkit.org/show_bug.cgi?id=101547
+
+[Chromium] Unreviewed gardening - test expectations update.
+
+* platform/chromium/TestExpectations:
+
+2012-11-08  Joshua Bell  jsb...@chromium.org
+
 [Chromium] Test expectations for failing image tests following Chromium r166632.
 
 Unreviewed gardening.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133916 => 133917)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-08 18:33:22 UTC (rev 133916)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-08 18:37:03 UTC (rev 133917)
@@ -4184,3 +4184,22 @@
 crbug.com/160075 fast/canvas/webgl/webgl-composite-modes.html [ ImageOnlyFailure ]
 crbug.com/160075 platform/chromium/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint.html [ ImageOnlyFailure ]
 crbug.com/160075 platform/chromium/virtual/gpu/fast/canvas/webgl/webgl-composite-modes.html [ ImageOnlyFailure ]
+
+# Failures following r133840:
+webkit.org/b/101547 fast/repaint/selection-after-delete.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/delete-into-nested-block.html [ ImageOnlyFailure ]
+webkit.org/b/101547 svg/custom/hit-test-unclosed-subpaths.svg [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/no-caret-repaint-in-non-content-editable-element.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/caret-outside-block.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/4774354.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/repaint-across-writing-mode-boundary.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/japanese-rl-selection-clear.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/selection-rl.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/japanese-rl-selection-repaint.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/inline-outline-repaint.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/japanese-rl-selection-repaint-in-regions.html [ ImageOnlyFailure ]
+webkit.org/b/101547 svg/custom/foreignObject-crash-on-hover.xml [ ImageOnlyFailure ]
+webkit.org/b/101547 svg/custom/hit-test-with-br.xhtml [ ImageOnlyFailure ]
+webkit.org/b/101576 [ Debug ] editing/selection/focus_editable_html.html [ Crash ]
+webkit.org/b/101576 [ Debug ] editing/selection/click-after-nested-block.html [ Crash ]
+webkit.org/b/101576 [ Debug ] fast/events/autoscroll.html [ Crash ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133919] trunk/LayoutTests

2012-11-08 Thread jsbell
Title: [133919] trunk/LayoutTests








Revision 133919
Author jsb...@chromium.org
Date 2012-11-08 10:54:54 -0800 (Thu, 08 Nov 2012)


Log Message
[Chromium] Unreviewed gardening - fix lint failures in expectations file.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133918 => 133919)

--- trunk/LayoutTests/ChangeLog	2012-11-08 18:47:34 UTC (rev 133918)
+++ trunk/LayoutTests/ChangeLog	2012-11-08 18:54:54 UTC (rev 133919)
@@ -1,5 +1,11 @@
 2012-11-08  Joshua Bell  jsb...@chromium.org
 
+[Chromium] Unreviewed gardening - fix lint failures in expectations file.
+
+* platform/chromium/TestExpectations:
+
+2012-11-08  Joshua Bell  jsb...@chromium.org
+
 Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
 https://bugs.webkit.org/show_bug.cgi?id=101547
 


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133918 => 133919)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-08 18:47:34 UTC (rev 133918)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-08 18:54:54 UTC (rev 133919)
@@ -2878,9 +2878,9 @@
 
 webkit.org/b/65009 [ Mac ] scrollbars/scrollbar-drag-thumb-with-large-content.html [ Failure ]
 
-webkit.org/b/65124 [ Android Linux Win ] fast/repaint/japanese-rl-selection-clear.html [ Failure ]
-webkit.org/b/65124 [ Win ] fast/repaint/japanese-rl-selection-repaint.html [ Failure ]
-webkit.org/b/65124 [ Android Linux Win ] fast/repaint/japanese-rl-selection-repaint-in-regions.html [ Failure ]
+#webkit.org/b/65124 [ Android Linux Win ] fast/repaint/japanese-rl-selection-clear.html [ Failure ]
+#webkit.org/b/65124 [ Win ] fast/repaint/japanese-rl-selection-repaint.html [ Failure ]
+#webkit.org/b/65124 [ Android Linux Win ] fast/repaint/japanese-rl-selection-repaint-in-regions.html [ Failure ]
 webkit.org/b/65124 [ Android Linux Win ] fast/repaint/line-flow-with-floats-in-regions.html [ Failure ]
 
 webkit.org/b/65199 [ Android Linux SnowLeopard Win ] fast/writing-mode/broken-ideograph-small-caps.html [ Failure ]
@@ -3442,7 +3442,7 @@
 webkit.org/b/86909 [ Win ] http/tests/inspector/network/network-content-replacement-xhr.html [ Pass Timeout ]
 webkit.org/b/86909 [ Win Debug ] http/tests/security/referrer-policy-redirect-link.html [ Pass Timeout ]
 webkit.org/b/86909 [ Win Debug ] platform/chromium/virtual/gpu/fast/canvas/imagedata-contains-uint8clampedarray.html [ Pass Timeout ]
-webkit.org/b/86909 [ Win ] platform/chromium/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint.html [ Pass Slow ]
+#webkit.org/b/86909 [ Win ] platform/chromium/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint.html [ Pass Slow ]
 
 # Ref-tests can't have platform specific results.
 webkit.org/b/87175 fast/regions/floats-basic-in-variable-width-regions.html
@@ -4133,9 +4133,9 @@
 webkit.org/b/99749 [ MountainLion ] svg/custom/foreign-object-skew.svg [ ImageOnlyFailure ]
 webkit.org/b/99749 [ MountainLion ] svg/custom/getscreenctm-in-scrollable-div-area-nested.xhtml [ ImageOnlyFailure ]
 webkit.org/b/99749 [ MountainLion ] svg/hixie/perf/007.xml [ ImageOnlyFailure ]
-webkit.org/b/99749 [ MountainLion ] svg/custom/foreignObject-crash-on-hover.xml [ ImageOnlyFailure ]
-webkit.org/b/99749 [ MountainLion ] svg/custom/hit-test-unclosed-subpaths.svg [ ImageOnlyFailure ]
-webkit.org/b/99749 [ MountainLion ] svg/custom/hit-test-with-br.xhtml [ ImageOnlyFailure ]
+#webkit.org/b/99749 [ MountainLion ] svg/custom/foreignObject-crash-on-hover.xml [ ImageOnlyFailure ]
+#webkit.org/b/99749 [ MountainLion ] svg/custom/hit-test-unclosed-subpaths.svg [ ImageOnlyFailure ]
+#webkit.org/b/99749 [ MountainLion ] svg/custom/hit-test-with-br.xhtml [ ImageOnlyFailure ]
 webkit.org/b/99749 [ MountainLion ] svg/custom/use-clipped-hit.svg [ ImageOnlyFailure ]
 
 webkit.org/b/100142 css3/filters/effect-reference-hw.html [ Failure ImageOnlyFailure ]
@@ -4180,25 +4180,33 @@
 
 webkit.org/b/101618 [ Win7 Debug ] http/tests/inspector/indexeddb/database-data.html [ Crash ]
 
+# Failures following Chromium r166632:
+# The following test has prior expectations which were disabled. Re-enable when removing this:
 crbug.com/160075 fast/canvas/webgl/webgl-composite-modes-repaint.html [ ImageOnlyFailure ]
 crbug.com/160075 fast/canvas/webgl/webgl-composite-modes.html [ ImageOnlyFailure ]
 crbug.com/160075 platform/chromium/virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint.html [ ImageOnlyFailure ]
 crbug.com/160075 platform/chromium/virtual/gpu/fast/canvas/webgl/webgl-composite-modes.html [ ImageOnlyFailure ]
 
 # Failures following r133840:
-webkit.org/b/101547 fast/repaint/selection-after-delete.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/4774354.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/caret-outside-block.html [ ImageOnlyFailure ]
 

[webkit-changes] [133940] trunk

2012-11-08 Thread jsbell
Title: [133940] trunk








Revision 133940
Author jsb...@chromium.org
Date 2012-11-08 13:37:58 -0800 (Thu, 08 Nov 2012)


Log Message
Source/WebCore: IndexedDB: Remove unused error handling clauses when writing to transaction
https://bugs.webkit.org/show_bug.cgi?id=100700

Reviewed by Tony Chang.

Transactions are written into in-memory data structures. This can only fail if allocation
fails, so success results are always returned. Change the return types to void, and delete
all of the unreachable error handling code.

No new tests - just refactoring/dead code removal.

* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore::putBool): Only write to transactions.
(WebCore):
(WebCore::putInt): Ditto.
(WebCore::putVarInt): Ditto.
(WebCore::putString): Ditto.
(WebCore::putIDBKeyPath): Ditto.
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
(WebCore::deleteRange): Writes only to transaction, so can't fail.
(WebCore::setMaxObjectStoreId):
(WebCore::IDBLevelDBBackingStore::createObjectStore):
(WebCore::getNewVersionNumber):
(WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
(WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::setMaxIndexId):
(WebCore::IDBLevelDBBackingStore::createIndex):
(WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
* platform/leveldb/LevelDBTransaction.cpp:
(WebCore::LevelDBTransaction::set): Return type is void.
(WebCore::LevelDBTransaction::put): Ditto.
(WebCore::LevelDBTransaction::remove): Ditto.
* platform/leveldb/LevelDBTransaction.h:
(LevelDBTransaction):

LayoutTests: [Chromium] Unreviewed gardening.


* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp
trunk/Source/WebCore/platform/leveldb/LevelDBTransaction.cpp
trunk/Source/WebCore/platform/leveldb/LevelDBTransaction.h




Diff

Modified: trunk/LayoutTests/ChangeLog (133939 => 133940)

--- trunk/LayoutTests/ChangeLog	2012-11-08 21:36:32 UTC (rev 133939)
+++ trunk/LayoutTests/ChangeLog	2012-11-08 21:37:58 UTC (rev 133940)
@@ -1,3 +1,9 @@
+2012-11-08  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening.
+
+* platform/chromium/TestExpectations:
+
 2012-11-08  Emil A Eklund  e...@chromium.org
 
 Unreviewed chromium rebaselines.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133939 => 133940)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-08 21:36:32 UTC (rev 133939)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-08 21:37:58 UTC (rev 133940)
@@ -4190,11 +4190,11 @@
 webkit.org/b/101547 fast/repaint/delete-into-nested-block.html [ ImageOnlyFailure ]
 webkit.org/b/101547 fast/repaint/inline-outline-repaint.html [ ImageOnlyFailure ]
 # The following test has prior expectations which were disabled. Re-enable when removing this:
-webkit.org/b/101547 fast/repaint/japanese-rl-selection-clear.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/japanese-rl-selection-clear.html [ ImageOnlyFailure Failure ]
 # The following test has prior expectations which were disabled. Re-enable when removing this:
-webkit.org/b/101547 fast/repaint/japanese-rl-selection-repaint-in-regions.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/japanese-rl-selection-repaint-in-regions.html [ ImageOnlyFailure Failure ]
 # The following test has prior expectations which were disabled. Re-enable when removing this:
-webkit.org/b/101547 fast/repaint/japanese-rl-selection-repaint.html [ ImageOnlyFailure ]
+webkit.org/b/101547 fast/repaint/japanese-rl-selection-repaint.html [ ImageOnlyFailure Failure ]
 webkit.org/b/101547 fast/repaint/no-caret-repaint-in-non-content-editable-element.html [ ImageOnlyFailure ]
 webkit.org/b/101547 fast/repaint/repaint-across-writing-mode-boundary.html [ ImageOnlyFailure ]
 webkit.org/b/101547 fast/repaint/selection-after-delete.html [ ImageOnlyFailure ]


Modified: trunk/Source/WebCore/ChangeLog (133939 => 133940)

--- trunk/Source/WebCore/ChangeLog	2012-11-08 21:36:32 UTC (rev 133939)
+++ trunk/Source/WebCore/ChangeLog	2012-11-08 21:37:58 UTC (rev 133940)
@@ -1,3 +1,41 @@
+2012-11-08  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Remove unused error handling clauses when writing to transaction
+https://bugs.webkit.org/show_bug.cgi?id=100700
+
+Reviewed by Tony Chang.
+
+Transactions are written into in-memory data structures. This can only fail if allocation
+fails, so success results are always returned. Change the return types to void, and delete
+all of the unreachable error handling code.
+
+No new tests - just refactoring/dead code removal.
+
+* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
+(WebCore::putBool): Only write to transactions.
+

[webkit-changes] [133960] trunk/LayoutTests

2012-11-08 Thread jsbell
Title: [133960] trunk/LayoutTests








Revision 133960
Author jsb...@chromium.org
Date 2012-11-08 15:32:19 -0800 (Thu, 08 Nov 2012)


Log Message
[Chromium] Unreviewed gardening - rebaseline a couple of tests for lion.

* platform/chromium-mac-lion/fast/css/text-overflow-ellipsis-text-align-center-expected.png: Added.
* platform/chromium-mac-lion/fast/forms/basic-textareas-expected.png: Added.

Modified Paths

trunk/LayoutTests/ChangeLog


Added Paths

trunk/LayoutTests/platform/chromium-mac-lion/fast/css/text-overflow-ellipsis-text-align-center-expected.png
trunk/LayoutTests/platform/chromium-mac-lion/fast/forms/basic-textareas-expected.png




Diff

Modified: trunk/LayoutTests/ChangeLog (133959 => 133960)

--- trunk/LayoutTests/ChangeLog	2012-11-08 23:32:16 UTC (rev 133959)
+++ trunk/LayoutTests/ChangeLog	2012-11-08 23:32:19 UTC (rev 133960)
@@ -1,3 +1,10 @@
+2012-11-08  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening - rebaseline a couple of tests for lion.
+
+* platform/chromium-mac-lion/fast/css/text-overflow-ellipsis-text-align-center-expected.png: Added.
+* platform/chromium-mac-lion/fast/forms/basic-textareas-expected.png: Added.
+
 2012-11-08  Huang Dongsung  luxte...@company100.net
 
 Coordinated Graphics: Remove an invisible TiledBackingStore of CoordinatedGraphicsLayer.


Added: trunk/LayoutTests/platform/chromium-mac-lion/fast/css/text-overflow-ellipsis-text-align-center-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-mac-lion/fast/css/text-overflow-ellipsis-text-align-center-expected.png
___

Added: svn:mime-type

Added: trunk/LayoutTests/platform/chromium-mac-lion/fast/forms/basic-textareas-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-mac-lion/fast/forms/basic-textareas-expected.png
___

Added: svn:mime-type




___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133965] trunk/LayoutTests

2012-11-08 Thread jsbell
Title: [133965] trunk/LayoutTests








Revision 133965
Author jsb...@chromium.org
Date 2012-11-08 15:50:12 -0800 (Thu, 08 Nov 2012)


Log Message
   [Chromium] Unreviewed gardening. Added missing *-expected.txt following rebaselines.

* platform/chromium-mac/fast/css/text-overflow-input-expected.txt: Added.
* platform/chromium-mac/fast/forms/input-readonly-dimmed-expected.txt: Added.
* platform/chromium-mac/fast/forms/input-text-scroll-left-on-blur-expected.txt: Added.

Modified Paths

trunk/LayoutTests/ChangeLog


Added Paths

trunk/LayoutTests/platform/chromium-mac/fast/css/text-overflow-input-expected.txt
trunk/LayoutTests/platform/chromium-mac/fast/forms/input-readonly-dimmed-expected.txt
trunk/LayoutTests/platform/chromium-mac/fast/forms/input-text-scroll-left-on-blur-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (133964 => 133965)

--- trunk/LayoutTests/ChangeLog	2012-11-08 23:50:02 UTC (rev 133964)
+++ trunk/LayoutTests/ChangeLog	2012-11-08 23:50:12 UTC (rev 133965)
@@ -1,3 +1,11 @@
+2012-11-08  Joshua Bell  jsb...@chromium.org
+
+   [Chromium] Unreviewed gardening. Added missing *-expected.txt following rebaselines.
+
+* platform/chromium-mac/fast/css/text-overflow-input-expected.txt: Added.
+* platform/chromium-mac/fast/forms/input-readonly-dimmed-expected.txt: Added.
+* platform/chromium-mac/fast/forms/input-text-scroll-left-on-blur-expected.txt: Added.
+
 2012-11-08  Yael Aharon  yael.aha...@intel.com
 
 Unreviewed. Some more gardening after r133898.


Added: trunk/LayoutTests/platform/chromium-mac/fast/css/text-overflow-input-expected.txt (0 => 133965)

--- trunk/LayoutTests/platform/chromium-mac/fast/css/text-overflow-input-expected.txt	(rev 0)
+++ trunk/LayoutTests/platform/chromium-mac/fast/css/text-overflow-input-expected.txt	2012-11-08 23:50:12 UTC (rev 133965)
@@ -0,0 +1,242 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x290
+  RenderBlock {HTML} at (0,0) size 800x290
+RenderBody {BODY} at (8,16) size 784x258
+  RenderBlock {P} at (0,0) size 784x18
+RenderText {#text} at (0,0) size 308x18
+  text run at (0,0) width 308: This test is a basic check for using text-overflow.
+  RenderBlock {P} at (0,34) size 784x64
+RenderText {#text} at (0,0) size 481x18
+  text run at (0,0) width 481: Apply \text-overflow:clip\ to inputs. The following input should be clipped:
+RenderBR {BR} at (481,0) size 0x18
+RenderTextControl {INPUT} at (2,20) size 123x19 [bgcolor=#FF] [border: (2px inset #00)]
+RenderText {#text} at (127,20) size 4x18
+  text run at (127,20) width 4:  
+RenderTextControl {INPUT} at (133,20) size 123x19 [bgcolor=#FF] [border: (2px inset #00)]
+  RenderDeprecatedFlexibleBox {DIV} at (3,3) size 117x13
+RenderBlock {DIV} at (0,1) size 8x11
+RenderBlock {DIV} at (8,0) size 96x13
+RenderBlock {DIV} at (104,1) size 13x11
+RenderText {#text} at (258,20) size 4x18
+  text run at (258,20) width 4:  
+RenderTextControl {INPUT} at (264,20) size 123x19 [bgcolor=#FF] [border: (2px inset #00)]
+RenderText {#text} at (389,20) size 4x18
+  text run at (389,20) width 4:  
+RenderTextControl {INPUT} at (395,20) size 123x19 [bgcolor=#FF] [border: (2px inset #00)]
+  RenderDeprecatedFlexibleBox {DIV} at (3,3) size 117x13
+RenderBlock {DIV} at (0,1) size 8x11
+RenderBlock {DIV} at (8,0) size 96x13
+RenderBlock {DIV} at (104,1) size 13x11
+RenderText {#text} at (520,20) size 4x18
+  text run at (520,20) width 4:  
+RenderTextControl {INPUT} at (526,20) size 123x19 [bgcolor=#FF] [border: (2px inset #00)]
+RenderBR {BR} at (651,20) size 0x18
+RenderTextControl {INPUT} at (2,43) size 123x19 [bgcolor=#FF] [border: (2px inset #00)]
+RenderText {#text} at (127,43) size 4x18
+  text run at (127,43) width 4:  
+RenderTextControl {INPUT} at (133,43) size 123x19 [bgcolor=#FF] [border: (2px inset #00)]
+  RenderDeprecatedFlexibleBox {DIV} at (3,3) size 117x13
+RenderBlock {DIV} at (0,1) size 8x11
+RenderBlock {DIV} at (8,0) size 96x13
+RenderBlock {DIV} at (104,1) size 13x11
+RenderText {#text} at (258,43) size 4x18
+  text run at (258,43) width 4:  
+RenderTextControl {INPUT} at (264,43) size 123x19 [bgcolor=#FF] [border: (2px inset #00)]
+RenderText {#text} at (389,43) size 4x18
+  text run at (389,43) width 4:  
+RenderTextControl {INPUT} at (395,43) size 123x19 [bgcolor=#FF] [border: (2px inset #00)]
+  RenderDeprecatedFlexibleBox {DIV} at (3,3) size 117x13
+RenderBlock {DIV} at (0,1) size 8x11
+RenderBlock {DIV} at 

[webkit-changes] [133986] trunk/LayoutTests

2012-11-08 Thread jsbell
Title: [133986] trunk/LayoutTests








Revision 133986
Author jsb...@chromium.org
Date 2012-11-08 17:41:00 -0800 (Thu, 08 Nov 2012)


Log Message
[Chromium] Unreviewed gardening following r133972.

* platform/chromium-win/platform/chromium/virtual/deferred/fast/images/exif-orientation-expected.png: Added.

Modified Paths

trunk/LayoutTests/ChangeLog


Added Paths

trunk/LayoutTests/platform/chromium-win/platform/chromium/virtual/deferred/fast/images/exif-orientation-expected.png




Diff

Modified: trunk/LayoutTests/ChangeLog (133985 => 133986)

--- trunk/LayoutTests/ChangeLog	2012-11-09 01:38:12 UTC (rev 133985)
+++ trunk/LayoutTests/ChangeLog	2012-11-09 01:41:00 UTC (rev 133986)
@@ -1,3 +1,9 @@
+2012-11-08  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening following r133972.
+
+* platform/chromium-win/platform/chromium/virtual/deferred/fast/images/exif-orientation-expected.png: Added.
+
 2012-11-08  Kenichi Ishibashi  ba...@chromium.org
 
 [Chromium] Arabic digits should appear left-to-right


Added: trunk/LayoutTests/platform/chromium-win/platform/chromium/virtual/deferred/fast/images/exif-orientation-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-win/platform/chromium/virtual/deferred/fast/images/exif-orientation-expected.png
___

Added: svn:mime-type




___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133766] trunk/LayoutTests

2012-11-07 Thread jsbell
Title: [133766] trunk/LayoutTests








Revision 133766
Author jsb...@chromium.org
Date 2012-11-07 09:14:47 -0800 (Wed, 07 Nov 2012)


Log Message
[Chromium] Unreviewed gardening. Rebaseline the tests added
in http://trac.webkit.org/changeset/133686 - part deux.

* platform/chromium-win/fast/backgrounds/transformed-body-background-expected.png: Added.
* platform/chromium-win/fast/backgrounds/transformed-body-html-background-expected.png: Added.
* platform/chromium-win/fast/backgrounds/transformed-html-body-background-expected.png: Added.

Modified Paths

trunk/LayoutTests/ChangeLog


Added Paths

trunk/LayoutTests/platform/chromium-win/fast/backgrounds/transformed-body-background-expected.png
trunk/LayoutTests/platform/chromium-win/fast/backgrounds/transformed-body-html-background-expected.png
trunk/LayoutTests/platform/chromium-win/fast/backgrounds/transformed-html-body-background-expected.png




Diff

Modified: trunk/LayoutTests/ChangeLog (133765 => 133766)

--- trunk/LayoutTests/ChangeLog	2012-11-07 17:12:17 UTC (rev 133765)
+++ trunk/LayoutTests/ChangeLog	2012-11-07 17:14:47 UTC (rev 133766)
@@ -1,3 +1,12 @@
+2012-11-07  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening. Rebaseline the tests added
+in http://trac.webkit.org/changeset/133686 - part deux.
+
+* platform/chromium-win/fast/backgrounds/transformed-body-background-expected.png: Added.
+* platform/chromium-win/fast/backgrounds/transformed-body-html-background-expected.png: Added.
+* platform/chromium-win/fast/backgrounds/transformed-html-body-background-expected.png: Added.
+
 2012-11-07  Vsevolod Vlasov  vse...@chromium.org
 
 Layout Test inspector/debugger/script-formatter-breakpoints.html is failing


Added: trunk/LayoutTests/platform/chromium-win/fast/backgrounds/transformed-body-background-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-win/fast/backgrounds/transformed-body-background-expected.png
___

Added: svn:mime-type

Added: trunk/LayoutTests/platform/chromium-win/fast/backgrounds/transformed-body-html-background-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-win/fast/backgrounds/transformed-body-html-background-expected.png
___

Added: svn:mime-type

Added: trunk/LayoutTests/platform/chromium-win/fast/backgrounds/transformed-html-body-background-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-win/fast/backgrounds/transformed-html-body-background-expected.png
___

Added: svn:mime-type




___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133776] trunk

2012-11-07 Thread jsbell
Title: [133776] trunk








Revision 133776
Author jsb...@chromium.org
Date 2012-11-07 10:26:18 -0800 (Wed, 07 Nov 2012)


Log Message
IndexedDB: Assertion failure with open() within upgradeneeded
https://bugs.webkit.org/show_bug.cgi?id=96947

Reviewed by Dimitri Glazkov.

Source/WebCore:

Postpone creation of the pending second half open until the version change
transaction has started.

Test: storage/indexeddb/unblocked-version-changes.html

* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseCallbacks.h:

LayoutTests:

Exercise the code path leading to the assert by having a second version change transaction
unblocked by the first's connection closing. Includes a known failure due to metadata
snapshot timing.

* storage/indexeddb/resources/unblocked-version-changes.js: Added.
(test):
(openConnection):
(onUpgradeNeeded):
(onError):
(onUpgradeNeeded2):
(onSuccess):
* storage/indexeddb/unblocked-version-changes-expected.txt: Added.
* storage/indexeddb/unblocked-version-changes.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h
trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacks.h


Added Paths

trunk/LayoutTests/storage/indexeddb/resources/unblocked-version-changes.js
trunk/LayoutTests/storage/indexeddb/unblocked-version-changes-expected.txt
trunk/LayoutTests/storage/indexeddb/unblocked-version-changes.html




Diff

Modified: trunk/LayoutTests/ChangeLog (133775 => 133776)

--- trunk/LayoutTests/ChangeLog	2012-11-07 18:20:53 UTC (rev 133775)
+++ trunk/LayoutTests/ChangeLog	2012-11-07 18:26:18 UTC (rev 133776)
@@ -1,3 +1,24 @@
+2012-11-07  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Assertion failure with open() within upgradeneeded
+https://bugs.webkit.org/show_bug.cgi?id=96947
+
+Reviewed by Dimitri Glazkov.
+
+Exercise the code path leading to the assert by having a second version change transaction
+unblocked by the first's connection closing. Includes a known failure due to metadata
+snapshot timing.
+
+* storage/indexeddb/resources/unblocked-version-changes.js: Added.
+(test):
+(openConnection):
+(onUpgradeNeeded):
+(onError):
+(onUpgradeNeeded2):
+(onSuccess):
+* storage/indexeddb/unblocked-version-changes-expected.txt: Added.
+* storage/indexeddb/unblocked-version-changes.html: Added.
+
 2012-11-06  Simon Fraser  simon.fra...@apple.com
 
 Fix failing platform/mac/tiled-drawing on Lion.


Added: trunk/LayoutTests/storage/indexeddb/resources/unblocked-version-changes.js (0 => 133776)

--- trunk/LayoutTests/storage/indexeddb/resources/unblocked-version-changes.js	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/resources/unblocked-version-changes.js	2012-11-07 18:26:18 UTC (rev 133776)
@@ -0,0 +1,62 @@
+if (this.importScripts) {
+importScripts('../../../fast/js/resources/js-test-pre.js');
+importScripts('shared.js');
+}
+
+description(Ensure that metadata remains correct when an aborted version change is followed by another. );
+
+function test() {
+removeVendorPrefixes();
+setDBNameFromPath();
+request = evalAndLog(indexedDB.deleteDatabase(dbname));
+request._onblocked_ = unexpectedBlockedCallback;
+request._onerror_ = unexpectedErrorCallback;
+request._onsuccess_ = openConnection;
+}
+
+function openConnection()
+{
+preamble();
+evalAndLog(request = indexedDB.open(dbname, 2));
+request._onblocked_ = unexpectedBlockedCallback;
+request._onsuccess_ = unexpectedSuccessCallback;
+request._onupgradeneeded_ = onUpgradeNeeded;
+request._onerror_ = onError;
+}
+
+function onUpgradeNeeded(evt)
+{
+preamble(evt);
+evalAndLog(db = request.result);
+shouldBe(db.version, 2);
+
+evalAndLog(request = indexedDB.open(dbname, 3));
+request._onerror_ = unexpectedErrorCallback;
+request._onupgradeneeded_ = onUpgradeNeeded2;
+request._onsuccess_ = onSuccess;
+
+evalAndLog(db.close());
+}
+
+function onError(evt)
+{
+preamble(evt);
+shouldBe(db.version, 0);
+}
+
+function onUpgradeNeeded2(evt)
+{
+preamble(evt);
+evalAndLog(db = request.result);
+shouldBe(db.version, 3);
+}
+
+function onSuccess(evt)
+{
+preamble(evt);
+evalAndLog(db = request.result);
+shouldBe(db.version, 3);
+finishJSTest();
+}
+
+test();
\ No newline at end of file


Added: trunk/LayoutTests/storage/indexeddb/unblocked-version-changes-expected.txt (0 => 133776)

--- trunk/LayoutTests/storage/indexeddb/unblocked-version-changes-expected.txt	(rev 0)
+++ 

[webkit-changes] [133809] trunk/LayoutTests

2012-11-07 Thread jsbell
Title: [133809] trunk/LayoutTests








Revision 133809
Author jsb...@chromium.org
Date 2012-11-07 15:01:35 -0800 (Wed, 07 Nov 2012)


Log Message
[Chromium] Unreviewed gardening.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133808 => 133809)

--- trunk/LayoutTests/ChangeLog	2012-11-07 22:48:24 UTC (rev 133808)
+++ trunk/LayoutTests/ChangeLog	2012-11-07 23:01:35 UTC (rev 133809)
@@ -1,3 +1,9 @@
+2012-11-07  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening.
+
+* platform/chromium/TestExpectations:
+
 2012-11-07  Beth Dakin  bda...@apple.com
 
 https://bugs.webkit.org/show_bug.cgi?id=101303


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133808 => 133809)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-07 22:48:24 UTC (rev 133808)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-07 23:01:35 UTC (rev 133809)
@@ -3317,7 +3317,7 @@
 crbug.com/121442 [ Linux Debug ] plugins/iframe-shims.html [ Crash ]
 crbug.com/121442 [ Linux Release ] plugins/iframe-shims.html [ Crash Pass ]
 
-webkit.org/b/83219 [ Lion MountainLion ] fonts/cursive.html [ Failure Pass ]
+webkit.org/b/83219 [ Lion MountainLion ] fonts/cursive.html [ Failure ImageOnlyFailure Pass ]
 webkit.org/b/83324 [ Win Debug ] fast/js/cross-global-object-inline-global-var.html [ Failure Pass ]
 
 crbug.com/122462 [ Linux Win ] http/tests/inspector/inspect-element.html [ Failure Slow ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133621] trunk/LayoutTests

2012-11-06 Thread jsbell
Title: [133621] trunk/LayoutTests








Revision 133621
Author jsb...@chromium.org
Date 2012-11-06 09:26:36 -0800 (Tue, 06 Nov 2012)


Log Message
[Chromium] fast/dom/Window/customized-property-survives-gc.html slow on debug
https://bugs.webkit.org/show_bug.cgi?id=101362

Unreviewed gardening.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133620 => 133621)

--- trunk/LayoutTests/ChangeLog	2012-11-06 17:15:29 UTC (rev 133620)
+++ trunk/LayoutTests/ChangeLog	2012-11-06 17:26:36 UTC (rev 133621)
@@ -1,3 +1,12 @@
+2012-11-06  Joshua Bell  jsb...@chromium.org
+
+[Chromium] fast/dom/Window/customized-property-survives-gc.html slow on debug
+https://bugs.webkit.org/show_bug.cgi?id=101362
+
+Unreviewed gardening.
+
+* platform/chromium/TestExpectations:
+
 2012-11-06  Mike West  mk...@chromium.org
 
 CSP 1.1: Tweak the script interface to match the spec.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133620 => 133621)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-06 17:15:29 UTC (rev 133620)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-06 17:26:36 UTC (rev 133621)
@@ -111,6 +111,8 @@
 # Failing since r133592.
 Bug(senorblanco) inspector/debugger/script-formatter-breakpoints.html [ Failure ]
 
+webkit.org/b/101362 [ Debug ] fast/dom/Window/customized-property-survives-gc.html [ Pass Slow ]
+
 # -
 # TEMPORARILY SKIPPED TESTS
 # -






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133627] trunk/LayoutTests

2012-11-06 Thread jsbell
Title: [133627] trunk/LayoutTests








Revision 133627
Author jsb...@chromium.org
Date 2012-11-06 09:54:42 -0800 (Tue, 06 Nov 2012)


Log Message
[Chromium] Unreviewed gardening - more rebaselines following bug 101115.

* platform/chromium-mac-lion/fast/block/lineboxcontain/block-glyphs-expected.png: Added.
* platform/chromium-mac-lion/fast/block/lineboxcontain/block-glyphs-replaced-expected.png: Added.
* platform/chromium-mac-lion/fast/block/lineboxcontain/glyphs-expected.png: Added.
* platform/chromium-mac-lion/fast/repaint/stacked-diacritics-expected.png: Added.

Modified Paths

trunk/LayoutTests/ChangeLog


Added Paths

trunk/LayoutTests/platform/chromium-mac-lion/fast/block/lineboxcontain/
trunk/LayoutTests/platform/chromium-mac-lion/fast/block/lineboxcontain/block-glyphs-expected.png
trunk/LayoutTests/platform/chromium-mac-lion/fast/block/lineboxcontain/block-glyphs-replaced-expected.png
trunk/LayoutTests/platform/chromium-mac-lion/fast/block/lineboxcontain/glyphs-expected.png
trunk/LayoutTests/platform/chromium-mac-lion/fast/repaint/stacked-diacritics-expected.png




Diff

Modified: trunk/LayoutTests/ChangeLog (133626 => 133627)

--- trunk/LayoutTests/ChangeLog	2012-11-06 17:50:03 UTC (rev 133626)
+++ trunk/LayoutTests/ChangeLog	2012-11-06 17:54:42 UTC (rev 133627)
@@ -1,3 +1,12 @@
+2012-11-06  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening - more rebaselines following bug 101115.
+
+* platform/chromium-mac-lion/fast/block/lineboxcontain/block-glyphs-expected.png: Added.
+* platform/chromium-mac-lion/fast/block/lineboxcontain/block-glyphs-replaced-expected.png: Added.
+* platform/chromium-mac-lion/fast/block/lineboxcontain/glyphs-expected.png: Added.
+* platform/chromium-mac-lion/fast/repaint/stacked-diacritics-expected.png: Added.
+
 2012-11-06  Raphael Kubo da Costa  raphael.kubo.da.co...@intel.com
 
 [EFL] Gardening, add pixel expectation for test.


Added: trunk/LayoutTests/platform/chromium-mac-lion/fast/block/lineboxcontain/block-glyphs-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-mac-lion/fast/block/lineboxcontain/block-glyphs-expected.png
___

Added: svn:mime-type

Added: trunk/LayoutTests/platform/chromium-mac-lion/fast/block/lineboxcontain/block-glyphs-replaced-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-mac-lion/fast/block/lineboxcontain/block-glyphs-replaced-expected.png
___

Added: svn:mime-type

Added: trunk/LayoutTests/platform/chromium-mac-lion/fast/block/lineboxcontain/glyphs-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-mac-lion/fast/block/lineboxcontain/glyphs-expected.png
___

Added: svn:mime-type

Added: trunk/LayoutTests/platform/chromium-mac-lion/fast/repaint/stacked-diacritics-expected.png

(Binary files differ)

Property changes on: trunk/LayoutTests/platform/chromium-mac-lion/fast/repaint/stacked-diacritics-expected.png
___

Added: svn:mime-type




___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133647] trunk/LayoutTests

2012-11-06 Thread jsbell
Title: [133647] trunk/LayoutTests








Revision 133647
Author jsb...@chromium.org
Date 2012-11-06 11:15:32 -0800 (Tue, 06 Nov 2012)


Log Message
[Chromium] platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html flaky on linux debug
https://bugs.webkit.org/show_bug.cgi?id=101377

Unreviewed gardening. Add new expectation, remove expectation for reverted change.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133646 => 133647)

--- trunk/LayoutTests/ChangeLog	2012-11-06 19:13:52 UTC (rev 133646)
+++ trunk/LayoutTests/ChangeLog	2012-11-06 19:15:32 UTC (rev 133647)
@@ -1,3 +1,12 @@
+2012-11-06  Joshua Bell  jsb...@chromium.org
+
+[Chromium] platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html flaky on linux debug
+https://bugs.webkit.org/show_bug.cgi?id=101377
+
+Unreviewed gardening. Add new expectation, remove expectation for reverted change.
+
+* platform/chromium/TestExpectations:
+
 2012-11-06  Sheriff Bot  webkit.review@gmail.com
 
 Unreviewed, rolling out r133529 and r133562.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133646 => 133647)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-06 19:13:52 UTC (rev 133646)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-06 19:15:32 UTC (rev 133647)
@@ -4156,4 +4156,4 @@
 # This test is consistently leaking state into the next test (object-src-url-allowed.html) after r133069.
 webkit.org/b/100955 http/tests/security/contentSecurityPolicy/object-src-none-blocked.html [ Skip ]
 
-webkit.org/b/101368 [ Lion ] css3/line-break/line-break-strict-sound-marks.html [ ImageOnlyFailure Pass ]
+webkit.org/b/101377 [ Linux Debug ] platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html [ Failure Pass ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133650] trunk/LayoutTests

2012-11-06 Thread jsbell
Title: [133650] trunk/LayoutTests








Revision 133650
Author jsb...@chromium.org
Date 2012-11-06 11:24:34 -0800 (Tue, 06 Nov 2012)


Log Message
[Chromium] Unreviewed gardening.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133649 => 133650)

--- trunk/LayoutTests/ChangeLog	2012-11-06 19:19:09 UTC (rev 133649)
+++ trunk/LayoutTests/ChangeLog	2012-11-06 19:24:34 UTC (rev 133650)
@@ -1,3 +1,9 @@
+2012-11-06  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening.
+
+* platform/chromium/TestExpectations:
+
 2012-11-06  Andrei Bucur  abu...@adobe.com
 
 [CSS Regions] Fix failing tests on Mac after sub-pixel layout was enabled


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133649 => 133650)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-06 19:19:09 UTC (rev 133649)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-06 19:24:34 UTC (rev 133650)
@@ -3532,7 +3532,7 @@
 webkit.org/b/89702 platform/chromium/virtual/softwarecompositing/scaling/tiled-layer-recursion.html [ ImageOnlyFailure Pass ]
 
 webkit.org/b/89789 [ Mac ] plugins/embed-attributes-style.html [ ImageOnlyFailure Pass ]
-webkit.org/b/89789 [ Mac ] userscripts/user-script-video-document.html [ Crash Pass ]
+webkit.org/b/89789 [ Mac Win7 Debug ] userscripts/user-script-video-document.html [ Crash Pass ]
 
 # Flaky
 webkit.org/b/89794 [ Mac ] fast/regions/get-regions-by-content2.html [ Crash Pass ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133675] trunk/LayoutTests

2012-11-06 Thread jsbell
Title: [133675] trunk/LayoutTests








Revision 133675
Author jsb...@chromium.org
Date 2012-11-06 14:58:24 -0800 (Tue, 06 Nov 2012)


Log Message
[Chromium] platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html flaky on linux debug
https://bugs.webkit.org/show_bug.cgi?id=101377

Unreviewed gardening. Add ImageOnlyFailure expectation, for extra fun.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133674 => 133675)

--- trunk/LayoutTests/ChangeLog	2012-11-06 22:50:30 UTC (rev 133674)
+++ trunk/LayoutTests/ChangeLog	2012-11-06 22:58:24 UTC (rev 133675)
@@ -1,3 +1,12 @@
+2012-11-06  Joshua Bell  jsb...@chromium.org
+
+[Chromium] platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html flaky on linux debug
+https://bugs.webkit.org/show_bug.cgi?id=101377
+
+Unreviewed gardening. Add ImageOnlyFailure expectation, for extra fun.
+
+* platform/chromium/TestExpectations:
+
 2012-11-06  Dirk Pranke  dpra...@chromium.org
 
 Unreviewed chromium, chromium-mac-mountainlion gardening


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133674 => 133675)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-06 22:50:30 UTC (rev 133674)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-06 22:58:24 UTC (rev 133675)
@@ -4142,4 +4142,4 @@
 # This test is consistently leaking state into the next test (object-src-url-allowed.html) after r133069.
 webkit.org/b/100955 http/tests/security/contentSecurityPolicy/object-src-none-blocked.html [ Skip ]
 
-webkit.org/b/101377 [ Linux Debug ] platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html [ Failure Pass ]
+webkit.org/b/101377 [ Linux Debug ] platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html [ Failure ImageOnlyFailure Pass ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133677] trunk/LayoutTests

2012-11-06 Thread jsbell
Title: [133677] trunk/LayoutTests








Revision 133677
Author jsb...@chromium.org
Date 2012-11-06 15:06:06 -0800 (Tue, 06 Nov 2012)


Log Message
http/tests/inspector-enabled/dynamic-scripts.html is flakey
https://bugs.webkit.org/show_bug.cgi?id=100926

Unreviewed gardening.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133676 => 133677)

--- trunk/LayoutTests/ChangeLog	2012-11-06 23:04:50 UTC (rev 133676)
+++ trunk/LayoutTests/ChangeLog	2012-11-06 23:06:06 UTC (rev 133677)
@@ -1,5 +1,14 @@
 2012-11-06  Joshua Bell  jsb...@chromium.org
 
+http/tests/inspector-enabled/dynamic-scripts.html is flakey
+https://bugs.webkit.org/show_bug.cgi?id=100926
+
+Unreviewed gardening.
+
+* platform/chromium/TestExpectations:
+
+2012-11-06  Joshua Bell  jsb...@chromium.org
+
 [Chromium] platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html flaky on linux debug
 https://bugs.webkit.org/show_bug.cgi?id=101377
 


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133676 => 133677)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-06 23:04:50 UTC (rev 133676)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-06 23:06:06 UTC (rev 133677)
@@ -1064,6 +1064,8 @@
 webkit.org/b/78810 [ Linux Win Debug ] inspector/debugger/script-formatter-console.html [ Pass Slow ]
 webkit.org/b/99338 [ Linux Win ] inspector/debugger/dynamic-scripts.html [ Pass Failure ]
 
+webkit.org/b/100926 [ Win ] http/tests/inspector-enabled/dynamic-scripts.html [ Pass Failure ]
+
 # -
 # Editing tests
 # -






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133691] trunk/LayoutTests

2012-11-06 Thread jsbell
Title: [133691] trunk/LayoutTests








Revision 133691
Author jsb...@chromium.org
Date 2012-11-06 16:29:48 -0800 (Tue, 06 Nov 2012)


Log Message
[Chromium] Unreviewed gardening. A couple of expectation updates c/o dbar...@mathscribe.com
and marking calendar-picker-key-operations.html flaky per webkit.org/b/101408

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133690 => 133691)

--- trunk/LayoutTests/ChangeLog	2012-11-07 00:16:28 UTC (rev 133690)
+++ trunk/LayoutTests/ChangeLog	2012-11-07 00:29:48 UTC (rev 133691)
@@ -1,3 +1,10 @@
+2012-11-06  Joshua Bell  jsb...@chromium.org
+
+[Chromium] Unreviewed gardening. A couple of expectation updates c/o dbar...@mathscribe.com
+and marking calendar-picker-key-operations.html flaky per webkit.org/b/101408
+
+* platform/chromium/TestExpectations:
+
 2012-11-06  Stephen White  senorbla...@chromium.org
 
 Removed useless image baselines for filter-empty-element-crash.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133690 => 133691)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-07 00:16:28 UTC (rev 133690)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-07 00:29:48 UTC (rev 133691)
@@ -2003,7 +2003,6 @@
 # WebKit merge 48500:48585, newly implemented Object.defineProperty.
 crbug.com/22526 fast/js/Object-defineProperty.html [ Failure ]
 
-webkit.org/b/100463 mathml/msubsup-fuzz.html [ Crash Pass ]
 # Once chromium decides to definitely enable MathML, we can delete the old platform/chromium baseline for this:
 webkit.org/b/96960 http/tests/xmlviewer/dumpAsText/mathml.xml [ Pass Failure ]
 
@@ -2520,7 +2519,7 @@
 webkit.org/b/90363 [ Debug ] fast/overflow/lots-of-sibling-inline-boxes.html [ Pass Timeout ]
 webkit.org/b/90363 [ Android Release ] fast/overflow/lots-of-sibling-inline-boxes.html [ Pass Timeout ]
 
-# WebKit roll 74255:74308 (74281?)
+# WebKit roll 74255:74308
 crbug.com/67416 [ Android Linux Win ] fast/text/emphasis.html [ Failure ]
 crbug.com/67416 fast/text/emphasis-vertical.html [ Failure ImageOnlyFailure ]
 crbug.com/67540 [ Android Linux ] fast/text/emphasis-avoid-ruby.html [ ImageOnlyFailure ]
@@ -4144,3 +4143,5 @@
 webkit.org/b/100955 http/tests/security/contentSecurityPolicy/object-src-none-blocked.html [ Skip ]
 
 webkit.org/b/101377 [ Linux Debug ] platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html [ Failure ImageOnlyFailure Pass ]
+
+webkit.org/b/101408 platform/chromium/fast/forms/calendar-picker/calendar-picker-key-operations.html [ Failure Pass ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133698] trunk/LayoutTests

2012-11-06 Thread jsbell
Title: [133698] trunk/LayoutTests








Revision 133698
Author jsb...@chromium.org
Date 2012-11-06 17:14:01 -0800 (Tue, 06 Nov 2012)


Log Message
fast/forms/select-set-length-with-mutation-remove is slow on chromium debug builds
https://bugs.webkit.org/show_bug.cgi?id=60092

[Chromium] Unreviewed gardening - so slow it's timing out at 60s rather often.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (133697 => 133698)

--- trunk/LayoutTests/ChangeLog	2012-11-07 01:02:15 UTC (rev 133697)
+++ trunk/LayoutTests/ChangeLog	2012-11-07 01:14:01 UTC (rev 133698)
@@ -1,3 +1,12 @@
+2012-11-06  Joshua Bell  jsb...@chromium.org
+
+fast/forms/select-set-length-with-mutation-remove is slow on chromium debug builds
+https://bugs.webkit.org/show_bug.cgi?id=60092
+
+[Chromium] Unreviewed gardening - so slow it's timing out at 60s rather often.
+
+* platform/chromium/TestExpectations:
+
 2012-11-06  Hans Muller  hmul...@adobe.com
 
 [CSS Exclusions] Changeset r133384 defeated the rectilinear polygon tests


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (133697 => 133698)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-07 01:02:15 UTC (rev 133697)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-11-07 01:14:01 UTC (rev 133698)
@@ -2350,7 +2350,7 @@
 webkit.org/b/45737 [ Win Linux Mac Debug ] fast/frames/frame-limit.html [ Timeout ]
 
 # Regressions from webkit roll r67178:t67358
-webkit.org/b/60092 [ Debug ] fast/forms/select-set-length-with-mutation-remove.html [ Crash Pass Slow ]
+webkit.org/b/60092 [ Debug ] fast/forms/select-set-length-with-mutation-remove.html [ Crash Pass Timeout ]
 webkit.org/b/60093 [ Android Linux Debug ] http/tests/incremental/slow-utf8-text.pl [ Pass Slow ]
 
 webkit.org/b/91432 fast/canvas/webgl/read-pixels-test.html [ Timeout ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [133043] branches/chromium/1312/Source/WebCore/Modules/indexeddb/ IDBLevelDBBackingStore.cpp

2012-10-31 Thread jsbell
Title: [133043] branches/chromium/1312/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp








Revision 133043
Author jsb...@chromium.org
Date 2012-10-31 10:21:36 -0700 (Wed, 31 Oct 2012)


Log Message
Merge 132848 - IndexedDB: Crash on checking version of corrupt backing store
https://bugs.webkit.org/show_bug.cgi?id=100692

Reviewed by Tony Chang.

If the backing store fails to open (due to corruption, non-writeable disk, etc)
the subsequent schema version check dereferences a null pointer. Fix to only
do the schema check if the database opened.

Chromium tests will be included with crrev.com/11196029

* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::open):


TBR=jsb...@chromium.org
Review URL: https://codereview.chromium.org/11358013

Modified Paths

branches/chromium/1312/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp




Diff

Modified: branches/chromium/1312/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp (133042 => 133043)

--- branches/chromium/1312/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp	2012-10-31 17:07:31 UTC (rev 133042)
+++ branches/chromium/1312/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp	2012-10-31 17:21:36 UTC (rev 133043)
@@ -295,13 +295,13 @@
 String path = pathByAppendingComponent(pathBase, securityOrigin-databaseIdentifier() + .indexeddb.leveldb);
 
 db = LevelDBDatabase::open(path, comparator.get());
-bool knownSchema = isSchemaKnown(db.get());
-if (!knownSchema) {
+if (db  !isSchemaKnown(db.get())) {
 LOG_ERROR(IndexedDB backing store had unknown schema, treating it as failure to open);
 HistogramSupport::histogramEnumeration(WebCore.IndexedDB.BackingStore.OpenStatus, IDBLevelDBBackingStoreOpenFailedUnknownSchema, IDBLevelDBBackingStoreOpenMax);
+db.release();
 }
 
-if (db  knownSchema)
+if (db)
 HistogramSupport::histogramEnumeration(WebCore.IndexedDB.BackingStore.OpenStatus, IDBLevelDBBackingStoreOpenSuccess, IDBLevelDBBackingStoreOpenMax);
 else {
 LOG_ERROR(IndexedDB backing store open failed, attempting cleanup);






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [132848] trunk/Source/WebCore

2012-10-29 Thread jsbell
Title: [132848] trunk/Source/WebCore








Revision 132848
Author jsb...@chromium.org
Date 2012-10-29 14:20:14 -0700 (Mon, 29 Oct 2012)


Log Message
IndexedDB: Crash on checking version of corrupt backing store
https://bugs.webkit.org/show_bug.cgi?id=100692

Reviewed by Tony Chang.

If the backing store fails to open (due to corruption, non-writeable disk, etc)
the subsequent schema version check dereferences a null pointer. Fix to only
do the schema check if the database opened.

Chromium tests will be included with crrev.com/11196029

* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::open):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (132847 => 132848)

--- trunk/Source/WebCore/ChangeLog	2012-10-29 21:07:41 UTC (rev 132847)
+++ trunk/Source/WebCore/ChangeLog	2012-10-29 21:20:14 UTC (rev 132848)
@@ -1,3 +1,19 @@
+2012-10-29  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Crash on checking version of corrupt backing store
+https://bugs.webkit.org/show_bug.cgi?id=100692
+
+Reviewed by Tony Chang.
+
+If the backing store fails to open (due to corruption, non-writeable disk, etc)
+the subsequent schema version check dereferences a null pointer. Fix to only
+do the schema check if the database opened.
+
+Chromium tests will be included with crrev.com/11196029
+
+* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
+(WebCore::IDBLevelDBBackingStore::open):
+
 2012-10-29  Philip Rogers  p...@google.com
 
 Let SVGElements have pending resources.


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp (132847 => 132848)

--- trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp	2012-10-29 21:07:41 UTC (rev 132847)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp	2012-10-29 21:20:14 UTC (rev 132848)
@@ -295,13 +295,13 @@
 String path = pathByAppendingComponent(pathBase, securityOrigin-databaseIdentifier() + .indexeddb.leveldb);
 
 db = LevelDBDatabase::open(path, comparator.get());
-bool knownSchema = isSchemaKnown(db.get());
-if (!knownSchema) {
+if (db  !isSchemaKnown(db.get())) {
 LOG_ERROR(IndexedDB backing store had unknown schema, treating it as failure to open);
 HistogramSupport::histogramEnumeration(WebCore.IndexedDB.BackingStore.OpenStatus, IDBLevelDBBackingStoreOpenFailedUnknownSchema, IDBLevelDBBackingStoreOpenMax);
+db.release();
 }
 
-if (db  knownSchema)
+if (db)
 HistogramSupport::histogramEnumeration(WebCore.IndexedDB.BackingStore.OpenStatus, IDBLevelDBBackingStoreOpenSuccess, IDBLevelDBBackingStoreOpenMax);
 else {
 LOG_ERROR(IndexedDB backing store open failed, attempting cleanup);






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [132698] trunk/Source/WebCore

2012-10-26 Thread jsbell
Title: [132698] trunk/Source/WebCore








Revision 132698
Author jsb...@chromium.org
Date 2012-10-26 14:55:18 -0700 (Fri, 26 Oct 2012)


Log Message
[WebKitIDL] Optional dictionary types should have default values of empty dictionary
https://bugs.webkit.org/show_bug.cgi?id=100547

Reviewed by Adam Barth.

Per WebIDL, Optional dictionary type arguments are always considered to have a default
value of an empty dictionary. WebKitIDL already supported this via the extended attribute
[Optional=DefaultIsUndefined] but make this the default for Dictionary.

Binding test expectations updated.

* Modules/filesystem/DirectoryEntry.h: Remove default parameters.
(DirectoryEntry):
* Modules/indexeddb/IDBDatabase.h: Remove overloads.
(IDBDatabase):
* Modules/indexeddb/IDBObjectStore.h: Remove overloads.
(IDBObjectStore):
* Modules/mediastream/RTCPeerConnection.idl: Remove DefaultIsUndefined annotations.
* bindings/scripts/CodeGeneratorJS.pm: Special case for Optional Dictionary.
(GenerateParametersCheck):
* bindings/scripts/CodeGeneratorV8.pm: Ditto.
(GenerateParametersCheck):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOptionsObject): Updated expectation - no early call.
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::optionsObjectCallback): Ditto.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/filesystem/DirectoryEntry.h
trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.h
trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl
trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (132697 => 132698)

--- trunk/Source/WebCore/ChangeLog	2012-10-26 21:41:33 UTC (rev 132697)
+++ trunk/Source/WebCore/ChangeLog	2012-10-26 21:55:18 UTC (rev 132698)
@@ -1,3 +1,32 @@
+2012-10-26  Joshua Bell  jsb...@chromium.org
+
+[WebKitIDL] Optional dictionary types should have default values of empty dictionary
+https://bugs.webkit.org/show_bug.cgi?id=100547
+
+Reviewed by Adam Barth.
+
+Per WebIDL, Optional dictionary type arguments are always considered to have a default
+value of an empty dictionary. WebKitIDL already supported this via the extended attribute
+[Optional=DefaultIsUndefined] but make this the default for Dictionary.
+
+Binding test expectations updated.
+
+* Modules/filesystem/DirectoryEntry.h: Remove default parameters.
+(DirectoryEntry):
+* Modules/indexeddb/IDBDatabase.h: Remove overloads.
+(IDBDatabase):
+* Modules/indexeddb/IDBObjectStore.h: Remove overloads.
+(IDBObjectStore):
+* Modules/mediastream/RTCPeerConnection.idl: Remove DefaultIsUndefined annotations.
+* bindings/scripts/CodeGeneratorJS.pm: Special case for Optional Dictionary.
+(GenerateParametersCheck):
+* bindings/scripts/CodeGeneratorV8.pm: Ditto.
+(GenerateParametersCheck):
+* bindings/scripts/test/JS/JSTestObj.cpp:
+(WebCore::jsTestObjPrototypeFunctionOptionsObject): Updated expectation - no early call.
+* bindings/scripts/test/V8/V8TestObj.cpp:
+(WebCore::TestObjV8Internal::optionsObjectCallback): Ditto.
+
 2012-10-26  Vincent Scheib  sch...@chromium.org
 
 Generated should not be supported for things with a shadow


Modified: trunk/Source/WebCore/Modules/filesystem/DirectoryEntry.h (132697 => 132698)

--- trunk/Source/WebCore/Modules/filesystem/DirectoryEntry.h	2012-10-26 21:41:33 UTC (rev 132697)
+++ trunk/Source/WebCore/Modules/filesystem/DirectoryEntry.h	2012-10-26 21:55:18 UTC (rev 132698)
@@ -56,8 +56,8 @@
 virtual bool isDirectory() const { return true; }
 
 PassRefPtrDirectoryReader createReader();
-void getFile(const String path, const Dictionary = Dictionary(), PassRefPtrEntryCallback = 0, PassRefPtrErrorCallback = 0);
-void getDirectory(const String path, const Dictionary = Dictionary(), PassRefPtrEntryCallback = 0, PassRefPtrErrorCallback = 0);
+void getFile(const String path, const Dictionary, PassRefPtrEntryCallback = 0, PassRefPtrErrorCallback = 0);
+void getDirectory(const String path, const Dictionary, PassRefPtrEntryCallback = 0, PassRefPtrErrorCallback = 0);
 void removeRecursively(PassRefPtrVoidCallback successCallback = 0, PassRefPtrErrorCallback = 0) const;
 
 private:


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h (132697 => 132698)

--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h	2012-10-26 21:41:33 UTC (rev 132697)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabase.h	2012-10-26 21:55:18 UTC (rev 132698)
@@ -62,8 +62,6 @@
 PassRefPtrIDBAny version() const;
 PassRefPtrDOMStringList objectStoreNames() 

[webkit-changes] [132568] trunk/Source/WebCore

2012-10-25 Thread jsbell
Title: [132568] trunk/Source/WebCore








Revision 132568
Author jsb...@chromium.org
Date 2012-10-25 21:05:48 -0700 (Thu, 25 Oct 2012)


Log Message
IndexedDB: Add histogram statistics for backing store errors
https://bugs.webkit.org/show_bug.cgi?id=98465

Reviewed by Adam Barth.

Define a macro for consistent asserting (during development), logging, and recording
internal backing store errors via histograms. Define specific histogram values to
track issues with opening backing stores to gather stats on corruption.

No new tests - just the stats, ma'am, just the stats.

* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore):
(WebCore::setUpMetadata):
(WebCore::IDBLevelDBBackingStore::open):
(WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
(WebCore::deleteRange):
(WebCore::IDBLevelDBBackingStore::getObjectStores):
(WebCore::IDBLevelDBBackingStore::createObjectStore):
(WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
(WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
(WebCore::IDBLevelDBBackingStore::getIndexes):
(WebCore::IDBLevelDBBackingStore::createIndex):
(WebCore::IDBLevelDBBackingStore::deleteIndex):
(WebCore::IDBLevelDBBackingStore::findKeyInIndex):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (132567 => 132568)

--- trunk/Source/WebCore/ChangeLog	2012-10-26 03:33:12 UTC (rev 132567)
+++ trunk/Source/WebCore/ChangeLog	2012-10-26 04:05:48 UTC (rev 132568)
@@ -1,3 +1,35 @@
+2012-10-25  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Add histogram statistics for backing store errors
+https://bugs.webkit.org/show_bug.cgi?id=98465
+
+Reviewed by Adam Barth.
+
+Define a macro for consistent asserting (during development), logging, and recording
+internal backing store errors via histograms. Define specific histogram values to
+track issues with opening backing stores to gather stats on corruption.
+
+No new tests - just the stats, ma'am, just the stats.
+
+* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
+(WebCore):
+(WebCore::setUpMetadata):
+(WebCore::IDBLevelDBBackingStore::open):
+(WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
+(WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
+(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
+(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
+(WebCore::deleteRange):
+(WebCore::IDBLevelDBBackingStore::getObjectStores):
+(WebCore::IDBLevelDBBackingStore::createObjectStore):
+(WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
+(WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
+(WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
+(WebCore::IDBLevelDBBackingStore::getIndexes):
+(WebCore::IDBLevelDBBackingStore::createIndex):
+(WebCore::IDBLevelDBBackingStore::deleteIndex):
+(WebCore::IDBLevelDBBackingStore::findKeyInIndex):
+
 2012-10-25  Adam Barth  aba...@webkit.org
 
 [V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp (132567 => 132568)

--- trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp	2012-10-26 03:33:12 UTC (rev 132567)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp	2012-10-26 04:05:48 UTC (rev 132568)
@@ -32,6 +32,7 @@
 
 #include wtf/Assertions.h
 #include FileSystem.h
+#include HistogramSupport.h
 #include IDBFactoryBackendImpl.h
 #include IDBKey.h
 #include IDBKeyPath.h
@@ -51,6 +52,26 @@
 
 const int64_t KeyGeneratorInitialNumber = 1; // From the IndexedDB specification.
 
+enum IDBLevelDBBackingStoreInternalErrorType {
+IDBLevelDBBackingStoreReadError,
+IDBLevelDBBackingStoreWriteError,
+IDBLevelDBBackingStoreConsistencyError,
+IDBLevelDBBackingStoreInternalErrorMax,
+};
+static inline void recordInternalError(IDBLevelDBBackingStoreInternalErrorType type)
+{
+HistogramSupport::histogramEnumeration(WebCore.IndexedDB.BackingStore.InternalError, type, IDBLevelDBBackingStoreInternalErrorMax);
+}
+
+// Use to signal conditions that usually indicate developer error, but could be caused by data corruption.
+// A macro is used instead of an inline function so that the assert and log report the line number.
+#define InternalError(type) \
+do { \
+ASSERT_NOT_REACHED(); \
+LOG_ERROR(Internal IndexedDB Error: %s, #type); \
+recordInternalError(type); \
+} while (0)
+
 template typename 

[webkit-changes] [132401] trunk

2012-10-24 Thread jsbell
Title: [132401] trunk








Revision 132401
Author jsb...@chromium.org
Date 2012-10-24 14:36:57 -0700 (Wed, 24 Oct 2012)


Log Message
IndexedDB: Cursor property value identities should be preserved
https://bugs.webkit.org/show_bug.cgi?id=100051

Reviewed by Tony Chang.

Source/WebCore:

Some W3C test submissions point out that subsequent accesses to cursor properties should
yield the same value until the cursor advances. We handled this with custom binding code for
IDBCursor.value but not IDBCursor.key or IDBCursor.primaryKey. The custom value code is
being removed in webkit.org/b/100034 in favor of returning ScriptValue and the same fix can
be applied to key/primaryKey.

Test: storage/indexeddb/cursor-properties.html

* Modules/indexeddb/IDBCursor.cpp: Compute/store/serve up ScriptValues instead of IDBKeys
(WebCore::IDBCursor::key):
(WebCore::IDBCursor::primaryKey):
(WebCore::IDBCursor::setValueReady):
* Modules/indexeddb/IDBCursor.h:
(IDBCursor):
(WebCore::IDBCursor::idbPrimaryKey): Expose this for callers that need access to the IDBKey
* Modules/indexeddb/IDBCursor.idl:
* Modules/indexeddb/IDBObjectStore.cpp: ... like this one.
(WebCore):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent): Pass along script context, for the conversion.
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::idbKeyToScriptValue): New method for explicit conversion.
(WebCore):
* bindings/v8/IDBBindingUtilities.h:
(WebCore):

LayoutTests:

Add tests to verify identity/read-only/mutability of cursor properties.

* storage/indexeddb/cursor-properties-expected.txt: Added.
* storage/indexeddb/cursor-properties.html: Added.
* storage/indexeddb/resources/cursor-properties.js: Added.
(test.request.onsuccess):
(test):
(onUpgradeNeeded):
(onOpenSuccess.request.onsuccess):
(onOpenSuccess):
(checkProperty):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBCursor.h
trunk/Source/WebCore/Modules/indexeddb/IDBCursor.idl
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp
trunk/Source/WebCore/bindings/v8/IDBBindingUtilities.cpp
trunk/Source/WebCore/bindings/v8/IDBBindingUtilities.h


Added Paths

trunk/LayoutTests/storage/indexeddb/cursor-properties-expected.txt
trunk/LayoutTests/storage/indexeddb/cursor-properties.html
trunk/LayoutTests/storage/indexeddb/resources/cursor-properties.js




Diff

Modified: trunk/LayoutTests/ChangeLog (132400 => 132401)

--- trunk/LayoutTests/ChangeLog	2012-10-24 21:34:16 UTC (rev 132400)
+++ trunk/LayoutTests/ChangeLog	2012-10-24 21:36:57 UTC (rev 132401)
@@ -1,3 +1,22 @@
+2012-10-24  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Cursor property value identities should be preserved
+https://bugs.webkit.org/show_bug.cgi?id=100051
+
+Reviewed by Tony Chang.
+
+Add tests to verify identity/read-only/mutability of cursor properties.
+
+* storage/indexeddb/cursor-properties-expected.txt: Added.
+* storage/indexeddb/cursor-properties.html: Added.
+* storage/indexeddb/resources/cursor-properties.js: Added.
+(test.request.onsuccess):
+(test):
+(onUpgradeNeeded):
+(onOpenSuccess.request.onsuccess):
+(onOpenSuccess):
+(checkProperty):
+
 2012-10-24  Levi Weintraub  le...@chromium.org
 
 Unreviewed gardening. Updating slow expectations for two tests following a Chromium


Added: trunk/LayoutTests/storage/indexeddb/cursor-properties-expected.txt (0 => 132401)

--- trunk/LayoutTests/storage/indexeddb/cursor-properties-expected.txt	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/cursor-properties-expected.txt	2012-10-24 21:36:57 UTC (rev 132401)
@@ -0,0 +1,64 @@
+Test that IndexedDB's cursor key/primaryKey/value properties preserve mutations.
+
+On success, you will see a series of PASS messages, followed by TEST COMPLETE.
+
+
+indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
+
+dbname = cursor-properties.html
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname, 1)
+
+onUpgradeNeeded():
+db = event.target.result
+store = db.createObjectStore('store')
+index = store.createIndex('index', 'id')
+store.put({id: ['indexKey']}, ['primaryKey'])
+
+onOpenSuccess():
+db = event.target.result
+trans = db.transaction('store')
+store = trans.objectStore('store')
+index = store.index('index')
+
+request = index.openCursor()
+
+onCursorSuccess():
+cursor = event.target.result
+PASS cursor is non-null.
+PASS areArraysEqual(cursor.key, ['indexKey']) is true
+PASS areArraysEqual(cursor.primaryKey, ['primaryKey']) is true
+
+Check identity:
+v = cursor.key
+PASS v === cursor.key is true
+Check read-only:
+cursor.key = null
+PASS v === cursor.key is true
+Check mutability:
+cursor.key.expando = 123
+PASS cursor.key.expando is 123
+
+Check 

[webkit-changes] [132140] trunk

2012-10-22 Thread jsbell
Title: [132140] trunk








Revision 132140
Author jsb...@chromium.org
Date 2012-10-22 14:53:27 -0700 (Mon, 22 Oct 2012)


Log Message
IndexedDB: Bounds check for IDBCursor.advance() incorrect
https://bugs.webkit.org/show_bug.cgi?id=100014

Reviewed by Tony Chang.

Source/WebCore:

Fix introduced by trac.webkit.org/changeset/131658 restricted cursor.advance()'s argument
as [EnforceRange] unsigned long long, but it's typed as [EnforceRange] unsigned long; the
useless comparison was caught by a clang check.

In lieu of webkit.org/b/96798 make it long long and correct the range check.

Test: storage/indexeddb/cursor-advance.html

* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::advance):
* Modules/indexeddb/IDBCursor.h:
(IDBCursor):
* Modules/indexeddb/IDBCursor.idl:

LayoutTests:

Assert that advance(2^32) throws and advance(2^32-1) does not, per WebIDL.

* storage/indexeddb/cursor-advance-expected.txt:
* storage/indexeddb/resources/cursor-advance.js:
(testBadAdvance.advanceBadly):
(testBadAdvance):
(testEdges.request.onsuccess):
(testEdges):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/storage/indexeddb/cursor-advance-expected.txt
trunk/LayoutTests/storage/indexeddb/resources/cursor-advance.js
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBCursor.h
trunk/Source/WebCore/Modules/indexeddb/IDBCursor.idl




Diff

Modified: trunk/LayoutTests/ChangeLog (132139 => 132140)

--- trunk/LayoutTests/ChangeLog	2012-10-22 21:49:08 UTC (rev 132139)
+++ trunk/LayoutTests/ChangeLog	2012-10-22 21:53:27 UTC (rev 132140)
@@ -1,3 +1,19 @@
+2012-10-22  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Bounds check for IDBCursor.advance() incorrect
+https://bugs.webkit.org/show_bug.cgi?id=100014
+
+Reviewed by Tony Chang.
+
+Assert that advance(2^32) throws and advance(2^32-1) does not, per WebIDL.
+
+* storage/indexeddb/cursor-advance-expected.txt:
+* storage/indexeddb/resources/cursor-advance.js:
+(testBadAdvance.advanceBadly):
+(testBadAdvance):
+(testEdges.request.onsuccess):
+(testEdges):
+
 2012-10-22  Raphael Kubo da Costa  raphael.kubo.da.co...@intel.com
 
 [EFL] Rebaseline pixel expectations after r131941 and r131991, part 7.


Modified: trunk/LayoutTests/storage/indexeddb/cursor-advance-expected.txt (132139 => 132140)

--- trunk/LayoutTests/storage/indexeddb/cursor-advance-expected.txt	2012-10-22 21:49:08 UTC (rev 132139)
+++ trunk/LayoutTests/storage/indexeddb/cursor-advance-expected.txt	2012-10-22 21:53:27 UTC (rev 132140)
@@ -140,9 +140,26 @@
 Expecting TypeError exception from cursor.advance(-1)
 PASS Exception was thrown.
 PASS cursor.advance(-1) threw TypeError: Type error
+Expecting TypeError exception from cursor.advance(0x1)
+PASS Exception was thrown.
+PASS cursor.advance(0x1) threw TypeError: Type error
 Expecting TypeError exception from cursor.advance(0x20)
 PASS Exception was thrown.
 PASS cursor.advance(0x20) threw TypeError: Type error
+
+testEdges():
+trans = db.transaction(objectStoreName, 'readonly')
+objectStore = trans.objectStore(objectStoreName)
+request = objectStore.openCursor()
+
+onSuccess():
+cursor = event.target.result
+PASS cursor is non-null.
+cursor.advance(0x)
+
+onSuccess():
+cursor = event.target.result
+PASS cursor is null
 testDelete()
 trans = db.transaction(objectStoreName, 'readwrite')
 objectStore = trans.objectStore(objectStoreName)


Modified: trunk/LayoutTests/storage/indexeddb/resources/cursor-advance.js (132139 => 132140)

--- trunk/LayoutTests/storage/indexeddb/resources/cursor-advance.js	2012-10-22 21:49:08 UTC (rev 132139)
+++ trunk/LayoutTests/storage/indexeddb/resources/cursor-advance.js	2012-10-22 21:53:27 UTC (rev 132140)
@@ -331,12 +331,38 @@
 
 evalAndExpectExceptionClass(cursor.advance(0), TypeError);
 evalAndExpectExceptionClass(cursor.advance(-1), TypeError);
+evalAndExpectExceptionClass(cursor.advance(0x1), TypeError);
 evalAndExpectExceptionClass(cursor.advance(0x20), TypeError);
-testDelete();
+testEdges();
 }
 request._onsuccess_ = advanceBadly;
 request._onerror_ = unexpectedErrorCallback;
+}
 
+function testEdges()
+{
+preamble();
+evalAndLog(trans = db.transaction(objectStoreName, 'readonly'));
+trans._onabort_ = unexpectedAbortCallback;
+
+objectStore = evalAndLog(objectStore = trans.objectStore(objectStoreName));
+evalAndLog(request = objectStore.openCursor());
+request._onerror_ = unexpectedErrorCallback;
+
+firstSuccess = true;
+request._onsuccess_ = function onSuccess(evt) {
+preamble(event);
+evalAndLog(cursor = event.target.result);
+if (firstSuccess) {
+shouldBeNonNull(cursor);
+firstSuccess = false;
+evalAndLog(cursor.advance(0x));
+ 

[webkit-changes] [132179] trunk/Source/WebCore

2012-10-22 Thread jsbell
Title: [132179] trunk/Source/WebCore








Revision 132179
Author jsb...@chromium.org
Date 2012-10-22 22:21:22 -0700 (Mon, 22 Oct 2012)


Log Message
IndexedDB: Remove custom binding code for IDBCursor.value
https://bugs.webkit.org/show_bug.cgi?id=100034

Reviewed by Kentaro Hara.

Now that we're using ScriptValue instead of SerializedScriptValue we can just expose
IDBCursor.value as an |any| (IDL) or |ScriptValue| (C++) to maintain the specified
semantics that the object identity is retained across accesses.

Test: storage/indexeddb/cursor-value.html

* Modules/indexeddb/IDBCursor.cpp: Remove dirty tracking.
(WebCore::IDBCursor::IDBCursor):
(WebCore::IDBCursor::value):
(WebCore::IDBCursor::setValueReady):
* Modules/indexeddb/IDBCursor.h: IDBAny - ScriptValue
(IDBCursor):
* Modules/indexeddb/IDBCursorWithValue.idl: IDBAny - any
* Modules/indexeddb/IDBObjectStore.cpp: No need to route through IDBAny to get ScriptValue.
(WebCore):
* UseV8.cmake: Remove references to IDBCustomBindings.cpp
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* bindings/v8/IDBCustomBindings.cpp: Removed.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp
trunk/Source/WebCore/Modules/indexeddb/IDBCursor.h
trunk/Source/WebCore/Modules/indexeddb/IDBCursorWithValue.idl
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp
trunk/Source/WebCore/UseV8.cmake
trunk/Source/WebCore/WebCore.gypi
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj


Removed Paths

trunk/Source/WebCore/bindings/v8/IDBCustomBindings.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (132178 => 132179)

--- trunk/Source/WebCore/ChangeLog	2012-10-23 05:11:29 UTC (rev 132178)
+++ trunk/Source/WebCore/ChangeLog	2012-10-23 05:21:22 UTC (rev 132179)
@@ -1,3 +1,30 @@
+2012-10-22  Joshua Bell  jsb...@chromium.org
+
+IndexedDB: Remove custom binding code for IDBCursor.value
+https://bugs.webkit.org/show_bug.cgi?id=100034
+
+Reviewed by Kentaro Hara.
+
+Now that we're using ScriptValue instead of SerializedScriptValue we can just expose
+IDBCursor.value as an |any| (IDL) or |ScriptValue| (C++) to maintain the specified
+semantics that the object identity is retained across accesses.
+
+Test: storage/indexeddb/cursor-value.html
+
+* Modules/indexeddb/IDBCursor.cpp: Remove dirty tracking.
+(WebCore::IDBCursor::IDBCursor):
+(WebCore::IDBCursor::value):
+(WebCore::IDBCursor::setValueReady):
+* Modules/indexeddb/IDBCursor.h: IDBAny - ScriptValue
+(IDBCursor):
+* Modules/indexeddb/IDBCursorWithValue.idl: IDBAny - any
+* Modules/indexeddb/IDBObjectStore.cpp: No need to route through IDBAny to get ScriptValue.
+(WebCore):
+* UseV8.cmake: Remove references to IDBCustomBindings.cpp
+* WebCore.gypi: Ditto.
+* WebCore.vcproj/WebCore.vcproj: Ditto.
+* bindings/v8/IDBCustomBindings.cpp: Removed.
+
 2012-10-22  Dan Bernstein  m...@apple.com
 
 Font’s fast code path is used for partial runs with kerning and ligatures, but shouldn’t be


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp (132178 => 132179)

--- trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp	2012-10-23 05:11:29 UTC (rev 132178)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp	2012-10-23 05:21:22 UTC (rev 132179)
@@ -81,7 +81,6 @@
 , m_transaction(transaction)
 , m_transactionNotifier(transaction, this)
 , m_gotValue(false)
-, m_valueIsDirty(true)
 {
 ASSERT(m_backend);
 ASSERT(m_request);
@@ -114,10 +113,9 @@
 return m_currentPrimaryKey;
 }
 
-PassRefPtrIDBAny IDBCursor::value()
+const ScriptValue IDBCursor::value() const
 {
 IDB_TRACE(IDBCursor::value);
-m_valueIsDirty = false;
 return m_currentValue;
 }
 
@@ -277,10 +275,9 @@
 ASSERT_UNUSED(injected, injected);
 }
 }
-m_currentValue = IDBAny::create(value);
+m_currentValue = value;
 
 m_gotValue = true;
-m_valueIsDirty = true;
 }
 
 PassRefPtrIDBObjectStore IDBCursor::effectiveObjectStore()


Modified: trunk/Source/WebCore/Modules/indexeddb/IDBCursor.h (132178 => 132179)

--- trunk/Source/WebCore/Modules/indexeddb/IDBCursor.h	2012-10-23 05:11:29 UTC (rev 132178)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBCursor.h	2012-10-23 05:21:22 UTC (rev 132179)
@@ -72,7 +72,7 @@
 const String direction() const;
 PassRefPtrIDBKey key() const;
 PassRefPtrIDBKey primaryKey() const;
-PassRefPtrIDBAny value();
+const ScriptValue value() const;
 IDBAny* source() const;
 
 PassRefPtrIDBRequest update(ScriptExecutionContext*, ScriptValue, ExceptionCode);
@@ -85,11 +85,6 @@
 void close();
 void setValueReady(PassRefPtrIDBKey, PassRefPtrIDBKey primaryKey, ScriptValue);
 
-// The spec requires that the script object that wraps the value
-// be unchanged until the value changes as a result of the cursor
-

[webkit-changes] [131934] trunk

2012-10-19 Thread jsbell
Title: [131934] trunk








Revision 131934
Author jsb...@chromium.org
Date 2012-10-19 12:46:57 -0700 (Fri, 19 Oct 2012)


Log Message
[V8] IndexedDB: Crash when lazy-indexing Date keys
https://bugs.webkit.org/show_bug.cgi?id=99860

Reviewed by Adam Barth.

Source/WebCore:

Missing a scope/context needed when digging values out of Date objects
in an indexing callback.

Test: storage/indexeddb/lazy-index-types.html

* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromScriptValueAndKeyPath):

LayoutTests:

Add test for greedy/lazy indexing all different key types.

* storage/indexeddb/lazy-index-types-expected.txt: Added.
* storage/indexeddb/lazy-index-types.html: Added.
* storage/indexeddb/resources/lazy-index-types.js: Added.
(test.request.onsuccess):
(test):
(onSuccess.request.onsuccess):
(onSuccess):
(onComplete):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/bindings/v8/IDBBindingUtilities.cpp


Added Paths

trunk/LayoutTests/storage/indexeddb/lazy-index-types-expected.txt
trunk/LayoutTests/storage/indexeddb/lazy-index-types.html
trunk/LayoutTests/storage/indexeddb/resources/lazy-index-types.js




Diff

Modified: trunk/LayoutTests/ChangeLog (131933 => 131934)

--- trunk/LayoutTests/ChangeLog	2012-10-19 19:45:03 UTC (rev 131933)
+++ trunk/LayoutTests/ChangeLog	2012-10-19 19:46:57 UTC (rev 131934)
@@ -1,3 +1,21 @@
+2012-10-19  Joshua Bell  jsb...@chromium.org
+
+[V8] IndexedDB: Crash when lazy-indexing Date keys
+https://bugs.webkit.org/show_bug.cgi?id=99860
+
+Reviewed by Adam Barth.
+
+Add test for greedy/lazy indexing all different key types.
+
+* storage/indexeddb/lazy-index-types-expected.txt: Added.
+* storage/indexeddb/lazy-index-types.html: Added.
+* storage/indexeddb/resources/lazy-index-types.js: Added.
+(test.request.onsuccess):
+(test):
+(onSuccess.request.onsuccess):
+(onSuccess):
+(onComplete):
+
 2012-10-18  Dean Jackson  d...@apple.com
 
 Shader translator needs option to clamp uniform array accesses in vertex shaders


Added: trunk/LayoutTests/storage/indexeddb/lazy-index-types-expected.txt (0 => 131934)

--- trunk/LayoutTests/storage/indexeddb/lazy-index-types-expected.txt	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/lazy-index-types-expected.txt	2012-10-19 19:46:57 UTC (rev 131934)
@@ -0,0 +1,56 @@
+Test lazy IndexedDB index population with various key types.
+
+On success, you will see a series of PASS messages, followed by TEST COMPLETE.
+
+
+indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
+
+dbname = lazy-index-types.html
+indexedDB.deleteDatabase(dbname)
+indexedDB.open(dbname, 1)
+
+onUpgradeNeeded():
+db = event.target.result
+store = db.createObjectStore('store', {autoIncrement: true})
+index = store.createIndex('greedy-index', 'id')
+store.put({id: 0})
+store.put({id: new Date(0)})
+store.put({id: 'string'})
+store.put({id: []})
+store.put({id: [0]})
+store.put({id: [new Date(0)]})
+store.put({id: ['string']})
+store.put({id: [[]]})
+store.put({id: undefined})
+store.put({id: null})
+store.put({id: true})
+store.put({id: false})
+store.put({id: {}})
+store.put({id: /(?:)/})
+index = store.createIndex('lazy-index', 'id')
+expectedIndexSize = 8
+
+onSuccess():
+db = event.target.result
+trans = db.transaction('store')
+store = trans.objectStore('store')
+greedyIndex = store.index('greedy-index')
+request = greedyIndex.count()
+lazyIndex = store.index('lazy-index')
+request = lazyIndex.count()
+
+countSuccess():
+PASS event.target.result is expectedIndexSize
+gotGreedyCount = true
+
+countSuccess():
+PASS event.target.result is expectedIndexSize
+gotLazyCount = true
+
+onComplete():
+PASS gotGreedyCount is true
+PASS gotLazyCount is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/storage/indexeddb/lazy-index-types.html (0 => 131934)

--- trunk/LayoutTests/storage/indexeddb/lazy-index-types.html	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/lazy-index-types.html	2012-10-19 19:46:57 UTC (rev 131934)
@@ -0,0 +1,10 @@
+html
+head
+script src=""
+script src=""
+/head
+body
+script src=""
+script src=""
+/body
+/html


Added: trunk/LayoutTests/storage/indexeddb/resources/lazy-index-types.js (0 => 131934)

--- trunk/LayoutTests/storage/indexeddb/resources/lazy-index-types.js	(rev 0)
+++ trunk/LayoutTests/storage/indexeddb/resources/lazy-index-types.js	2012-10-19 19:46:57 UTC (rev 131934)
@@ -0,0 +1,98 @@
+if (this.importScripts) {
+importScripts('../../../fast/js/resources/js-test-pre.js');
+importScripts('shared.js');
+}
+
+description(Test lazy IndexedDB index population with various key types.);
+
+function test()
+{
+removeVendorPrefixes();
+setDBNameFromPath();
+
+request = evalAndLog(indexedDB.deleteDatabase(dbname));
+  

  1   2   3   >