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

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

Issue 357703002: Introduce builders for tracing event arguments (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Removed PLATFORM_EXPORT from template classes Created 6 years, 5 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 | « Source/core/dom/Node.cpp ('k') | Source/core/rendering/RenderObject.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/inspector/InspectorTraceEvents.h" 6 #include "core/inspector/InspectorTraceEvents.h"
7 7
8 #include "bindings/v8/ScriptCallStackFactory.h" 8 #include "bindings/v8/ScriptCallStackFactory.h"
9 #include "bindings/v8/ScriptGCEvent.h" 9 #include "bindings/v8/ScriptGCEvent.h"
10 #include "bindings/v8/ScriptSourceCode.h" 10 #include "bindings/v8/ScriptSourceCode.h"
(...skipping 14 matching lines...) Expand all
25 #include "platform/weborigin/KURL.h" 25 #include "platform/weborigin/KURL.h"
26 #include "wtf/Vector.h" 26 #include "wtf/Vector.h"
27 #include <inttypes.h> 27 #include <inttypes.h>
28 28
29 namespace WebCore { 29 namespace WebCore {
30 30
31 namespace { 31 namespace {
32 32
33 class JSCallStack : public TraceEvent::ConvertableToTraceFormat { 33 class JSCallStack : public TraceEvent::ConvertableToTraceFormat {
34 public: 34 public:
35 explicit JSCallStack(PassRefPtrWillBeRawPtr<ScriptCallStack> callstack) : m_ callstack(callstack) { } 35 explicit JSCallStack(PassRefPtrWillBeRawPtr<ScriptCallStack> callstack)
36 {
37 m_serialized = callstack ? callstack->buildInspectorArray()->toJSONStrin g() : "null";
38 ASSERT(m_serialized.isSafeToSendToAnotherThread());
39 }
36 virtual String asTraceFormat() const 40 virtual String asTraceFormat() const
37 { 41 {
38 if (!m_callstack) 42 return m_serialized;
39 return "null";
40 return m_callstack->buildInspectorArray()->toJSONString();
41 } 43 }
42 44
43 private: 45 private:
44 RefPtrWillBePersistent<ScriptCallStack> m_callstack; 46 String m_serialized;
45 }; 47 };
46 48
47 String toHexString(void* p) 49 String toHexString(void* p)
48 { 50 {
49 return String::format("0x%" PRIx64, static_cast<uint64>(reinterpret_cast<int ptr_t>(p))); 51 return String::format("0x%" PRIx64, static_cast<uint64>(reinterpret_cast<int ptr_t>(p)));
50 } 52 }
51 53
52 } 54 }
53 55
54 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorLayoutEvent::beginData (FrameView* frameView) 56 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorLayoutEvent::beginData (FrameView* frameView)
55 { 57 {
56 bool isPartial; 58 bool isPartial;
57 unsigned needsLayoutObjects; 59 unsigned needsLayoutObjects;
58 unsigned totalObjects; 60 unsigned totalObjects;
59 LocalFrame& frame = frameView->frame(); 61 LocalFrame& frame = frameView->frame();
60 frame.countObjectsNeedingLayout(needsLayoutObjects, totalObjects, isPartial) ; 62 frame.countObjectsNeedingLayout(needsLayoutObjects, totalObjects, isPartial) ;
61 63
62 RefPtr<JSONObject> data = JSONObject::create(); 64 TracedValue value;
63 data->setNumber("dirtyObjects", needsLayoutObjects); 65 return value.setInteger("dirtyObjects", needsLayoutObjects)
64 data->setNumber("totalObjects", totalObjects); 66 .setInteger("totalObjects", totalObjects)
65 data->setBoolean("partialLayout", isPartial); 67 .setBoolean("partialLayout", isPartial)
66 data->setString("frame", toHexString(&frame)); 68 .setString("frame", toHexString(&frame))
67 return TracedValue::fromJSONValue(data); 69 .finish();
68 } 70 }
69 71
70 static PassRefPtr<JSONArray> createQuad(const FloatQuad& quad) 72 static void createQuad(TracedValue& value, const char* name, const FloatQuad& qu ad)
71 { 73 {
72 RefPtr<JSONArray> array = JSONArray::create(); 74 value.beginArray(name)
73 array->pushNumber(quad.p1().x()); 75 .pushDouble(quad.p1().x())
74 array->pushNumber(quad.p1().y()); 76 .pushDouble(quad.p1().y())
75 array->pushNumber(quad.p2().x()); 77 .pushDouble(quad.p2().x())
76 array->pushNumber(quad.p2().y()); 78 .pushDouble(quad.p2().y())
77 array->pushNumber(quad.p3().x()); 79 .pushDouble(quad.p3().x())
78 array->pushNumber(quad.p3().y()); 80 .pushDouble(quad.p3().y())
79 array->pushNumber(quad.p4().x()); 81 .pushDouble(quad.p4().x())
80 array->pushNumber(quad.p4().y()); 82 .pushDouble(quad.p4().y())
81 return array.release(); 83 .endArray();
82 } 84 }
83 85
84 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorLayoutEvent::endData(R enderObject* rootForThisLayout) 86 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorLayoutEvent::endData(R enderObject* rootForThisLayout)
85 { 87 {
86 Vector<FloatQuad> quads; 88 Vector<FloatQuad> quads;
87 rootForThisLayout->absoluteQuads(quads); 89 rootForThisLayout->absoluteQuads(quads);
88 90
89 RefPtr<JSONObject> data = JSONObject::create(); 91 TracedValue value;
90 if (quads.size() >= 1) { 92 if (quads.size() >= 1) {
91 data->setArray("root", createQuad(quads[0])); 93 createQuad(value, "root", quads[0]);
92 int rootNodeId = InspectorNodeIds::idForNode(rootForThisLayout->generati ngNode()); 94 int rootNodeId = InspectorNodeIds::idForNode(rootForThisLayout->generati ngNode());
93 data->setNumber("rootNode", rootNodeId); 95 value.setInteger("rootNode", rootNodeId);
94 } else { 96 } else {
95 ASSERT_NOT_REACHED(); 97 ASSERT_NOT_REACHED();
96 } 98 }
97 return TracedValue::fromJSONValue(data); 99 return value.finish();
98 } 100 }
99 101
100 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorSendRequestEvent::data (unsigned long identifier, LocalFrame* frame, const ResourceRequest& request) 102 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorSendRequestEvent::data (unsigned long identifier, LocalFrame* frame, const ResourceRequest& request)
101 { 103 {
102 String requestId = IdentifiersFactory::requestId(identifier); 104 String requestId = IdentifiersFactory::requestId(identifier);
103 105
104 RefPtr<JSONObject> data = JSONObject::create(); 106 TracedValue value;
105 data->setString("requestId", requestId); 107 return value.setString("requestId", requestId)
106 data->setString("frame", toHexString(frame)); 108 .setString("frame", toHexString(frame))
107 data->setString("url", request.url().string()); 109 .setString("url", request.url().string())
108 data->setString("requestMethod", request.httpMethod()); 110 .setString("requestMethod", request.httpMethod())
109 return TracedValue::fromJSONValue(data); 111 .finish();
110 } 112 }
111 113
112 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorReceiveResponseEvent:: data(unsigned long identifier, LocalFrame* frame, const ResourceResponse& respon se) 114 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorReceiveResponseEvent:: data(unsigned long identifier, LocalFrame* frame, const ResourceResponse& respon se)
113 { 115 {
114 String requestId = IdentifiersFactory::requestId(identifier); 116 String requestId = IdentifiersFactory::requestId(identifier);
115 117
116 RefPtr<JSONObject> data = JSONObject::create(); 118 TracedValue value;
117 data->setString("requestId", requestId); 119 return value.setString("requestId", requestId)
118 data->setString("frame", toHexString(frame)); 120 .setString("frame", toHexString(frame))
119 data->setNumber("statusCode", response.httpStatusCode()); 121 .setInteger("statusCode", response.httpStatusCode())
120 data->setString("mimeType", response.mimeType().string().isolatedCopy()); 122 .setString("mimeType", response.mimeType().string().isolatedCopy())
121 return TracedValue::fromJSONValue(data); 123 .finish();
122 } 124 }
123 125
124 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorReceiveDataEvent::data (unsigned long identifier, LocalFrame* frame, int encodedDataLength) 126 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorReceiveDataEvent::data (unsigned long identifier, LocalFrame* frame, int encodedDataLength)
125 { 127 {
126 String requestId = IdentifiersFactory::requestId(identifier); 128 String requestId = IdentifiersFactory::requestId(identifier);
127 129
128 RefPtr<JSONObject> data = JSONObject::create(); 130 TracedValue value;
129 data->setString("requestId", requestId); 131 return value.setString("requestId", requestId)
130 data->setString("frame", toHexString(frame)); 132 .setString("frame", toHexString(frame))
131 data->setNumber("encodedDataLength", encodedDataLength); 133 .setInteger("encodedDataLength", encodedDataLength)
132 return TracedValue::fromJSONValue(data); 134 .finish();
133 } 135 }
134 136
135 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorResourceFinishEvent::d ata(unsigned long identifier, double finishTime, bool didFail) 137 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorResourceFinishEvent::d ata(unsigned long identifier, double finishTime, bool didFail)
136 { 138 {
137 String requestId = IdentifiersFactory::requestId(identifier); 139 String requestId = IdentifiersFactory::requestId(identifier);
138 140
139 RefPtr<JSONObject> data = JSONObject::create(); 141 TracedValue value;
140 data->setString("requestId", requestId); 142 value.setString("requestId", requestId);
141 data->setBoolean("didFail", didFail); 143 value.setBoolean("didFail", didFail);
142 if (finishTime) 144 if (finishTime)
143 data->setNumber("networkTime", finishTime); 145 value.setDouble("networkTime", finishTime);
144 return TracedValue::fromJSONValue(data); 146 return value.finish();
145 } 147 }
146 148
147 static LocalFrame* frameForExecutionContext(ExecutionContext* context) 149 static LocalFrame* frameForExecutionContext(ExecutionContext* context)
148 { 150 {
149 LocalFrame* frame = 0; 151 LocalFrame* frame = 0;
150 if (context->isDocument()) 152 if (context->isDocument())
151 frame = toDocument(context)->frame(); 153 frame = toDocument(context)->frame();
152 return frame; 154 return frame;
153 } 155 }
154 156
155 static PassRefPtr<JSONObject> genericTimerData(ExecutionContext* context, int ti merId) 157 static PassOwnPtr<TracedValue> genericTimerData(ExecutionContext* context, int t imerId)
156 { 158 {
157 RefPtr<JSONObject> data = JSONObject::create(); 159 OwnPtr<TracedValue> value = adoptPtr(new TracedValue());
158 data->setNumber("timerId", timerId); 160 value->setInteger("timerId", timerId);
159 if (LocalFrame* frame = frameForExecutionContext(context)) 161 if (LocalFrame* frame = frameForExecutionContext(context))
160 data->setString("frame", toHexString(frame)); 162 value->setString("frame", toHexString(frame));
161 return data.release(); 163 return value.release();
162 } 164 }
163 165
164 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorTimerInstallEvent::dat a(ExecutionContext* context, int timerId, int timeout, bool singleShot) 166 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorTimerInstallEvent::dat a(ExecutionContext* context, int timerId, int timeout, bool singleShot)
165 { 167 {
166 RefPtr<JSONObject> data = genericTimerData(context, timerId); 168 OwnPtr<TracedValue> value = genericTimerData(context, timerId);
167 data->setNumber("timeout", timeout); 169 value->setInteger("timeout", timeout);
168 data->setBoolean("singleShot", singleShot); 170 value->setBoolean("singleShot", singleShot);
169 return TracedValue::fromJSONValue(data); 171 return value->finish();
170 } 172 }
171 173
172 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorTimerRemoveEvent::data (ExecutionContext* context, int timerId) 174 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorTimerRemoveEvent::data (ExecutionContext* context, int timerId)
173 { 175 {
174 return TracedValue::fromJSONValue(genericTimerData(context, timerId)); 176 return genericTimerData(context, timerId)->finish();
175 } 177 }
176 178
177 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorTimerFireEvent::data(E xecutionContext* context, int timerId) 179 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorTimerFireEvent::data(E xecutionContext* context, int timerId)
178 { 180 {
179 return TracedValue::fromJSONValue(genericTimerData(context, timerId)); 181 return genericTimerData(context, timerId)->finish();
180 } 182 }
181 183
182 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorAnimationFrameEvent::d ata(Document* document, int callbackId) 184 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorAnimationFrameEvent::d ata(Document* document, int callbackId)
183 { 185 {
184 RefPtr<JSONObject> data = JSONObject::create(); 186 TracedValue value;
185 data->setNumber("id", callbackId); 187 return value.setInteger("id", callbackId)
186 data->setString("frame", toHexString(document->frame())); 188 .setString("frame", toHexString(document->frame()))
187 return TracedValue::fromJSONValue(data); 189 .finish();
188 } 190 }
189 191
190 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorWebSocketCreateEvent:: data(Document* document, unsigned long identifier, const KURL& url, const String & protocol) 192 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorWebSocketCreateEvent:: data(Document* document, unsigned long identifier, const KURL& url, const String & protocol)
191 { 193 {
192 RefPtr<JSONObject> data = JSONObject::create(); 194 TracedValue value;
193 data->setNumber("identifier", identifier); 195 value.setInteger("identifier", identifier);
194 data->setString("url", url.string()); 196 value.setString("url", url.string());
195 data->setString("frame", toHexString(document->frame())); 197 value.setString("frame", toHexString(document->frame()));
196 if (!protocol.isNull()) 198 if (!protocol.isNull())
197 data->setString("webSocketProtocol", protocol); 199 value.setString("webSocketProtocol", protocol);
198 return TracedValue::fromJSONValue(data); 200 return value.finish();
199 } 201 }
200 202
201 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorWebSocketEvent::data(D ocument* document, unsigned long identifier) 203 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorWebSocketEvent::data(D ocument* document, unsigned long identifier)
202 { 204 {
203 RefPtr<JSONObject> data = JSONObject::create(); 205 TracedValue value;
204 data->setNumber("identifier", identifier); 206 value.setInteger("identifier", identifier);
205 data->setString("frame", toHexString(document->frame())); 207 value.setString("frame", toHexString(document->frame()));
206 return TracedValue::fromJSONValue(data); 208 return value.finish();
207 } 209 }
208 210
209 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorParseHtmlEvent::beginD ata(Document* document, unsigned startLine) 211 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorParseHtmlEvent::beginD ata(Document* document, unsigned startLine)
210 { 212 {
211 RefPtr<JSONObject> data = JSONObject::create(); 213 TracedValue value;
212 data->setNumber("startLine", startLine); 214 value.setInteger("startLine", startLine);
213 data->setString("frame", toHexString(document->frame())); 215 value.setString("frame", toHexString(document->frame()));
214 return TracedValue::fromJSONValue(data); 216 return value.finish();
215 } 217 }
216 218
217 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorXhrReadyStateChangeEve nt::data(ExecutionContext* context, XMLHttpRequest* request) 219 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorXhrReadyStateChangeEve nt::data(ExecutionContext* context, XMLHttpRequest* request)
218 { 220 {
219 RefPtr<JSONObject> data = JSONObject::create(); 221 TracedValue value;
220 data->setString("url", request->url().string()); 222 value.setString("url", request->url().string());
221 data->setNumber("readyState", request->readyState()); 223 value.setInteger("readyState", request->readyState());
222 if (LocalFrame* frame = frameForExecutionContext(context)) 224 if (LocalFrame* frame = frameForExecutionContext(context))
223 data->setString("frame", toHexString(frame)); 225 value.setString("frame", toHexString(frame));
224 return TracedValue::fromJSONValue(data); 226 return value.finish();
225 } 227 }
226 228
227 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorXhrLoadEvent::data(Exe cutionContext* context, XMLHttpRequest* request) 229 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorXhrLoadEvent::data(Exe cutionContext* context, XMLHttpRequest* request)
228 { 230 {
229 RefPtr<JSONObject> data = JSONObject::create(); 231 TracedValue value;
230 data->setString("url", request->url().string()); 232 value.setString("url", request->url().string());
231 if (LocalFrame* frame = frameForExecutionContext(context)) 233 if (LocalFrame* frame = frameForExecutionContext(context))
232 data->setString("frame", toHexString(frame)); 234 value.setString("frame", toHexString(frame));
233 return TracedValue::fromJSONValue(data); 235 return value.finish();
234 } 236 }
235 237
236 static void localToPageQuad(const RenderObject& renderer, const LayoutRect& rect , FloatQuad* quad) 238 static void localToPageQuad(const RenderObject& renderer, const LayoutRect& rect , FloatQuad* quad)
237 { 239 {
238 LocalFrame* frame = renderer.frame(); 240 LocalFrame* frame = renderer.frame();
239 FrameView* view = frame->view(); 241 FrameView* view = frame->view();
240 FloatQuad absolute = renderer.localToAbsoluteQuad(FloatQuad(rect)); 242 FloatQuad absolute = renderer.localToAbsoluteQuad(FloatQuad(rect));
241 quad->setP1(view->contentsToRootView(roundedIntPoint(absolute.p1()))); 243 quad->setP1(view->contentsToRootView(roundedIntPoint(absolute.p1())));
242 quad->setP2(view->contentsToRootView(roundedIntPoint(absolute.p2()))); 244 quad->setP2(view->contentsToRootView(roundedIntPoint(absolute.p2())));
243 quad->setP3(view->contentsToRootView(roundedIntPoint(absolute.p3()))); 245 quad->setP3(view->contentsToRootView(roundedIntPoint(absolute.p3())));
244 quad->setP4(view->contentsToRootView(roundedIntPoint(absolute.p4()))); 246 quad->setP4(view->contentsToRootView(roundedIntPoint(absolute.p4())));
245 } 247 }
246 248
247 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintEvent::data(Rende rObject* renderer, const LayoutRect& clipRect, const GraphicsLayer* graphicsLaye r) 249 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintEvent::data(Rende rObject* renderer, const LayoutRect& clipRect, const GraphicsLayer* graphicsLaye r)
248 { 250 {
249 RefPtr<JSONObject> data = JSONObject::create(); 251 TracedValue value;
250 data->setString("frame", toHexString(renderer->frame())); 252 value.setString("frame", toHexString(renderer->frame()));
251 FloatQuad quad; 253 FloatQuad quad;
252 localToPageQuad(*renderer, clipRect, &quad); 254 localToPageQuad(*renderer, clipRect, &quad);
253 data->setArray("clip", createQuad(quad)); 255 createQuad(value, "clip", quad);
254 int nodeId = InspectorNodeIds::idForNode(renderer->generatingNode()); 256 int nodeId = InspectorNodeIds::idForNode(renderer->generatingNode());
255 data->setNumber("nodeId", nodeId); 257 value.setInteger("nodeId", nodeId);
256 int graphicsLayerId = graphicsLayer ? graphicsLayer->platformLayer()->id() : 0; 258 int graphicsLayerId = graphicsLayer ? graphicsLayer->platformLayer()->id() : 0;
257 data->setNumber("layerId", graphicsLayerId); 259 value.setInteger("layerId", graphicsLayerId);
258 return TracedValue::fromJSONValue(data); 260 return value.finish();
259 } 261 }
260 262
261 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorMarkLoadEvent::data(Lo calFrame* frame) 263 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorMarkLoadEvent::data(Lo calFrame* frame)
262 { 264 {
263 RefPtr<JSONObject> data = JSONObject::create(); 265 TracedValue value;
264 data->setString("frame", toHexString(frame)); 266 value.setString("frame", toHexString(frame));
265 bool isMainFrame = frame && frame->page()->mainFrame() == frame; 267 bool isMainFrame = frame && frame->page()->mainFrame() == frame;
266 data->setBoolean("isMainFrame", isMainFrame); 268 value.setBoolean("isMainFrame", isMainFrame);
267 return TracedValue::fromJSONValue(data); 269 return value.finish();
268 } 270 }
269 271
270 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorScrollLayerEvent::data (RenderObject* renderer) 272 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorScrollLayerEvent::data (RenderObject* renderer)
271 { 273 {
272 RefPtr<JSONObject> data = JSONObject::create(); 274 TracedValue value;
273 data->setString("frame", toHexString(renderer->frame())); 275 value.setString("frame", toHexString(renderer->frame()));
274 int nodeId = InspectorNodeIds::idForNode(renderer->generatingNode()); 276 int nodeId = InspectorNodeIds::idForNode(renderer->generatingNode());
275 data->setNumber("nodeId", nodeId); 277 value.setInteger("nodeId", nodeId);
276 return TracedValue::fromJSONValue(data); 278 return value.finish();
277 } 279 }
278 280
279 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorEvaluateScriptEvent::d ata(LocalFrame* frame, const String& url, int lineNumber) 281 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorEvaluateScriptEvent::d ata(LocalFrame* frame, const String& url, int lineNumber)
280 { 282 {
281 RefPtr<JSONObject> data = JSONObject::create(); 283 TracedValue value;
282 data->setString("frame", toHexString(frame)); 284 value.setString("frame", toHexString(frame));
283 data->setString("url", url); 285 value.setString("url", url);
284 data->setNumber("lineNumber", lineNumber); 286 value.setInteger("lineNumber", lineNumber);
285 return TracedValue::fromJSONValue(data); 287 return value.finish();
286 } 288 }
287 289
288 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorFunctionCallEvent::dat a(ExecutionContext* context, int scriptId, const String& scriptName, int scriptL ine) 290 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorFunctionCallEvent::dat a(ExecutionContext* context, int scriptId, const String& scriptName, int scriptL ine)
289 { 291 {
290 RefPtr<JSONObject> data = JSONObject::create(); 292 TracedValue value;
291 data->setString("scriptId", String::number(scriptId)); 293 value.setString("scriptId", String::number(scriptId));
292 data->setString("scriptName", scriptName); 294 value.setString("scriptName", scriptName);
293 data->setNumber("scriptLine", scriptLine); 295 value.setInteger("scriptLine", scriptLine);
294 if (LocalFrame* frame = frameForExecutionContext(context)) 296 if (LocalFrame* frame = frameForExecutionContext(context))
295 data->setString("frame", toHexString(frame)); 297 value.setString("frame", toHexString(frame));
296 return TracedValue::fromJSONValue(data); 298 return value.finish();
297 } 299 }
298 300
299 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintImageEvent::data( const RenderImage& renderImage) 301 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintImageEvent::data( const RenderImage& renderImage)
300 { 302 {
301 RefPtr<JSONObject> data = JSONObject::create(); 303 TracedValue value;
302 data->setNumber("nodeId", InspectorNodeIds::idForNode(renderImage.generating Node())); 304 value.setInteger("nodeId", InspectorNodeIds::idForNode(renderImage.generatin gNode()));
303
304 if (const ImageResource* resource = renderImage.cachedImage()) 305 if (const ImageResource* resource = renderImage.cachedImage())
305 data->setString("url", resource->url().string()); 306 value.setString("url", resource->url().string());
306 307 return value.finish();
307 return TracedValue::fromJSONValue(data);
308 } 308 }
309 309
310 static size_t usedHeapSize() 310 static size_t usedHeapSize()
311 { 311 {
312 HeapInfo info; 312 HeapInfo info;
313 ScriptGCEvent::getHeapSize(info); 313 ScriptGCEvent::getHeapSize(info);
314 return info.usedJSHeapSize; 314 return info.usedJSHeapSize;
315 } 315 }
316 316
317 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorUpdateCountersEvent::d ata() 317 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorUpdateCountersEvent::d ata()
318 { 318 {
319 RefPtr<JSONObject> data = JSONObject::create(); 319 TracedValue value;
320 if (isMainThread()) { 320 if (isMainThread()) {
321 data->setNumber("documents", InspectorCounters::counterValue(InspectorCo unters::DocumentCounter)); 321 value.setInteger("documents", InspectorCounters::counterValue(InspectorC ounters::DocumentCounter));
322 data->setNumber("nodes", InspectorCounters::counterValue(InspectorCounte rs::NodeCounter)); 322 value.setInteger("nodes", InspectorCounters::counterValue(InspectorCount ers::NodeCounter));
323 data->setNumber("jsEventListeners", InspectorCounters::counterValue(Insp ectorCounters::JSEventListenerCounter)); 323 value.setInteger("jsEventListeners", InspectorCounters::counterValue(Ins pectorCounters::JSEventListenerCounter));
324 } 324 }
325 data->setNumber("jsHeapSizeUsed", static_cast<double>(usedHeapSize())); 325 value.setDouble("jsHeapSizeUsed", static_cast<double>(usedHeapSize()));
326 return TracedValue::fromJSONValue(data); 326 return value.finish();
327 } 327 }
328 328
329 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorCallStackEvent::curren tCallStack() 329 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorCallStackEvent::curren tCallStack()
330 { 330 {
331 return adoptRef(new JSCallStack(createScriptCallStack(ScriptCallStack::maxCa llStackSizeToCapture, true))); 331 return adoptRef(new JSCallStack(createScriptCallStack(ScriptCallStack::maxCa llStackSizeToCapture, true)));
332 } 332 }
333 333
334 } 334 }
OLDNEW
« no previous file with comments | « Source/core/dom/Node.cpp ('k') | Source/core/rendering/RenderObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698