Title: [163139] trunk/Source
Revision
163139
Author
[email protected]
Date
2014-01-30 17:34:31 -0800 (Thu, 30 Jan 2014)

Log Message

Include profile with FunctionCall and EvaluateScript Timeline records.

https://bugs.webkit.org/show_bug.cgi?id=127663

Reviewed by Joseph Pecoraro.

Source/_javascript_Core:

* inspector/InjectedScriptBase.cpp:
(Inspector::InjectedScriptBase::callFunctionWithEvalEnabled):
* inspector/InspectorEnvironment.h:
* inspector/JSGlobalObjectInspectorController.h:

Source/WebCore:

* bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSMutationCallback.cpp:
(WebCore::JSMutationCallback::call):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::executeFunctionInContext):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didCallInjectedScriptFunction):
* inspector/InspectorController.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCallFunctionImpl):
(WebCore::InspectorInstrumentation::didEvaluateScriptImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didCallFunction):
(WebCore::InspectorInstrumentation::didEvaluateScript):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::willCallFunction):
(WebCore::InspectorTimelineAgent::didCallFunction):
(WebCore::InspectorTimelineAgent::willEvaluateScript):
(WebCore::InspectorTimelineAgent::didEvaluateScript):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
* inspector/InspectorTimelineAgent.h:
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::appendProfile):
* inspector/TimelineRecordFactory.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::didCallInjectedScriptFunction):
* inspector/WorkerInspectorController.h:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (163138 => 163139)


--- trunk/Source/_javascript_Core/ChangeLog	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-01-31 01:34:31 UTC (rev 163139)
@@ -1,3 +1,16 @@
+2014-01-26  Timothy Hatcher  <[email protected]>
+
+        Include profile with FunctionCall and EvaluateScript Timeline records.
+
+        https://bugs.webkit.org/show_bug.cgi?id=127663
+
+        Reviewed by Joseph Pecoraro.
+
+        * inspector/InjectedScriptBase.cpp:
+        (Inspector::InjectedScriptBase::callFunctionWithEvalEnabled):
+        * inspector/InspectorEnvironment.h:
+        * inspector/JSGlobalObjectInspectorController.h:
+
 2014-01-29  Filip Pizlo  <[email protected]>
 
         FTL should support GetById(Untyped:)

Modified: trunk/Source/_javascript_Core/inspector/InjectedScriptBase.cpp (163138 => 163139)


--- trunk/Source/_javascript_Core/inspector/InjectedScriptBase.cpp	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/_javascript_Core/inspector/InjectedScriptBase.cpp	2014-01-31 01:34:31 UTC (rev 163139)
@@ -94,7 +94,7 @@
         scriptState->lexicalGlobalObject()->setEvalEnabled(false);
 
     if (m_environment)
-        m_environment->didCallInjectedScriptFunction();
+        m_environment->didCallInjectedScriptFunction(m_injectedScriptObject.scriptState());
 
     return resultValue;
 }

Modified: trunk/Source/_javascript_Core/inspector/InspectorEnvironment.h (163138 => 163139)


--- trunk/Source/_javascript_Core/inspector/InspectorEnvironment.h	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/_javascript_Core/inspector/InspectorEnvironment.h	2014-01-31 01:34:31 UTC (rev 163139)
@@ -45,7 +45,7 @@
     virtual InspectorFunctionCallHandler functionCallHandler() const = 0;
     virtual InspectorEvaluateHandler evaluateHandler() const = 0;
     virtual void willCallInjectedScriptFunction(JSC::ExecState*, const String& scriptName, int scriptLine) = 0;
-    virtual void didCallInjectedScriptFunction() = 0;
+    virtual void didCallInjectedScriptFunction(JSC::ExecState*) = 0;
 };
 
 } // namespace Inspector

Modified: trunk/Source/_javascript_Core/inspector/JSGlobalObjectInspectorController.h (163138 => 163139)


--- trunk/Source/_javascript_Core/inspector/JSGlobalObjectInspectorController.h	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/_javascript_Core/inspector/JSGlobalObjectInspectorController.h	2014-01-31 01:34:31 UTC (rev 163139)
@@ -61,7 +61,7 @@
     virtual InspectorFunctionCallHandler functionCallHandler() const override;
     virtual InspectorEvaluateHandler evaluateHandler() const override;
     virtual void willCallInjectedScriptFunction(JSC::ExecState*, const String&, int) override { }
-    virtual void didCallInjectedScriptFunction() override { }
+    virtual void didCallInjectedScriptFunction(JSC::ExecState*) override { }
 
 private:
     JSC::JSGlobalObject& m_globalObject;

Modified: trunk/Source/WebCore/ChangeLog (163138 => 163139)


--- trunk/Source/WebCore/ChangeLog	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/ChangeLog	2014-01-31 01:34:31 UTC (rev 163139)
@@ -1,3 +1,44 @@
+2014-01-26  Timothy Hatcher  <[email protected]>
+
+        Include profile with FunctionCall and EvaluateScript Timeline records.
+
+        https://bugs.webkit.org/show_bug.cgi?id=127663
+
+        Reviewed by Joseph Pecoraro.
+
+        * bindings/js/JSCallbackData.cpp:
+        (WebCore::JSCallbackData::invokeCallback):
+        * bindings/js/JSEventListener.cpp:
+        (WebCore::JSEventListener::handleEvent):
+        * bindings/js/JSMutationCallback.cpp:
+        (WebCore::JSMutationCallback::call):
+        * bindings/js/ScheduledAction.cpp:
+        (WebCore::ScheduledAction::executeFunctionInContext):
+        * bindings/js/ScriptController.cpp:
+        (WebCore::ScriptController::evaluateInWorld):
+        * inspector/InspectorController.cpp:
+        (WebCore::InspectorController::didCallInjectedScriptFunction):
+        * inspector/InspectorController.h:
+        * inspector/InspectorInstrumentation.cpp:
+        (WebCore::InspectorInstrumentation::didCallFunctionImpl):
+        (WebCore::InspectorInstrumentation::didEvaluateScriptImpl):
+        * inspector/InspectorInstrumentation.h:
+        (WebCore::InspectorInstrumentation::didCallFunction):
+        (WebCore::InspectorInstrumentation::didEvaluateScript):
+        * inspector/InspectorTimelineAgent.cpp:
+        (WebCore::InspectorTimelineAgent::willCallFunction):
+        (WebCore::InspectorTimelineAgent::didCallFunction):
+        (WebCore::InspectorTimelineAgent::willEvaluateScript):
+        (WebCore::InspectorTimelineAgent::didEvaluateScript):
+        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
+        * inspector/InspectorTimelineAgent.h:
+        * inspector/TimelineRecordFactory.cpp:
+        (WebCore::TimelineRecordFactory::appendProfile):
+        * inspector/TimelineRecordFactory.h:
+        * inspector/WorkerInspectorController.cpp:
+        (WebCore::WorkerInspectorController::didCallInjectedScriptFunction):
+        * inspector/WorkerInspectorController.h:
+
 2014-01-30  Joseph Pecoraro  <[email protected]>
 
         Remove now-empty ScriptController::setCaptureCallStackForUncaughtExceptions

Modified: trunk/Source/WebCore/bindings/js/JSCallbackData.cpp (163138 => 163139)


--- trunk/Source/WebCore/bindings/js/JSCallbackData.cpp	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/bindings/js/JSCallbackData.cpp	2014-01-31 01:34:31 UTC (rev 163139)
@@ -77,7 +77,7 @@
         ? JSMainThreadExecState::call(exec, function, callType, callData, thisValue, args)
         : JSC::call(exec, function, callType, callData, thisValue, args);
 
-    InspectorInstrumentation::didCallFunction(cookie);
+    InspectorInstrumentation::didCallFunction(cookie, context);
 
     if (exec->hadException()) {
         reportCurrentException(exec);

Modified: trunk/Source/WebCore/bindings/js/JSEventListener.cpp (163138 => 163139)


--- trunk/Source/WebCore/bindings/js/JSEventListener.cpp	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/bindings/js/JSEventListener.cpp	2014-01-31 01:34:31 UTC (rev 163139)
@@ -133,7 +133,7 @@
             ? JSMainThreadExecState::call(exec, handleEventFunction, callType, callData, thisValue, args)
             : JSC::call(exec, handleEventFunction, callType, callData, thisValue, args);
 
-        InspectorInstrumentation::didCallFunction(cookie);
+        InspectorInstrumentation::didCallFunction(cookie, scriptExecutionContext);
 
         globalObject->setCurrentEvent(savedEvent);
 

Modified: trunk/Source/WebCore/bindings/js/JSMutationCallback.cpp (163138 => 163139)


--- trunk/Source/WebCore/bindings/js/JSMutationCallback.cpp	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/bindings/js/JSMutationCallback.cpp	2014-01-31 01:34:31 UTC (rev 163139)
@@ -89,7 +89,7 @@
 
     JSMainThreadExecState::call(exec, callback, callType, callData, jsObserver, args);
 
-    InspectorInstrumentation::didCallFunction(cookie);
+    InspectorInstrumentation::didCallFunction(cookie, context);
 
     if (exec->hadException())
         reportCurrentException(exec);

Modified: trunk/Source/WebCore/bindings/js/ScheduledAction.cpp (163138 => 163139)


--- trunk/Source/WebCore/bindings/js/ScheduledAction.cpp	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/bindings/js/ScheduledAction.cpp	2014-01-31 01:34:31 UTC (rev 163139)
@@ -106,7 +106,7 @@
     else
         JSC::call(exec, m_function.get(), callType, callData, thisValue, args);
 
-    InspectorInstrumentation::didCallFunction(cookie);
+    InspectorInstrumentation::didCallFunction(cookie, context);
 
     if (exec->hadException())
         reportCurrentException(exec);

Modified: trunk/Source/WebCore/bindings/js/ScriptController.cpp (163138 => 163139)


--- trunk/Source/WebCore/bindings/js/ScriptController.cpp	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/bindings/js/ScriptController.cpp	2014-01-31 01:34:31 UTC (rev 163139)
@@ -146,7 +146,7 @@
 
     JSValue returnValue = JSMainThreadExecState::evaluate(exec, jsSourceCode, shell, &evaluationException);
 
-    InspectorInstrumentation::didEvaluateScript(cookie);
+    InspectorInstrumentation::didEvaluateScript(cookie, &m_frame);
 
     if (evaluationException) {
         reportException(exec, evaluationException, sourceCode.cachedScript());

Modified: trunk/Source/WebCore/inspector/InspectorController.cpp (163138 => 163139)


--- trunk/Source/WebCore/inspector/InspectorController.cpp	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/inspector/InspectorController.cpp	2014-01-31 01:34:31 UTC (rev 163139)
@@ -469,11 +469,12 @@
     m_injectedScriptInstrumentationCookies.append(cookie);
 }
 
-void InspectorController::didCallInjectedScriptFunction()
+void InspectorController::didCallInjectedScriptFunction(JSC::ExecState* scriptState)
 {
     ASSERT(!m_injectedScriptInstrumentationCookies.isEmpty());
+    ScriptExecutionContext* scriptExecutionContext = scriptExecutionContextFromExecState(scriptState);
     InspectorInstrumentationCookie cookie = m_injectedScriptInstrumentationCookies.takeLast();
-    InspectorInstrumentation::didCallFunction(cookie);
+    InspectorInstrumentation::didCallFunction(cookie, scriptExecutionContext);
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/inspector/InspectorController.h (163138 => 163139)


--- trunk/Source/WebCore/inspector/InspectorController.h	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/inspector/InspectorController.h	2014-01-31 01:34:31 UTC (rev 163139)
@@ -139,7 +139,7 @@
     virtual Inspector::InspectorFunctionCallHandler functionCallHandler() const override;
     virtual Inspector::InspectorEvaluateHandler evaluateHandler() const override;
     virtual void willCallInjectedScriptFunction(JSC::ExecState*, const String& scriptName, int scriptLine) override;
-    virtual void didCallInjectedScriptFunction() override;
+    virtual void didCallInjectedScriptFunction(JSC::ExecState*) override;
 
 private:
     friend InstrumentingAgents* instrumentationForPage(Page*);

Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp (163138 => 163139)


--- trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp	2014-01-31 01:34:31 UTC (rev 163139)
@@ -316,10 +316,10 @@
     return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
 }
 
-void InspectorInstrumentation::didCallFunctionImpl(const InspectorInstrumentationCookie& cookie)
+void InspectorInstrumentation::didCallFunctionImpl(const InspectorInstrumentationCookie& cookie, ScriptExecutionContext* context)
 {
     if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
-        timelineAgent->didCallFunction();
+        timelineAgent->didCallFunction(frameForScriptExecutionContext(context));
 }
 
 InspectorInstrumentationCookie InspectorInstrumentation::willDispatchXHRReadyStateChangeEventImpl(InstrumentingAgents* instrumentingAgents, XMLHttpRequest* request, ScriptExecutionContext* context)
@@ -394,10 +394,10 @@
     return InspectorInstrumentationCookie(instrumentingAgents, timelineAgentId);
 }
 
-void InspectorInstrumentation::didEvaluateScriptImpl(const InspectorInstrumentationCookie& cookie)
+void InspectorInstrumentation::didEvaluateScriptImpl(const InspectorInstrumentationCookie& cookie, Frame* frame)
 {
     if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
-        timelineAgent->didEvaluateScript();
+        timelineAgent->didEvaluateScript(frame);
 }
 
 void InspectorInstrumentation::scriptsEnabledImpl(InstrumentingAgents* instrumentingAgents, bool isEnabled)

Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.h (163138 => 163139)


--- trunk/Source/WebCore/inspector/InspectorInstrumentation.h	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.h	2014-01-31 01:34:31 UTC (rev 163139)
@@ -129,7 +129,7 @@
     static void didRemoveTimer(ScriptExecutionContext*, int timerId);
 
     static InspectorInstrumentationCookie willCallFunction(ScriptExecutionContext*, const String& scriptName, int scriptLine);
-    static void didCallFunction(const InspectorInstrumentationCookie&);
+    static void didCallFunction(const InspectorInstrumentationCookie&, ScriptExecutionContext*);
     static InspectorInstrumentationCookie willDispatchXHRReadyStateChangeEvent(ScriptExecutionContext*, XMLHttpRequest*);
     static void didDispatchXHRReadyStateChangeEvent(const InspectorInstrumentationCookie&);
     static InspectorInstrumentationCookie willDispatchEvent(Document*, const Event&, bool hasEventListeners);
@@ -139,7 +139,7 @@
     static InspectorInstrumentationCookie willDispatchEventOnWindow(Frame*, const Event& event, DOMWindow* window);
     static void didDispatchEventOnWindow(const InspectorInstrumentationCookie&);
     static InspectorInstrumentationCookie willEvaluateScript(Frame*, const String& url, int lineNumber);
-    static void didEvaluateScript(const InspectorInstrumentationCookie&);
+    static void didEvaluateScript(const InspectorInstrumentationCookie&, Frame*);
     static void scriptsEnabled(Page*, bool isEnabled);
     static void didCreateIsolatedContext(Frame*, JSC::ExecState*, SecurityOrigin*);
     static InspectorInstrumentationCookie willFireTimer(ScriptExecutionContext*, int timerId);
@@ -313,7 +313,7 @@
     static void didRemoveTimerImpl(InstrumentingAgents*, int timerId, ScriptExecutionContext*);
 
     static InspectorInstrumentationCookie willCallFunctionImpl(InstrumentingAgents*, const String& scriptName, int scriptLine, ScriptExecutionContext*);
-    static void didCallFunctionImpl(const InspectorInstrumentationCookie&);
+    static void didCallFunctionImpl(const InspectorInstrumentationCookie&, ScriptExecutionContext*);
     static InspectorInstrumentationCookie willDispatchXHRReadyStateChangeEventImpl(InstrumentingAgents*, XMLHttpRequest*, ScriptExecutionContext*);
     static void didDispatchXHRReadyStateChangeEventImpl(const InspectorInstrumentationCookie&);
     static InspectorInstrumentationCookie willDispatchEventImpl(InstrumentingAgents*, const Event&, bool hasEventListeners, Document*);
@@ -323,7 +323,7 @@
     static InspectorInstrumentationCookie willDispatchEventOnWindowImpl(InstrumentingAgents*, const Event&, DOMWindow*);
     static void didDispatchEventOnWindowImpl(const InspectorInstrumentationCookie&);
     static InspectorInstrumentationCookie willEvaluateScriptImpl(InstrumentingAgents*, const String& url, int lineNumber, Frame*);
-    static void didEvaluateScriptImpl(const InspectorInstrumentationCookie&);
+    static void didEvaluateScriptImpl(const InspectorInstrumentationCookie&, Frame*);
     static void scriptsEnabledImpl(InstrumentingAgents*, bool isEnabled);
     static void didCreateIsolatedContextImpl(InstrumentingAgents*, Frame*, JSC::ExecState*, SecurityOrigin*);
     static InspectorInstrumentationCookie willFireTimerImpl(InstrumentingAgents*, int timerId, ScriptExecutionContext*);
@@ -823,14 +823,15 @@
 }
 
 
-inline void InspectorInstrumentation::didCallFunction(const InspectorInstrumentationCookie& cookie)
+inline void InspectorInstrumentation::didCallFunction(const InspectorInstrumentationCookie& cookie, ScriptExecutionContext* context)
 {
 #if ENABLE(INSPECTOR)
     FAST_RETURN_IF_NO_FRONTENDS(void());
     if (cookie.isValid())
-        didCallFunctionImpl(cookie);
+        didCallFunctionImpl(cookie, context);
 #else
     UNUSED_PARAM(cookie);
+    UNUSED_PARAM(context);
 #endif
 }
 
@@ -946,14 +947,15 @@
     return InspectorInstrumentationCookie();
 }
 
-inline void InspectorInstrumentation::didEvaluateScript(const InspectorInstrumentationCookie& cookie)
+inline void InspectorInstrumentation::didEvaluateScript(const InspectorInstrumentationCookie& cookie, Frame* frame)
 {
 #if ENABLE(INSPECTOR)
     FAST_RETURN_IF_NO_FRONTENDS(void());
     if (cookie.isValid())
-        didEvaluateScriptImpl(cookie);
+        didEvaluateScriptImpl(cookie, frame);
 #else
     UNUSED_PARAM(cookie);
+    UNUSED_PARAM(frame);
 #endif
 }
 

Modified: trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp (163138 => 163139)


--- trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp	2014-01-31 01:34:31 UTC (rev 163139)
@@ -51,6 +51,7 @@
 #include "RenderView.h"
 #include "ResourceRequest.h"
 #include "ResourceResponse.h"
+#include "ScriptProfiler.h"
 #include "TimelineRecordFactory.h"
 #include <wtf/CurrentTime.h>
 
@@ -137,10 +138,28 @@
 void InspectorTimelineAgent::willCallFunction(const String& scriptName, int scriptLine, Frame* frame)
 {
     pushCurrentRecord(TimelineRecordFactory::createFunctionCallData(scriptName, scriptLine), TimelineRecordType::FunctionCall, true, frame);
+
+    if (frame && !m_recordingProfile) {
+        m_recordingProfile = true;
+        ScriptProfiler::start(toJSDOMWindow(frame, debuggerWorld())->globalExec(), ASCIILiteral("Timeline FunctionCall"));
+    }
 }
 
-void InspectorTimelineAgent::didCallFunction()
+void InspectorTimelineAgent::didCallFunction(Frame* frame)
 {
+    if (frame && m_recordingProfile) {
+        if (m_recordStack.isEmpty())
+            return;
+
+        TimelineRecordEntry& entry = m_recordStack.last();
+        ASSERT(entry.type == TimelineRecordType::FunctionCall);
+
+        RefPtr<ScriptProfile> profile = "" debuggerWorld())->globalExec(), ASCIILiteral("Timeline FunctionCall"));
+        TimelineRecordFactory::appendProfile(entry.data.get(), profile.release());
+
+        m_recordingProfile = false;
+    }
+
     didCompleteCurrentRecord(TimelineRecordType::FunctionCall);
 }
 
@@ -299,10 +318,28 @@
 void InspectorTimelineAgent::willEvaluateScript(const String& url, int lineNumber, Frame* frame)
 {
     pushCurrentRecord(TimelineRecordFactory::createEvaluateScriptData(url, lineNumber), TimelineRecordType::EvaluateScript, true, frame);
+
+    if (frame && !m_recordingProfile) {
+        m_recordingProfile = true;
+        ScriptProfiler::start(toJSDOMWindow(frame, debuggerWorld())->globalExec(), ASCIILiteral("Timeline EvaluateScript"));
+    }
 }
 
-void InspectorTimelineAgent::didEvaluateScript()
+void InspectorTimelineAgent::didEvaluateScript(Frame* frame)
 {
+    if (frame && m_recordingProfile) {
+        if (m_recordStack.isEmpty())
+            return;
+
+        TimelineRecordEntry& entry = m_recordStack.last();
+        ASSERT(entry.type == TimelineRecordType::EvaluateScript);
+
+        RefPtr<ScriptProfile> profile = "" debuggerWorld())->globalExec(), ASCIILiteral("Timeline EvaluateScript"));
+        TimelineRecordFactory::appendProfile(entry.data.get(), profile.release());
+
+        m_recordingProfile = false;
+    }
+
     didCompleteCurrentRecord(TimelineRecordType::EvaluateScript);
 }
 
@@ -592,6 +629,7 @@
     , m_weakFactory(this)
     , m_enabled(false)
     , m_includeDOMCounters(false)
+    , m_recordingProfile(false)
 {
 }
 

Modified: trunk/Source/WebCore/inspector/InspectorTimelineAgent.h (163138 => 163139)


--- trunk/Source/WebCore/inspector/InspectorTimelineAgent.h	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/inspector/InspectorTimelineAgent.h	2014-01-31 01:34:31 UTC (rev 163139)
@@ -145,7 +145,7 @@
 
     // Methods called from WebCore.
     void willCallFunction(const String& scriptName, int scriptLine, Frame*);
-    void didCallFunction();
+    void didCallFunction(Frame*);
 
     void willDispatchEvent(const Event&, Frame*);
     void didDispatchEvent();
@@ -184,7 +184,7 @@
     void didDispatchXHRLoadEvent();
 
     void willEvaluateScript(const String&, int, Frame*);
-    void didEvaluateScript();
+    void didEvaluateScript(Frame*);
 
     void didTimeStamp(Frame*, const String&);
     void didMarkDOMContentEvent(Frame*);
@@ -268,6 +268,7 @@
 
     bool m_enabled;
     bool m_includeDOMCounters;
+    bool m_recordingProfile;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/inspector/TimelineRecordFactory.cpp (163138 => 163139)


--- trunk/Source/WebCore/inspector/TimelineRecordFactory.cpp	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/inspector/TimelineRecordFactory.cpp	2014-01-31 01:34:31 UTC (rev 163139)
@@ -42,6 +42,7 @@
 #include "ResourceResponse.h"
 #include "ScriptCallStack.h"
 #include "ScriptCallStackFactory.h"
+#include "ScriptProfile.h"
 #include <inspector/InspectorValues.h>
 #include <wtf/CurrentTime.h>
 
@@ -251,6 +252,11 @@
     data->setArray("root", createQuad(quad));
 }
 
+void TimelineRecordFactory::appendProfile(InspectorObject* data, PassRefPtr<ScriptProfile> profile)
+{
+    data->setValue("profile", profile->buildInspectorObjectForHead());
+}
+
 } // namespace WebCore
 
 #endif // ENABLE(INSPECTOR)

Modified: trunk/Source/WebCore/inspector/TimelineRecordFactory.h (163138 => 163139)


--- trunk/Source/WebCore/inspector/TimelineRecordFactory.h	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/inspector/TimelineRecordFactory.h	2014-01-31 01:34:31 UTC (rev 163139)
@@ -42,6 +42,7 @@
     class FloatQuad;
     class ResourceRequest;
     class ResourceResponse;
+    class ScriptProfile;
 
     class TimelineRecordFactory {
     public:
@@ -92,6 +93,8 @@
 
         static void appendLayoutRoot(Inspector::InspectorObject* data, const FloatQuad&);
 
+        static void appendProfile(Inspector::InspectorObject*, PassRefPtr<ScriptProfile>);
+
 #if ENABLE(WEB_SOCKETS)
         static inline PassRefPtr<Inspector::InspectorObject> createWebSocketCreateData(unsigned long identifier, const URL& url, const String& protocol)
         {

Modified: trunk/Source/WebCore/inspector/WorkerInspectorController.cpp (163138 => 163139)


--- trunk/Source/WebCore/inspector/WorkerInspectorController.cpp	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/inspector/WorkerInspectorController.cpp	2014-01-31 01:34:31 UTC (rev 163139)
@@ -166,11 +166,12 @@
     m_injectedScriptInstrumentationCookies.append(cookie);
 }
 
-void WorkerInspectorController::didCallInjectedScriptFunction()
+void WorkerInspectorController::didCallInjectedScriptFunction(JSC::ExecState* scriptState)
 {
     ASSERT(!m_injectedScriptInstrumentationCookies.isEmpty());
+    ScriptExecutionContext* scriptExecutionContext = scriptExecutionContextFromExecState(scriptState);
     InspectorInstrumentationCookie cookie = m_injectedScriptInstrumentationCookies.takeLast();
-    InspectorInstrumentation::didCallFunction(cookie);
+    InspectorInstrumentation::didCallFunction(cookie, scriptExecutionContext);
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/inspector/WorkerInspectorController.h (163138 => 163139)


--- trunk/Source/WebCore/inspector/WorkerInspectorController.h	2014-01-31 01:34:19 UTC (rev 163138)
+++ trunk/Source/WebCore/inspector/WorkerInspectorController.h	2014-01-31 01:34:31 UTC (rev 163139)
@@ -72,7 +72,7 @@
     virtual Inspector::InspectorFunctionCallHandler functionCallHandler() const override;
     virtual Inspector::InspectorEvaluateHandler evaluateHandler() const override;
     virtual void willCallInjectedScriptFunction(JSC::ExecState*, const String& scriptName, int scriptLine) override;
-    virtual void didCallInjectedScriptFunction() override;
+    virtual void didCallInjectedScriptFunction(JSC::ExecState*) override;
 
 private:
     friend InstrumentingAgents* instrumentationForWorkerGlobalScope(WorkerGlobalScope*);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to