1/* 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 4 * found in the LICENSE file. 5 */ 6 7#ifndef InspectorTracingAgent_h 8#define InspectorTracingAgent_h 9 10#include "core/InspectorFrontend.h" 11#include "core/inspector/InspectorBaseAgent.h" 12#include "wtf/PassOwnPtr.h" 13#include "wtf/text/WTFString.h" 14 15namespace blink { 16 17class InspectorClient; 18class InspectorWorkerAgent; 19 20class InspectorTracingAgent FINAL 21 : public InspectorBaseAgent<InspectorTracingAgent> 22 , public InspectorBackendDispatcher::TracingCommandHandler { 23 WTF_MAKE_NONCOPYABLE(InspectorTracingAgent); 24public: 25 static PassOwnPtrWillBeRawPtr<InspectorTracingAgent> create(InspectorClient* client, InspectorWorkerAgent* workerAgent) 26 { 27 return adoptPtrWillBeNoop(new InspectorTracingAgent(client, workerAgent)); 28 } 29 30 // Base agent methods. 31 virtual void restore() OVERRIDE; 32 virtual void setFrontend(InspectorFrontend*) OVERRIDE; 33 34 // Protocol method implementations. 35 virtual void start(ErrorString*, const String& categoryFilter, const String&, const double*) OVERRIDE; 36 virtual void end(ErrorString*); 37 38 // Methods for other agents to use. 39 void setLayerTreeId(int); 40 41private: 42 InspectorTracingAgent(InspectorClient*, InspectorWorkerAgent*); 43 44 void emitMetadataEvents(); 45 String sessionId(); 46 47 int m_layerTreeId; 48 InspectorClient* m_client; 49 InspectorFrontend::Tracing* m_frontend; 50 InspectorWorkerAgent* m_workerAgent; 51}; 52 53} 54 55#endif // InspectorTracingAgent_h 56