Index: third_party/WebKit/Source/core/inspector/V8AsyncCallTracker.cpp |
diff --git a/third_party/WebKit/Source/core/inspector/V8AsyncCallTracker.cpp b/third_party/WebKit/Source/core/inspector/V8AsyncCallTracker.cpp |
deleted file mode 100644 |
index 8e68a5daf6278a1082944439a8144929ef4374e5..0000000000000000000000000000000000000000 |
--- a/third_party/WebKit/Source/core/inspector/V8AsyncCallTracker.cpp |
+++ /dev/null |
@@ -1,143 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "config.h" |
-#include "core/inspector/V8AsyncCallTracker.h" |
- |
-#include "bindings/core/v8/V8PerContextData.h" |
-#include "core/inspector/AsyncOperationMap.h" |
-#include "platform/heap/Handle.h" |
-#include "wtf/HashMap.h" |
-#include "wtf/text/StringBuilder.h" |
-#include "wtf/text/StringHash.h" |
-#include "wtf/text/WTFString.h" |
- |
-namespace blink { |
- |
-namespace { |
- |
-static const char v8AsyncTaskEventEnqueue[] = "enqueue"; |
-static const char v8AsyncTaskEventWillHandle[] = "willHandle"; |
-static const char v8AsyncTaskEventDidHandle[] = "didHandle"; |
- |
-} |
- |
-class V8AsyncCallTracker::V8ContextAsyncOperations final : public NoBaseWillBeGarbageCollectedFinalized<V8AsyncCallTracker::V8ContextAsyncOperations> { |
- WTF_MAKE_NONCOPYABLE(V8ContextAsyncOperations); |
-public: |
- explicit V8ContextAsyncOperations(V8DebuggerAgent* debuggerAgent) |
- : m_v8AsyncOperations(debuggerAgent) |
- { |
- } |
- |
- ~V8ContextAsyncOperations() |
- { |
- ASSERT(m_v8AsyncOperations.hasBeenDisposed()); |
- } |
- |
- void dispose() |
- { |
- // FIXME: get rid of the dispose method and this class altogether once AsyncOperationMap is always allocated on C++ heap. |
- m_v8AsyncOperations.dispose(); |
- } |
- |
- DEFINE_INLINE_TRACE() |
- { |
-#if ENABLE(OILPAN) |
- visitor->trace(m_v8AsyncOperations); |
-#endif |
- } |
- |
- AsyncOperationMap<String> m_v8AsyncOperations; |
-}; |
- |
-static String makeV8AsyncTaskUniqueId(const String& eventName, int id) |
-{ |
- StringBuilder builder; |
- builder.append(eventName); |
- builder.append(" -> "); |
- builder.appendNumber(id); |
- return builder.toString(); |
-} |
- |
-V8AsyncCallTracker::V8AsyncCallTracker(V8DebuggerAgent* debuggerAgent) : m_debuggerAgent(debuggerAgent) |
-{ |
- m_debuggerAgent->addAsyncCallTrackingListener(this); |
-} |
- |
-V8AsyncCallTracker::~V8AsyncCallTracker() |
-{ |
- ASSERT(m_contextAsyncOperationMap.isEmpty()); |
-#if !ENABLE(OILPAN) |
- m_debuggerAgent->removeAsyncCallTrackingListener(this); |
-#endif |
-} |
- |
-DEFINE_TRACE(V8AsyncCallTracker) |
-{ |
-#if ENABLE(OILPAN) |
- visitor->trace(m_contextAsyncOperationMap); |
- visitor->trace(m_debuggerAgent); |
-#endif |
- V8DebuggerAgent::AsyncCallTrackingListener::trace(visitor); |
-} |
- |
-void V8AsyncCallTracker::asyncCallTrackingStateChanged(bool) |
-{ |
-} |
- |
-void V8AsyncCallTracker::resetAsyncOperations() |
-{ |
- for (auto& it : m_contextAsyncOperationMap) { |
- it.key->removeObserver(this); |
- it.value->dispose(); |
- } |
- m_contextAsyncOperationMap.clear(); |
-} |
- |
-void V8AsyncCallTracker::willDisposeScriptState(ScriptState* state) |
-{ |
- m_contextAsyncOperationMap.remove(state); |
-} |
- |
-void V8AsyncCallTracker::didReceiveV8AsyncTaskEvent(ScriptState* state, const String& eventType, const String& eventName, int id) |
-{ |
- ASSERT(m_debuggerAgent->trackingAsyncCalls()); |
- if (eventType == v8AsyncTaskEventEnqueue) |
- didEnqueueV8AsyncTask(state, eventName, id); |
- else if (eventType == v8AsyncTaskEventWillHandle) |
- willHandleV8AsyncTask(state, eventName, id); |
- else if (eventType == v8AsyncTaskEventDidHandle) |
- m_debuggerAgent->traceAsyncCallbackCompleted(); |
- else |
- ASSERT_NOT_REACHED(); |
-} |
- |
-void V8AsyncCallTracker::didEnqueueV8AsyncTask(ScriptState* state, const String& eventName, int id) |
-{ |
- ASSERT(state); |
- ASSERT(m_debuggerAgent->trackingAsyncCalls()); |
- int operationId = m_debuggerAgent->traceAsyncOperationStarting(eventName); |
- if (!operationId) |
- return; |
- V8ContextAsyncOperations* contextCallChains = m_contextAsyncOperationMap.get(state); |
- if (!contextCallChains) |
- contextCallChains = m_contextAsyncOperationMap.set(state, adoptPtrWillBeNoop(new V8ContextAsyncOperations(m_debuggerAgent))).storedValue->value.get(); |
- contextCallChains->m_v8AsyncOperations.set(makeV8AsyncTaskUniqueId(eventName, id), operationId); |
-} |
- |
-void V8AsyncCallTracker::willHandleV8AsyncTask(ScriptState* state, const String& eventName, int id) |
-{ |
- ASSERT(state); |
- ASSERT(m_debuggerAgent->trackingAsyncCalls()); |
- if (V8ContextAsyncOperations* contextCallChains = m_contextAsyncOperationMap.get(state)) { |
- String taskId = makeV8AsyncTaskUniqueId(eventName, id); |
- m_debuggerAgent->traceAsyncCallbackStarting(contextCallChains->m_v8AsyncOperations.get(taskId)); |
- contextCallChains->m_v8AsyncOperations.remove(taskId); |
- } else { |
- m_debuggerAgent->traceAsyncCallbackStarting(V8DebuggerAgent::unknownAsyncOperationId); |
- } |
-} |
- |
-} // namespace blink |