OLD | NEW |
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/core/v8/ScriptCallStackFactory.h" | 8 #include "bindings/core/v8/ScriptCallStackFactory.h" |
9 #include "bindings/core/v8/ScriptGCEvent.h" | 9 #include "bindings/core/v8/ScriptGCEvent.h" |
10 #include "bindings/core/v8/ScriptSourceCode.h" | 10 #include "bindings/core/v8/ScriptSourceCode.h" |
11 #include "core/animation/Animation.h" | 11 #include "core/animation/Animation.h" |
12 #include "core/animation/AnimationPlayer.h" | 12 #include "core/animation/AnimationPlayer.h" |
13 #include "core/css/invalidation/DescendantInvalidationSet.h" | 13 #include "core/css/invalidation/DescendantInvalidationSet.h" |
14 #include "core/dom/StyleChangeReason.h" | 14 #include "core/dom/StyleChangeReason.h" |
15 #include "core/events/Event.h" | 15 #include "core/events/Event.h" |
16 #include "core/fetch/CSSStyleSheetResource.h" | 16 #include "core/fetch/CSSStyleSheetResource.h" |
17 #include "core/frame/FrameView.h" | 17 #include "core/frame/FrameView.h" |
18 #include "core/frame/LocalFrame.h" | 18 #include "core/frame/LocalFrame.h" |
19 #include "core/inspector/IdentifiersFactory.h" | 19 #include "core/inspector/IdentifiersFactory.h" |
20 #include "core/inspector/InspectorNodeIds.h" | 20 #include "core/inspector/InspectorNodeIds.h" |
21 #include "core/inspector/ScriptCallStack.h" | 21 #include "core/inspector/ScriptCallStack.h" |
22 #include "core/layout/Layer.h" | 22 #include "core/layout/Layer.h" |
| 23 #include "core/layout/LayoutObject.h" |
23 #include "core/page/Page.h" | 24 #include "core/page/Page.h" |
24 #include "core/rendering/RenderImage.h" | 25 #include "core/rendering/RenderImage.h" |
25 #include "core/rendering/RenderObject.h" | |
26 #include "core/workers/WorkerThread.h" | 26 #include "core/workers/WorkerThread.h" |
27 #include "core/xmlhttprequest/XMLHttpRequest.h" | 27 #include "core/xmlhttprequest/XMLHttpRequest.h" |
28 #include "platform/JSONValues.h" | 28 #include "platform/JSONValues.h" |
29 #include "platform/TracedValue.h" | 29 #include "platform/TracedValue.h" |
30 #include "platform/graphics/GraphicsLayer.h" | 30 #include "platform/graphics/GraphicsLayer.h" |
31 #include "platform/network/ResourceRequest.h" | 31 #include "platform/network/ResourceRequest.h" |
32 #include "platform/network/ResourceResponse.h" | 32 #include "platform/network/ResourceResponse.h" |
33 #include "platform/weborigin/KURL.h" | 33 #include "platform/weborigin/KURL.h" |
34 #include "wtf/Vector.h" | 34 #include "wtf/Vector.h" |
35 #include <inttypes.h> | 35 #include <inttypes.h> |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
288 value->pushDouble(quad.p1().y()); | 288 value->pushDouble(quad.p1().y()); |
289 value->pushDouble(quad.p2().x()); | 289 value->pushDouble(quad.p2().x()); |
290 value->pushDouble(quad.p2().y()); | 290 value->pushDouble(quad.p2().y()); |
291 value->pushDouble(quad.p3().x()); | 291 value->pushDouble(quad.p3().x()); |
292 value->pushDouble(quad.p3().y()); | 292 value->pushDouble(quad.p3().y()); |
293 value->pushDouble(quad.p4().x()); | 293 value->pushDouble(quad.p4().x()); |
294 value->pushDouble(quad.p4().y()); | 294 value->pushDouble(quad.p4().y()); |
295 value->endArray(); | 295 value->endArray(); |
296 } | 296 } |
297 | 297 |
298 static void setGeneratingNodeInfo(TracedValue* value, const RenderObject* render
er, const char* idFieldName, const char* nameFieldName = nullptr) | 298 static void setGeneratingNodeInfo(TracedValue* value, const LayoutObject* render
er, const char* idFieldName, const char* nameFieldName = nullptr) |
299 { | 299 { |
300 Node* node = nullptr; | 300 Node* node = nullptr; |
301 for (; renderer && !node; renderer = renderer->parent()) | 301 for (; renderer && !node; renderer = renderer->parent()) |
302 node = renderer->generatingNode(); | 302 node = renderer->generatingNode(); |
303 if (!node) | 303 if (!node) |
304 return; | 304 return; |
305 | 305 |
306 setNodeInfo(value, node, idFieldName, nameFieldName); | 306 setNodeInfo(value, node, idFieldName, nameFieldName); |
307 } | 307 } |
308 | 308 |
309 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorLayoutEvent::endData(R
enderObject* rootForThisLayout) | 309 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorLayoutEvent::endData(L
ayoutObject* rootForThisLayout) |
310 { | 310 { |
311 Vector<FloatQuad> quads; | 311 Vector<FloatQuad> quads; |
312 rootForThisLayout->absoluteQuads(quads); | 312 rootForThisLayout->absoluteQuads(quads); |
313 | 313 |
314 RefPtr<TracedValue> value = TracedValue::create(); | 314 RefPtr<TracedValue> value = TracedValue::create(); |
315 if (quads.size() >= 1) { | 315 if (quads.size() >= 1) { |
316 createQuad(value.get(), "root", quads[0]); | 316 createQuad(value.get(), "root", quads[0]); |
317 setGeneratingNodeInfo(value.get(), rootForThisLayout, "rootNode"); | 317 setGeneratingNodeInfo(value.get(), rootForThisLayout, "rootNode"); |
318 } else { | 318 } else { |
319 ASSERT_NOT_REACHED(); | 319 ASSERT_NOT_REACHED(); |
320 } | 320 } |
321 return value.release(); | 321 return value.release(); |
322 } | 322 } |
323 | 323 |
324 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorLayoutInvalidationTrac
kingEvent::data(const RenderObject* renderer) | 324 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorLayoutInvalidationTrac
kingEvent::data(const LayoutObject* renderer) |
325 { | 325 { |
326 ASSERT(renderer); | 326 ASSERT(renderer); |
327 RefPtr<TracedValue> value = TracedValue::create(); | 327 RefPtr<TracedValue> value = TracedValue::create(); |
328 value->setString("frame", toHexString(renderer->frame())); | 328 value->setString("frame", toHexString(renderer->frame())); |
329 setGeneratingNodeInfo(value.get(), renderer, "nodeId", "nodeName"); | 329 setGeneratingNodeInfo(value.get(), renderer, "nodeId", "nodeName"); |
330 if (RefPtrWillBeRawPtr<ScriptCallStack> stackTrace = createScriptCallStack(m
axInvalidationTrackingCallstackSize, true)) | 330 if (RefPtrWillBeRawPtr<ScriptCallStack> stackTrace = createScriptCallStack(m
axInvalidationTrackingCallstackSize, true)) |
331 stackTrace->toTracedValue(value.get(), "stackTrace"); | 331 stackTrace->toTracedValue(value.get(), "stackTrace"); |
332 return value.release(); | 332 return value.release(); |
333 } | 333 } |
334 | 334 |
335 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintInvalidationTrack
ingEvent::data(const RenderObject* renderer, const RenderObject* paintContainer) | 335 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintInvalidationTrack
ingEvent::data(const LayoutObject* renderer, const LayoutObject* paintContainer) |
336 { | 336 { |
337 ASSERT(renderer); | 337 ASSERT(renderer); |
338 RefPtr<TracedValue> value = TracedValue::create(); | 338 RefPtr<TracedValue> value = TracedValue::create(); |
339 value->setString("frame", toHexString(renderer->frame())); | 339 value->setString("frame", toHexString(renderer->frame())); |
340 setGeneratingNodeInfo(value.get(), paintContainer, "paintId"); | 340 setGeneratingNodeInfo(value.get(), paintContainer, "paintId"); |
341 setGeneratingNodeInfo(value.get(), renderer, "nodeId", "nodeName"); | 341 setGeneratingNodeInfo(value.get(), renderer, "nodeId", "nodeName"); |
342 return value.release(); | 342 return value.release(); |
343 } | 343 } |
344 | 344 |
345 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorSendRequestEvent::data
(unsigned long identifier, LocalFrame* frame, const ResourceRequest& request) | 345 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorSendRequestEvent::data
(unsigned long identifier, LocalFrame* frame, const ResourceRequest& request) |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorXhrLoadEvent::data(Exe
cutionContext* context, XMLHttpRequest* request) | 486 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorXhrLoadEvent::data(Exe
cutionContext* context, XMLHttpRequest* request) |
487 { | 487 { |
488 RefPtr<TracedValue> value = TracedValue::create(); | 488 RefPtr<TracedValue> value = TracedValue::create(); |
489 value->setString("url", request->url().string()); | 489 value->setString("url", request->url().string()); |
490 if (LocalFrame* frame = frameForExecutionContext(context)) | 490 if (LocalFrame* frame = frameForExecutionContext(context)) |
491 value->setString("frame", toHexString(frame)); | 491 value->setString("frame", toHexString(frame)); |
492 setCallStack(value.get()); | 492 setCallStack(value.get()); |
493 return value.release(); | 493 return value.release(); |
494 } | 494 } |
495 | 495 |
496 static void localToPageQuad(const RenderObject& renderer, const LayoutRect& rect
, FloatQuad* quad) | 496 static void localToPageQuad(const LayoutObject& renderer, const LayoutRect& rect
, FloatQuad* quad) |
497 { | 497 { |
498 LocalFrame* frame = renderer.frame(); | 498 LocalFrame* frame = renderer.frame(); |
499 FrameView* view = frame->view(); | 499 FrameView* view = frame->view(); |
500 FloatQuad absolute = renderer.localToAbsoluteQuad(FloatQuad(rect)); | 500 FloatQuad absolute = renderer.localToAbsoluteQuad(FloatQuad(rect)); |
501 quad->setP1(view->contentsToRootView(roundedIntPoint(absolute.p1()))); | 501 quad->setP1(view->contentsToRootView(roundedIntPoint(absolute.p1()))); |
502 quad->setP2(view->contentsToRootView(roundedIntPoint(absolute.p2()))); | 502 quad->setP2(view->contentsToRootView(roundedIntPoint(absolute.p2()))); |
503 quad->setP3(view->contentsToRootView(roundedIntPoint(absolute.p3()))); | 503 quad->setP3(view->contentsToRootView(roundedIntPoint(absolute.p3()))); |
504 quad->setP4(view->contentsToRootView(roundedIntPoint(absolute.p4()))); | 504 quad->setP4(view->contentsToRootView(roundedIntPoint(absolute.p4()))); |
505 } | 505 } |
506 | 506 |
507 const char InspectorLayerInvalidationTrackingEvent::SquashingLayerGeometryWasUpd
ated[] = "Squashing layer geometry was updated"; | 507 const char InspectorLayerInvalidationTrackingEvent::SquashingLayerGeometryWasUpd
ated[] = "Squashing layer geometry was updated"; |
508 const char InspectorLayerInvalidationTrackingEvent::AddedToSquashingLayer[] = "T
he layer may have been added to an already-existing squashing layer"; | 508 const char InspectorLayerInvalidationTrackingEvent::AddedToSquashingLayer[] = "T
he layer may have been added to an already-existing squashing layer"; |
509 const char InspectorLayerInvalidationTrackingEvent::RemovedFromSquashingLayer[]
= "Removed the layer from a squashing layer"; | 509 const char InspectorLayerInvalidationTrackingEvent::RemovedFromSquashingLayer[]
= "Removed the layer from a squashing layer"; |
510 const char InspectorLayerInvalidationTrackingEvent::ReflectionLayerChanged[] = "
Reflection layer change"; | 510 const char InspectorLayerInvalidationTrackingEvent::ReflectionLayerChanged[] = "
Reflection layer change"; |
511 const char InspectorLayerInvalidationTrackingEvent::NewCompositedLayer[] = "Assi
gned a new composited layer"; | 511 const char InspectorLayerInvalidationTrackingEvent::NewCompositedLayer[] = "Assi
gned a new composited layer"; |
512 | 512 |
513 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorLayerInvalidationTrack
ingEvent::data(const Layer* layer, const char* reason) | 513 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorLayerInvalidationTrack
ingEvent::data(const Layer* layer, const char* reason) |
514 { | 514 { |
515 const RenderObject* paintInvalidationContainer = layer->renderer()->containe
rForPaintInvalidation(); | 515 const LayoutObject* paintInvalidationContainer = layer->renderer()->containe
rForPaintInvalidation(); |
516 | 516 |
517 RefPtr<TracedValue> value = TracedValue::create(); | 517 RefPtr<TracedValue> value = TracedValue::create(); |
518 value->setString("frame", toHexString(paintInvalidationContainer->frame())); | 518 value->setString("frame", toHexString(paintInvalidationContainer->frame())); |
519 setGeneratingNodeInfo(value.get(), paintInvalidationContainer, "paintId"); | 519 setGeneratingNodeInfo(value.get(), paintInvalidationContainer, "paintId"); |
520 value->setString("reason", reason); | 520 value->setString("reason", reason); |
521 return value.release(); | 521 return value.release(); |
522 } | 522 } |
523 | 523 |
524 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintEvent::data(Rende
rObject* renderer, const LayoutRect& clipRect, const GraphicsLayer* graphicsLaye
r) | 524 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintEvent::data(Layou
tObject* renderer, const LayoutRect& clipRect, const GraphicsLayer* graphicsLaye
r) |
525 { | 525 { |
526 RefPtr<TracedValue> value = TracedValue::create(); | 526 RefPtr<TracedValue> value = TracedValue::create(); |
527 value->setString("frame", toHexString(renderer->frame())); | 527 value->setString("frame", toHexString(renderer->frame())); |
528 FloatQuad quad; | 528 FloatQuad quad; |
529 localToPageQuad(*renderer, clipRect, &quad); | 529 localToPageQuad(*renderer, clipRect, &quad); |
530 createQuad(value.get(), "clip", quad); | 530 createQuad(value.get(), "clip", quad); |
531 setGeneratingNodeInfo(value.get(), renderer, "nodeId"); | 531 setGeneratingNodeInfo(value.get(), renderer, "nodeId"); |
532 int graphicsLayerId = graphicsLayer ? graphicsLayer->platformLayer()->id() :
0; | 532 int graphicsLayerId = graphicsLayer ? graphicsLayer->platformLayer()->id() :
0; |
533 value->setInteger("layerId", graphicsLayerId); | 533 value->setInteger("layerId", graphicsLayerId); |
534 setCallStack(value.get()); | 534 setCallStack(value.get()); |
(...skipping 14 matching lines...) Expand all Loading... |
549 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorCommitLoadEvent::data(
LocalFrame* frame) | 549 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorCommitLoadEvent::data(
LocalFrame* frame) |
550 { | 550 { |
551 return frameEventData(frame); | 551 return frameEventData(frame); |
552 } | 552 } |
553 | 553 |
554 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorMarkLoadEvent::data(Lo
calFrame* frame) | 554 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorMarkLoadEvent::data(Lo
calFrame* frame) |
555 { | 555 { |
556 return frameEventData(frame); | 556 return frameEventData(frame); |
557 } | 557 } |
558 | 558 |
559 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorScrollLayerEvent::data
(RenderObject* renderer) | 559 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorScrollLayerEvent::data
(LayoutObject* renderer) |
560 { | 560 { |
561 RefPtr<TracedValue> value = TracedValue::create(); | 561 RefPtr<TracedValue> value = TracedValue::create(); |
562 value->setString("frame", toHexString(renderer->frame())); | 562 value->setString("frame", toHexString(renderer->frame())); |
563 setGeneratingNodeInfo(value.get(), renderer, "nodeId"); | 563 setGeneratingNodeInfo(value.get(), renderer, "nodeId"); |
564 return value.release(); | 564 return value.release(); |
565 } | 565 } |
566 | 566 |
567 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorUpdateLayerTreeEvent::
data(LocalFrame* frame) | 567 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorUpdateLayerTreeEvent::
data(LocalFrame* frame) |
568 { | 568 { |
569 RefPtr<TracedValue> value = TracedValue::create(); | 569 RefPtr<TracedValue> value = TracedValue::create(); |
(...skipping 25 matching lines...) Expand all Loading... |
595 | 595 |
596 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintImageEvent::data(
const RenderImage& renderImage) | 596 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintImageEvent::data(
const RenderImage& renderImage) |
597 { | 597 { |
598 RefPtr<TracedValue> value = TracedValue::create(); | 598 RefPtr<TracedValue> value = TracedValue::create(); |
599 setGeneratingNodeInfo(value.get(), &renderImage, "nodeId"); | 599 setGeneratingNodeInfo(value.get(), &renderImage, "nodeId"); |
600 if (const ImageResource* resource = renderImage.cachedImage()) | 600 if (const ImageResource* resource = renderImage.cachedImage()) |
601 value->setString("url", resource->url().string()); | 601 value->setString("url", resource->url().string()); |
602 return value.release(); | 602 return value.release(); |
603 } | 603 } |
604 | 604 |
605 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintImageEvent::data(
const RenderObject& owningRenderer, const StyleImage& styleImage) | 605 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintImageEvent::data(
const LayoutObject& owningRenderer, const StyleImage& styleImage) |
606 { | 606 { |
607 RefPtr<TracedValue> value = TracedValue::create(); | 607 RefPtr<TracedValue> value = TracedValue::create(); |
608 setGeneratingNodeInfo(value.get(), &owningRenderer, "nodeId"); | 608 setGeneratingNodeInfo(value.get(), &owningRenderer, "nodeId"); |
609 if (const ImageResource* resource = styleImage.cachedImage()) | 609 if (const ImageResource* resource = styleImage.cachedImage()) |
610 value->setString("url", resource->url().string()); | 610 value->setString("url", resource->url().string()); |
611 return value.release(); | 611 return value.release(); |
612 } | 612 } |
613 | 613 |
614 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintImageEvent::data(
const RenderObject* owningRenderer, const ImageResource& imageResource) | 614 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorPaintImageEvent::data(
const LayoutObject* owningRenderer, const ImageResource& imageResource) |
615 { | 615 { |
616 RefPtr<TracedValue> value = TracedValue::create(); | 616 RefPtr<TracedValue> value = TracedValue::create(); |
617 setGeneratingNodeInfo(value.get(), owningRenderer, "nodeId"); | 617 setGeneratingNodeInfo(value.get(), owningRenderer, "nodeId"); |
618 value->setString("url", imageResource.url().string()); | 618 value->setString("url", imageResource.url().string()); |
619 return value.release(); | 619 return value.release(); |
620 } | 620 } |
621 | 621 |
622 static size_t usedHeapSize() | 622 static size_t usedHeapSize() |
623 { | 623 { |
624 HeapInfo info; | 624 HeapInfo info; |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
718 } | 718 } |
719 | 719 |
720 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorAnimationStateEvent::d
ata(const AnimationPlayer& player) | 720 PassRefPtr<TraceEvent::ConvertableToTraceFormat> InspectorAnimationStateEvent::d
ata(const AnimationPlayer& player) |
721 { | 721 { |
722 RefPtr<TracedValue> value = TracedValue::create(); | 722 RefPtr<TracedValue> value = TracedValue::create(); |
723 value->setString("state", player.playState()); | 723 value->setString("state", player.playState()); |
724 return value.release(); | 724 return value.release(); |
725 } | 725 } |
726 | 726 |
727 } | 727 } |
OLD | NEW |