Title: [107278] trunk
- Revision
- 107278
- Author
- [email protected]
- Date
- 2012-02-09 12:49:34 -0800 (Thu, 09 Feb 2012)
Log Message
[Chromium] IndexedDB: IDBVersionChangeRequest V8 wrapper not generated as ActiveDOMObject
https://bugs.webkit.org/show_bug.cgi?id=78167
Source/WebCore:
Add ActiveDOMObject annotation to IDBVersionChangeRequest.idl; it is not
automagically inherited from IDBRequest.idl.
Reviewed by Adam Barth.
Test: storage/indexeddb/versionchangerequest-activedomobject.html
* storage/IDBVersionChangeRequest.idl:
LayoutTests:
Reviewed by Adam Barth.
* storage/indexeddb/versionchangerequest-activedomobject-expected.txt: Added.
* storage/indexeddb/versionchangerequest-activedomobject.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (107277 => 107278)
--- trunk/LayoutTests/ChangeLog 2012-02-09 20:44:05 UTC (rev 107277)
+++ trunk/LayoutTests/ChangeLog 2012-02-09 20:49:34 UTC (rev 107278)
@@ -1,3 +1,13 @@
+2012-02-09 Joshua Bell <[email protected]>
+
+ [Chromium] IndexedDB: IDBVersionChangeRequest V8 wrapper not generated as ActiveDOMObject
+ https://bugs.webkit.org/show_bug.cgi?id=78167
+
+ Reviewed by Adam Barth.
+
+ * storage/indexeddb/versionchangerequest-activedomobject-expected.txt: Added.
+ * storage/indexeddb/versionchangerequest-activedomobject.html: Added.
+
2012-02-09 Julien Chaffraix <[email protected]>
Unreviewed gardening.
Added: trunk/LayoutTests/storage/indexeddb/versionchangerequest-activedomobject-expected.txt (0 => 107278)
--- trunk/LayoutTests/storage/indexeddb/versionchangerequest-activedomobject-expected.txt (rev 0)
+++ trunk/LayoutTests/storage/indexeddb/versionchangerequest-activedomobject-expected.txt 2012-02-09 20:49:34 UTC (rev 107278)
@@ -0,0 +1,25 @@
+Ensure that IDBVersionChangeRequest objects are not GC'd if they have pending events
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB;
+PASS indexedDB == null is false
+
+window.dbname = 'versionchangerequest-activedomobject'
+
+testDeleteDatabase():
+indexedDB.deleteDatabase(window.dbname)
+window.gc()
+PASS deleteDatabase's IDBVersionChangeRequest.onsuccess event fired
+
+testSetVersion():
+openRequest = indexedDB.open(window.dbname)
+db = openRequest.result
+db.setVersion('1')
+window.gc()
+PASS setVersion's IDBVersionChangeRequest.onsuccess event fired
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/storage/indexeddb/versionchangerequest-activedomobject.html (0 => 107278)
--- trunk/LayoutTests/storage/indexeddb/versionchangerequest-activedomobject.html (rev 0)
+++ trunk/LayoutTests/storage/indexeddb/versionchangerequest-activedomobject.html 2012-02-09 20:49:34 UTC (rev 107278)
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+<script src=""
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script>
+
+description("Ensure that IDBVersionChangeRequest objects are not GC'd if they have pending events");
+if (window.layoutTestController)
+ layoutTestController.waitUntilDone();
+
+function test() {
+ evalAndLog("indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB;");
+ shouldBeFalse("indexedDB == null");
+
+ debug("");
+ evalAndLog("window.dbname = 'versionchangerequest-activedomobject'");
+
+ testDeleteDatabase();
+}
+
+function testDeleteDatabase()
+{
+ debug("");
+ debug("testDeleteDatabase():");
+ // NOTE: deleteRequest is local variable so it is not captured in global scope.
+ var deleteRequest = evalAndLog("indexedDB.deleteDatabase(window.dbname)");
+ deleteRequest._onerror_ = unexpectedErrorCallback;
+ deleteRequest._onblocked_ = unexpectedBlockedCallback;
+ deleteRequest._onsuccess_ = function() { deleteSuccess(); };
+ deleteRequest = null;
+ if (window.gc) {
+ evalAndLog("window.gc()");
+ }
+}
+
+function deleteSuccess()
+{
+ testPassed("deleteDatabase's IDBVersionChangeRequest.onsuccess event fired");
+ testSetVersion();
+}
+
+function testSetVersion()
+{
+ debug("");
+ debug("testSetVersion():");
+
+ // NOTE: This is just an IDBRequest, it can be global.
+ evalAndLog("openRequest = indexedDB.open(window.dbname)");
+ openRequest._onerror_ = unexpectedErrorCallback;
+ openRequest._onsuccess_ = function () {
+ evalAndLog("db = openRequest.result");
+
+ // NOTE: versionRequest is local variable so it is not captured in global scope.
+ var versionRequest = evalAndLog("db.setVersion('1')");
+ versionRequest._onerror_ = unexpectedErrorCallback;
+ versionRequest._onblocked_ = unexpectedBlockedCallback;
+ versionRequest._onsuccess_ = function() { versionSuccess(); };
+ versionRequest = null;
+ if (window.gc) {
+ evalAndLog("window.gc()");
+ }
+ };
+}
+
+function versionSuccess()
+{
+ testPassed("setVersion's IDBVersionChangeRequest.onsuccess event fired");
+ done();
+}
+
+test();
+
+</script>
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (107277 => 107278)
--- trunk/Source/WebCore/ChangeLog 2012-02-09 20:44:05 UTC (rev 107277)
+++ trunk/Source/WebCore/ChangeLog 2012-02-09 20:49:34 UTC (rev 107278)
@@ -1,3 +1,17 @@
+2012-02-09 Joshua Bell <[email protected]>
+
+ [Chromium] IndexedDB: IDBVersionChangeRequest V8 wrapper not generated as ActiveDOMObject
+ https://bugs.webkit.org/show_bug.cgi?id=78167
+
+ Add ActiveDOMObject annotation to IDBVersionChangeRequest.idl; it is not
+ automagically inherited from IDBRequest.idl.
+
+ Reviewed by Adam Barth.
+
+ Test: storage/indexeddb/versionchangerequest-activedomobject.html
+
+ * storage/IDBVersionChangeRequest.idl:
+
2012-02-09 Anders Carlsson <[email protected]>
The scrolling tree should know more about the scrollbar state
Modified: trunk/Source/WebCore/storage/IDBVersionChangeRequest.idl (107277 => 107278)
--- trunk/Source/WebCore/storage/IDBVersionChangeRequest.idl 2012-02-09 20:44:05 UTC (rev 107277)
+++ trunk/Source/WebCore/storage/IDBVersionChangeRequest.idl 2012-02-09 20:49:34 UTC (rev 107278)
@@ -27,6 +27,7 @@
interface [
Conditional=INDEXED_DATABASE,
+ ActiveDOMObject,
EventTarget
] IDBVersionChangeRequest : IDBRequest {
attribute EventListener onblocked;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes