OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 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 20 matching lines...) Expand all Loading... |
31 #include "config.h" | 31 #include "config.h" |
32 | 32 |
33 #include "public/web/WebLeakDetector.h" | 33 #include "public/web/WebLeakDetector.h" |
34 | 34 |
35 #include "bindings/core/v8/ScriptPromise.h" | 35 #include "bindings/core/v8/ScriptPromise.h" |
36 #include "bindings/core/v8/V8Binding.h" | 36 #include "bindings/core/v8/V8Binding.h" |
37 #include "bindings/core/v8/V8GCController.h" | 37 #include "bindings/core/v8/V8GCController.h" |
38 #include "core/dom/ActiveDOMObject.h" | 38 #include "core/dom/ActiveDOMObject.h" |
39 #include "core/dom/Document.h" | 39 #include "core/dom/Document.h" |
40 #include "core/fetch/MemoryCache.h" | 40 #include "core/fetch/MemoryCache.h" |
41 #include "core/fetch/ResourceFetcher.h" | |
42 #include "core/inspector/InstanceCounters.h" | 41 #include "core/inspector/InstanceCounters.h" |
43 #include "core/layout/LayoutObject.h" | 42 #include "core/layout/LayoutObject.h" |
44 #include "core/workers/WorkerThread.h" | 43 #include "core/workers/WorkerThread.h" |
45 #include "modules/webaudio/AudioNode.h" | 44 #include "modules/webaudio/AudioNode.h" |
46 #include "platform/Timer.h" | 45 #include "platform/Timer.h" |
47 #include "public/web/WebDocument.h" | 46 #include "public/web/WebDocument.h" |
48 #include "public/web/WebLocalFrame.h" | 47 #include "public/web/WebLocalFrame.h" |
49 | 48 |
50 namespace blink { | 49 namespace blink { |
51 | 50 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 // For example, calling isValidEmailAddress in EmailInputType.cpp with a | 85 // For example, calling isValidEmailAddress in EmailInputType.cpp with a |
87 // non-empty string creates a static ScriptRegexp value which holds a | 86 // non-empty string creates a static ScriptRegexp value which holds a |
88 // V8PerContextData indirectly. This affects the number of V8PerContextData. | 87 // V8PerContextData indirectly. This affects the number of V8PerContextData. |
89 // To ensure that context data is created, call ensureScriptRegexpContext | 88 // To ensure that context data is created, call ensureScriptRegexpContext |
90 // here. | 89 // here. |
91 V8PerIsolateData::from(isolate)->ensureScriptRegexpContext(); | 90 V8PerIsolateData::from(isolate)->ensureScriptRegexpContext(); |
92 | 91 |
93 WorkerThread::terminateAndWaitForAllWorkers(); | 92 WorkerThread::terminateAndWaitForAllWorkers(); |
94 memoryCache()->evictResources(); | 93 memoryCache()->evictResources(); |
95 | 94 |
96 { | |
97 RefPtrWillBeRawPtr<Document> document = PassRefPtrWillBeRawPtr<Document>
(frame->document()); | |
98 if (ResourceFetcher* fetcher = document->fetcher()) | |
99 fetcher->garbageCollectDocumentResources(); | |
100 } | |
101 | |
102 // FIXME: HTML5 Notification should be closed because notification affects t
he result of number of DOM objects. | 95 // FIXME: HTML5 Notification should be closed because notification affects t
he result of number of DOM objects. |
103 | 96 |
104 V8PerIsolateData::from(isolate)->clearScriptRegexpContext(); | 97 V8PerIsolateData::from(isolate)->clearScriptRegexpContext(); |
105 } | 98 } |
106 | 99 |
107 void WebLeakDetectorImpl::collectGarbageAndReport() | 100 void WebLeakDetectorImpl::collectGarbageAndReport() |
108 { | 101 { |
109 V8GCController::collectAllGarbageForTesting(V8PerIsolateData::mainThreadIsol
ate()); | 102 V8GCController::collectAllGarbageForTesting(V8PerIsolateData::mainThreadIsol
ate()); |
110 // Note: Oilpan precise GC is scheduled at the end of the event loop. | 103 // Note: Oilpan precise GC is scheduled at the end of the event loop. |
111 | 104 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 } | 149 } |
157 | 150 |
158 } // namespace | 151 } // namespace |
159 | 152 |
160 WebLeakDetector* WebLeakDetector::create(WebLeakDetectorClient* client) | 153 WebLeakDetector* WebLeakDetector::create(WebLeakDetectorClient* client) |
161 { | 154 { |
162 return new WebLeakDetectorImpl(client); | 155 return new WebLeakDetectorImpl(client); |
163 } | 156 } |
164 | 157 |
165 } // namespace blink | 158 } // namespace blink |
OLD | NEW |