[V8] IndexedDB: IDBTransaction objects leak in Workers
authorjsbell@chromium.org <jsbell@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 25 Feb 2012 00:26:48 +0000 (00:26 +0000)
committerjsbell@chromium.org <jsbell@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 25 Feb 2012 00:26:48 +0000 (00:26 +0000)
commit2703a125b706e25a10795666af08143081205fd1
tree8fd9c32f7999c628ae9c0bf4cada640afcac2769
parent3b59b2a603cf2049620b685c9de1248fa81bd72f
[V8] IndexedDB: IDBTransaction objects leak in Workers
https://bugs.webkit.org/show_bug.cgi?id=79308

Source/WebCore:

Use a V8RecursionScope whenever Workers call into script, so that
post-script side-effects can be executed.

Reviewed by Tony Chang.

Test: storage/indexeddb/transaction-abort-workers.html

* bindings/v8/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute):
* bindings/v8/V8WorkerContextErrorHandler.cpp:
(WebCore::V8WorkerContextErrorHandler::callListenerFunction):
* bindings/v8/V8WorkerContextEventListener.cpp:
(WebCore::V8WorkerContextEventListener::callListenerFunction):
* bindings/v8/WorkerContextExecutionProxy.cpp: Replace custom recursion tracking.
(WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
(WebCore::WorkerContextExecutionProxy::runScript):
* bindings/v8/WorkerContextExecutionProxy.h:
(WorkerContextExecutionProxy):

LayoutTests:

Reviewed by Tony Chang.

* fast/js/resources/js-test-pre.js:
(startWorker): Return Worker object so onerror can be hooked.
* storage/indexeddb/resources/transaction-abort-workers.js: Added.
* storage/indexeddb/transaction-abort-workers-expected.txt: Added.
* storage/indexeddb/transaction-abort-workers.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@108867 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/fast/js/resources/js-test-pre.js
LayoutTests/storage/indexeddb/resources/transaction-abort-workers.js [new file with mode: 0644]
LayoutTests/storage/indexeddb/transaction-abort-workers-expected.txt [new file with mode: 0644]
LayoutTests/storage/indexeddb/transaction-abort-workers.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/bindings/v8/ScheduledAction.cpp
Source/WebCore/bindings/v8/V8WorkerContextErrorHandler.cpp
Source/WebCore/bindings/v8/V8WorkerContextEventListener.cpp
Source/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp
Source/WebCore/bindings/v8/WorkerContextExecutionProxy.h