OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 13 matching lines...) Expand all Loading... |
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 #include "config.h" | 31 #include "config.h" |
32 #include "bindings/v8/V8GCController.h" | 32 #include "bindings/v8/V8GCController.h" |
33 | 33 |
34 #include <algorithm> | 34 #include "bindings/core/v8/V8MutationObserver.h" |
35 #include "V8MutationObserver.h" | 35 #include "bindings/core/v8/V8Node.h" |
36 #include "V8Node.h" | |
37 #include "V8ScriptRunner.h" | |
38 #include "bindings/v8/RetainedDOMInfo.h" | 36 #include "bindings/v8/RetainedDOMInfo.h" |
39 #include "bindings/v8/V8AbstractEventListener.h" | 37 #include "bindings/v8/V8AbstractEventListener.h" |
40 #include "bindings/v8/V8Binding.h" | 38 #include "bindings/v8/V8Binding.h" |
| 39 #include "bindings/v8/V8ScriptRunner.h" |
41 #include "bindings/v8/WrapperTypeInfo.h" | 40 #include "bindings/v8/WrapperTypeInfo.h" |
42 #include "core/dom/Attr.h" | 41 #include "core/dom/Attr.h" |
43 #include "core/dom/NodeTraversal.h" | 42 #include "core/dom/NodeTraversal.h" |
44 #include "core/dom/TemplateContentDocumentFragment.h" | 43 #include "core/dom/TemplateContentDocumentFragment.h" |
45 #include "core/dom/shadow/ElementShadow.h" | 44 #include "core/dom/shadow/ElementShadow.h" |
46 #include "core/dom/shadow/ShadowRoot.h" | 45 #include "core/dom/shadow/ShadowRoot.h" |
47 #include "core/html/HTMLImageElement.h" | 46 #include "core/html/HTMLImageElement.h" |
48 #include "core/html/HTMLTemplateElement.h" | 47 #include "core/html/HTMLTemplateElement.h" |
49 #include "core/inspector/InspectorTraceEvents.h" | 48 #include "core/inspector/InspectorTraceEvents.h" |
50 #include "core/svg/SVGElement.h" | 49 #include "core/svg/SVGElement.h" |
51 #include "platform/TraceEvent.h" | 50 #include "platform/TraceEvent.h" |
| 51 #include <algorithm> |
52 | 52 |
53 namespace WebCore { | 53 namespace WebCore { |
54 | 54 |
55 // FIXME: This should use opaque GC roots. | 55 // FIXME: This should use opaque GC roots. |
56 static void addReferencesForNodeWithEventListeners(v8::Isolate* isolate, Node* n
ode, const v8::Persistent<v8::Object>& wrapper) | 56 static void addReferencesForNodeWithEventListeners(v8::Isolate* isolate, Node* n
ode, const v8::Persistent<v8::Object>& wrapper) |
57 { | 57 { |
58 ASSERT(node->hasEventListeners()); | 58 ASSERT(node->hasEventListeners()); |
59 | 59 |
60 EventListenerIterator iterator(node); | 60 EventListenerIterator iterator(node); |
61 while (EventListener* listener = iterator.nextListener()) { | 61 while (EventListener* listener = iterator.nextListener()) { |
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 void V8GCController::collectGarbage(v8::Isolate* isolate) | 414 void V8GCController::collectGarbage(v8::Isolate* isolate) |
415 { | 415 { |
416 v8::HandleScope handleScope(isolate); | 416 v8::HandleScope handleScope(isolate); |
417 RefPtr<ScriptState> scriptState = ScriptState::create(v8::Context::New(isola
te), DOMWrapperWorld::create()); | 417 RefPtr<ScriptState> scriptState = ScriptState::create(v8::Context::New(isola
te), DOMWrapperWorld::create()); |
418 ScriptState::Scope scope(scriptState.get()); | 418 ScriptState::Scope scope(scriptState.get()); |
419 V8ScriptRunner::compileAndRunInternalScript(v8String(isolate, "if (gc) gc();
"), isolate); | 419 V8ScriptRunner::compileAndRunInternalScript(v8String(isolate, "if (gc) gc();
"), isolate); |
420 scriptState->disposePerContextData(); | 420 scriptState->disposePerContextData(); |
421 } | 421 } |
422 | 422 |
423 } // namespace WebCore | 423 } // namespace WebCore |
OLD | NEW |