Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: Source/core/inspector/InspectorTracingAgent.cpp

Issue 638673002: DevTools: tracing: remove state management from InspectorTracingAgent. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: compile time warning Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // 1 //
2 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Copyright 2014 The Chromium Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be 3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file. 4 // found in the LICENSE file.
5 // 5 //
6 6
7 #include "config.h" 7 #include "config.h"
8 8
9 #include "core/inspector/InspectorTracingAgent.h" 9 #include "core/inspector/InspectorTracingAgent.h"
10 10
11 #include "core/inspector/IdentifiersFactory.h" 11 #include "core/inspector/IdentifiersFactory.h"
12 #include "core/inspector/InspectorClient.h" 12 #include "core/inspector/InspectorClient.h"
13 #include "core/inspector/InspectorState.h" 13 #include "core/inspector/InspectorState.h"
14 #include "core/inspector/InspectorWorkerAgent.h" 14 #include "core/inspector/InspectorWorkerAgent.h"
15 #include "platform/TraceEvent.h" 15 #include "platform/TraceEvent.h"
16 16
17 namespace blink { 17 namespace blink {
18 18
19 namespace TracingAgentState { 19 namespace TracingAgentState {
20 const char sessionId[] = "sessionId"; 20 const char sessionId[] = "sessionId";
21 const char tracingStarted[] = "tracingStarted";
22 } 21 }
23 22
24 namespace { 23 namespace {
25 const char devtoolsMetadataEventCategory[] = TRACE_DISABLED_BY_DEFAULT("devtools .timeline"); 24 const char devtoolsMetadataEventCategory[] = TRACE_DISABLED_BY_DEFAULT("devtools .timeline");
26 } 25 }
27 26
28 InspectorTracingAgent::InspectorTracingAgent(InspectorClient* client, InspectorW orkerAgent* workerAgent) 27 InspectorTracingAgent::InspectorTracingAgent(InspectorClient* client, InspectorW orkerAgent* workerAgent)
29 : InspectorBaseAgent<InspectorTracingAgent>("Tracing") 28 : InspectorBaseAgent<InspectorTracingAgent>("Tracing")
30 , m_layerTreeId(0) 29 , m_layerTreeId(0)
31 , m_client(client) 30 , m_client(client)
32 , m_frontend(0) 31 , m_frontend(0)
33 , m_workerAgent(workerAgent) 32 , m_workerAgent(workerAgent)
34 { 33 {
35 } 34 }
36 35
37 void InspectorTracingAgent::restore() 36 void InspectorTracingAgent::restore()
38 { 37 {
39 emitMetadataEvents(); 38 emitMetadataEvents();
40 } 39 }
41 40
42 void InspectorTracingAgent::start(ErrorString*, const String& categoryFilter, co nst String&, const double*, PassRefPtrWillBeRawPtr<StartCallback> callback) 41 void InspectorTracingAgent::start(ErrorString*, const String& categoryFilter, co nst String&, const double*, PassRefPtrWillBeRawPtr<StartCallback> callback)
43 { 42 {
44 if (m_state->getBoolean(TracingAgentState::tracingStarted)) {
yurys 2014/10/15 08:43:46 I believe we'd better return an error when tracing
yurys 2014/10/15 08:46:23 It can be a DCHECK since we reject such requests o
45 callback->sendSuccess();
46 return;
47 }
48 m_state->setString(TracingAgentState::sessionId, IdentifiersFactory::createI dentifier()); 43 m_state->setString(TracingAgentState::sessionId, IdentifiersFactory::createI dentifier());
49 m_state->setBoolean(TracingAgentState::tracingStarted, true);
50 m_client->enableTracing(categoryFilter); 44 m_client->enableTracing(categoryFilter);
51 emitMetadataEvents(); 45 emitMetadataEvents();
52 callback->sendSuccess(); 46 callback->sendSuccess();
53 } 47 }
54 48
55 void InspectorTracingAgent::end(ErrorString* errorString, PassRefPtrWillBeRawPtr <EndCallback> callback) 49 void InspectorTracingAgent::end(ErrorString* errorString, PassRefPtrWillBeRawPtr <EndCallback> callback)
56 { 50 {
57 m_client->disableTracing(); 51 m_client->disableTracing();
58 m_state->setBoolean(TracingAgentState::tracingStarted, false);
yurys 2014/10/15 08:43:46 This is not enough as after front-end disconnect w
59 m_workerAgent->setTracingSessionId(String()); 52 m_workerAgent->setTracingSessionId(String());
60 callback->sendSuccess(); 53 callback->sendSuccess();
61 } 54 }
62 55
63 String InspectorTracingAgent::sessionId() 56 String InspectorTracingAgent::sessionId()
64 { 57 {
65 return m_state->getString(TracingAgentState::sessionId); 58 return m_state->getString(TracingAgentState::sessionId);
66 } 59 }
67 60
68 void InspectorTracingAgent::emitMetadataEvents() 61 void InspectorTracingAgent::emitMetadataEvents()
69 { 62 {
70 if (!m_state->getBoolean(TracingAgentState::tracingStarted))
71 return;
72 TRACE_EVENT_INSTANT1(devtoolsMetadataEventCategory, "TracingStartedInPage", "sessionId", sessionId().utf8()); 63 TRACE_EVENT_INSTANT1(devtoolsMetadataEventCategory, "TracingStartedInPage", "sessionId", sessionId().utf8());
73 if (m_layerTreeId) 64 if (m_layerTreeId)
74 setLayerTreeId(m_layerTreeId); 65 setLayerTreeId(m_layerTreeId);
75 m_workerAgent->setTracingSessionId(sessionId()); 66 m_workerAgent->setTracingSessionId(sessionId());
76 } 67 }
77 68
78 void InspectorTracingAgent::setLayerTreeId(int layerTreeId) 69 void InspectorTracingAgent::setLayerTreeId(int layerTreeId)
79 { 70 {
80 m_layerTreeId = layerTreeId; 71 m_layerTreeId = layerTreeId;
81 TRACE_EVENT_INSTANT2(devtoolsMetadataEventCategory, "SetLayerTreeId", "sessi onId", sessionId().utf8(), "layerTreeId", m_layerTreeId); 72 TRACE_EVENT_INSTANT2(devtoolsMetadataEventCategory, "SetLayerTreeId", "sessi onId", sessionId().utf8(), "layerTreeId", m_layerTreeId);
82 } 73 }
83 74
84 void InspectorTracingAgent::setFrontend(InspectorFrontend* frontend) 75 void InspectorTracingAgent::setFrontend(InspectorFrontend* frontend)
85 { 76 {
86 m_frontend = frontend->tracing(); 77 m_frontend = frontend->tracing();
87 } 78 }
88 79
89 } 80 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698