1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef InspectorTraceEvents_h 6#define InspectorTraceEvents_h 7 8#include "platform/EventTracer.h" 9#include "platform/TraceEvent.h" 10#include "wtf/Forward.h" 11 12namespace blink { 13 14class Document; 15class Event; 16class ExecutionContext; 17class FrameView; 18class GraphicsContext; 19class GraphicsLayer; 20class KURL; 21class LayoutRect; 22class LocalFrame; 23class RenderImage; 24class RenderLayer; 25class RenderObject; 26class ResourceRequest; 27class ResourceResponse; 28class ScriptSourceCode; 29class ScriptCallStack; 30class WorkerThread; 31class XMLHttpRequest; 32 33class InspectorLayoutEvent { 34public: 35 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> beginData(FrameView*); 36 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> endData(RenderObject* rootForThisLayout); 37}; 38 39class InspectorLayoutInvalidationTrackingEvent { 40public: 41 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(const RenderObject*); 42}; 43 44class InspectorPaintInvalidationTrackingEvent { 45public: 46 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(const RenderObject* renderer, const RenderObject* paintContainer); 47}; 48 49class InspectorSendRequestEvent { 50public: 51 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(unsigned long identifier, LocalFrame*, const ResourceRequest&); 52}; 53 54class InspectorReceiveResponseEvent { 55public: 56 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(unsigned long identifier, LocalFrame*, const ResourceResponse&); 57}; 58 59class InspectorReceiveDataEvent { 60public: 61 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(unsigned long identifier, LocalFrame*, int encodedDataLength); 62}; 63 64class InspectorResourceFinishEvent { 65public: 66 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(unsigned long identifier, double finishTime, bool didFail); 67}; 68 69class InspectorTimerInstallEvent { 70public: 71 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(ExecutionContext*, int timerId, int timeout, bool singleShot); 72}; 73 74class InspectorTimerRemoveEvent { 75public: 76 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(ExecutionContext*, int timerId); 77}; 78 79class InspectorTimerFireEvent { 80public: 81 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(ExecutionContext*, int timerId); 82}; 83 84class InspectorAnimationFrameEvent { 85public: 86 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(Document*, int callbackId); 87}; 88 89class InspectorWebSocketCreateEvent { 90public: 91 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(Document*, unsigned long identifier, const KURL&, const String& protocol); 92}; 93 94class InspectorWebSocketEvent { 95public: 96 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(Document*, unsigned long identifier); 97}; 98 99class InspectorParseHtmlEvent { 100public: 101 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> beginData(Document*, unsigned startLine); 102}; 103 104class InspectorXhrReadyStateChangeEvent { 105public: 106 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(ExecutionContext*, XMLHttpRequest*); 107}; 108 109class InspectorXhrLoadEvent { 110public: 111 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(ExecutionContext*, XMLHttpRequest*); 112}; 113 114class InspectorLayerInvalidationTrackingEvent { 115public: 116 static const char SquashingLayerGeometryWasUpdated[]; 117 static const char AddedToSquashingLayer[]; 118 static const char RemovedFromSquashingLayer[]; 119 static const char ReflectionLayerChanged[]; 120 static const char NewCompositedLayer[]; 121 static const char AncestorRequiresNewLayer[]; 122 123 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(const RenderLayer*, const char* reason); 124}; 125#define TRACE_LAYER_INVALIDATION(LAYER, REASON) \ 126 TRACE_EVENT_INSTANT1( \ 127 TRACE_DISABLED_BY_DEFAULT("devtools.timeline.invalidationTracking"), \ 128 "LayerInvalidationTracking", \ 129 "data", \ 130 InspectorLayerInvalidationTrackingEvent::data((LAYER), (REASON))) 131 132class InspectorPaintEvent { 133public: 134 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(RenderObject*, const LayoutRect& clipRect, const GraphicsLayer*); 135}; 136 137class InspectorPaintImageEvent { 138public: 139 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(const RenderImage&); 140}; 141 142class InspectorMarkLoadEvent { 143public: 144 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(LocalFrame*); 145}; 146 147class InspectorScrollLayerEvent { 148public: 149 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(RenderObject*); 150}; 151 152class InspectorEvaluateScriptEvent { 153public: 154 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(LocalFrame*, const String& url, int lineNumber); 155}; 156 157class InspectorFunctionCallEvent { 158public: 159 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(ExecutionContext*, int scriptId, const String& scriptName, int scriptLine); 160}; 161 162class InspectorUpdateCountersEvent { 163public: 164 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(); 165}; 166 167class InspectorCallStackEvent { 168public: 169 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> currentCallStack(); 170}; 171 172class InspectorEventDispatchEvent { 173public: 174 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(const Event&); 175}; 176 177class InspectorTimeStampEvent { 178public: 179 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(ExecutionContext*, const String& message); 180}; 181 182class InspectorTracingSessionIdForWorkerEvent { 183public: 184 static PassRefPtr<TraceEvent::ConvertableToTraceFormat> data(const String& sessionId, WorkerThread*); 185}; 186 187} // namespace blink 188 189 190#endif // !defined(InspectorTraceEvents_h) 191