| Index: third_party/WebKit/Source/platform/instrumentation/inspector/PlatformInspectorTraceEvents.cpp
|
| diff --git a/third_party/WebKit/Source/core/inspector/InspectorTraceEvents.cpp b/third_party/WebKit/Source/platform/instrumentation/inspector/PlatformInspectorTraceEvents.cpp
|
| similarity index 8%
|
| copy from third_party/WebKit/Source/core/inspector/InspectorTraceEvents.cpp
|
| copy to third_party/WebKit/Source/platform/instrumentation/inspector/PlatformInspectorTraceEvents.cpp
|
| index b2db6fe39c8431571c9c5412f21d3494fe957d10..578589280fd419a5a2610589fb320126bda05c90 100644
|
| --- a/third_party/WebKit/Source/core/inspector/InspectorTraceEvents.cpp
|
| +++ b/third_party/WebKit/Source/platform/instrumentation/inspector/PlatformInspectorTraceEvents.cpp
|
| @@ -1,528 +1,13 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Copyright 2017 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "core/inspector/InspectorTraceEvents.h"
|
| +#include "platform/instrumentation/inspector/PlatformInspectorTraceEvents.h"
|
|
|
| -#include "bindings/core/v8/ScriptSourceCode.h"
|
| -#include "bindings/core/v8/SourceLocation.h"
|
| -#include "core/animation/Animation.h"
|
| -#include "core/animation/KeyframeEffectReadOnly.h"
|
| -#include "core/css/invalidation/InvalidationSet.h"
|
| -#include "core/dom/DOMNodeIds.h"
|
| -#include "core/dom/StyleChangeReason.h"
|
| -#include "core/events/Event.h"
|
| -#include "core/frame/FrameView.h"
|
| -#include "core/frame/LocalFrame.h"
|
| -#include "core/html/HTMLFrameOwnerElement.h"
|
| -#include "core/inspector/IdentifiersFactory.h"
|
| -#include "core/layout/HitTestResult.h"
|
| -#include "core/layout/LayoutImage.h"
|
| -#include "core/layout/LayoutObject.h"
|
| -#include "core/loader/resource/CSSStyleSheetResource.h"
|
| -#include "core/page/Page.h"
|
| -#include "core/paint/PaintLayer.h"
|
| -#include "core/workers/WorkerGlobalScope.h"
|
| -#include "core/workers/WorkerThread.h"
|
| -#include "core/xmlhttprequest/XMLHttpRequest.h"
|
| -#include "platform/InstanceCounters.h"
|
| -#include "platform/graphics/GraphicsLayer.h"
|
| -#include "platform/instrumentation/tracing/TracedValue.h"
|
| -#include "platform/network/ResourceLoadPriority.h"
|
| -#include "platform/network/ResourceRequest.h"
|
| #include "platform/network/ResourceResponse.h"
|
| -#include "platform/weborigin/KURL.h"
|
| -#include "wtf/Vector.h"
|
| -#include "wtf/text/TextPosition.h"
|
| -#include <inttypes.h>
|
| -#include <memory>
|
| -#include <v8-profiler.h>
|
| -#include <v8.h>
|
|
|
| namespace blink {
|
|
|
| -String toHexString(const void* p) {
|
| - return String::format("0x%" PRIx64,
|
| - static_cast<uint64_t>(reinterpret_cast<uintptr_t>(p)));
|
| -}
|
| -
|
| -void setCallStack(TracedValue* value) {
|
| - static const unsigned char* traceCategoryEnabled = 0;
|
| - WTF_ANNOTATE_BENIGN_RACE(&traceCategoryEnabled, "trace_event category");
|
| - if (!traceCategoryEnabled)
|
| - traceCategoryEnabled = TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(
|
| - TRACE_DISABLED_BY_DEFAULT("devtools.timeline.stack"));
|
| - if (!*traceCategoryEnabled)
|
| - return;
|
| - // The CPU profiler stack trace does not include call site line numbers.
|
| - // So we collect the top frame with SourceLocation::capture() to get the
|
| - // binding call site info.
|
| - SourceLocation::capture()->toTracedValue(value, "stackTrace");
|
| - v8::Isolate::GetCurrent()->GetCpuProfiler()->CollectSample();
|
| -}
|
| -
|
| -namespace {
|
| -
|
| -void setNodeInfo(TracedValue* value,
|
| - Node* node,
|
| - const char* idFieldName,
|
| - const char* nameFieldName = nullptr) {
|
| - value->setInteger(idFieldName, DOMNodeIds::idForNode(node));
|
| - if (nameFieldName)
|
| - value->setString(nameFieldName, node->debugName());
|
| -}
|
| -
|
| -const char* pseudoTypeToString(CSSSelector::PseudoType pseudoType) {
|
| - switch (pseudoType) {
|
| -#define DEFINE_STRING_MAPPING(pseudoType) \
|
| - case CSSSelector::pseudoType: \
|
| - return #pseudoType;
|
| - DEFINE_STRING_MAPPING(PseudoUnknown)
|
| - DEFINE_STRING_MAPPING(PseudoEmpty)
|
| - DEFINE_STRING_MAPPING(PseudoFirstChild)
|
| - DEFINE_STRING_MAPPING(PseudoFirstOfType)
|
| - DEFINE_STRING_MAPPING(PseudoLastChild)
|
| - DEFINE_STRING_MAPPING(PseudoLastOfType)
|
| - DEFINE_STRING_MAPPING(PseudoOnlyChild)
|
| - DEFINE_STRING_MAPPING(PseudoOnlyOfType)
|
| - DEFINE_STRING_MAPPING(PseudoFirstLine)
|
| - DEFINE_STRING_MAPPING(PseudoFirstLetter)
|
| - DEFINE_STRING_MAPPING(PseudoNthChild)
|
| - DEFINE_STRING_MAPPING(PseudoNthOfType)
|
| - DEFINE_STRING_MAPPING(PseudoNthLastChild)
|
| - DEFINE_STRING_MAPPING(PseudoNthLastOfType)
|
| - DEFINE_STRING_MAPPING(PseudoLink)
|
| - DEFINE_STRING_MAPPING(PseudoVisited)
|
| - DEFINE_STRING_MAPPING(PseudoAny)
|
| - DEFINE_STRING_MAPPING(PseudoAnyLink)
|
| - DEFINE_STRING_MAPPING(PseudoAutofill)
|
| - DEFINE_STRING_MAPPING(PseudoHover)
|
| - DEFINE_STRING_MAPPING(PseudoDrag)
|
| - DEFINE_STRING_MAPPING(PseudoFocus)
|
| - DEFINE_STRING_MAPPING(PseudoActive)
|
| - DEFINE_STRING_MAPPING(PseudoChecked)
|
| - DEFINE_STRING_MAPPING(PseudoEnabled)
|
| - DEFINE_STRING_MAPPING(PseudoFullPageMedia)
|
| - DEFINE_STRING_MAPPING(PseudoDefault)
|
| - DEFINE_STRING_MAPPING(PseudoDisabled)
|
| - DEFINE_STRING_MAPPING(PseudoOptional)
|
| - DEFINE_STRING_MAPPING(PseudoPlaceholderShown)
|
| - DEFINE_STRING_MAPPING(PseudoRequired)
|
| - DEFINE_STRING_MAPPING(PseudoReadOnly)
|
| - DEFINE_STRING_MAPPING(PseudoReadWrite)
|
| - DEFINE_STRING_MAPPING(PseudoValid)
|
| - DEFINE_STRING_MAPPING(PseudoInvalid)
|
| - DEFINE_STRING_MAPPING(PseudoIndeterminate)
|
| - DEFINE_STRING_MAPPING(PseudoTarget)
|
| - DEFINE_STRING_MAPPING(PseudoBefore)
|
| - DEFINE_STRING_MAPPING(PseudoAfter)
|
| - DEFINE_STRING_MAPPING(PseudoBackdrop)
|
| - DEFINE_STRING_MAPPING(PseudoLang)
|
| - DEFINE_STRING_MAPPING(PseudoNot)
|
| - DEFINE_STRING_MAPPING(PseudoPlaceholder)
|
| - DEFINE_STRING_MAPPING(PseudoResizer)
|
| - DEFINE_STRING_MAPPING(PseudoRoot)
|
| - DEFINE_STRING_MAPPING(PseudoScope)
|
| - DEFINE_STRING_MAPPING(PseudoScrollbar)
|
| - DEFINE_STRING_MAPPING(PseudoScrollbarButton)
|
| - DEFINE_STRING_MAPPING(PseudoScrollbarCorner)
|
| - DEFINE_STRING_MAPPING(PseudoScrollbarThumb)
|
| - DEFINE_STRING_MAPPING(PseudoScrollbarTrack)
|
| - DEFINE_STRING_MAPPING(PseudoScrollbarTrackPiece)
|
| - DEFINE_STRING_MAPPING(PseudoWindowInactive)
|
| - DEFINE_STRING_MAPPING(PseudoCornerPresent)
|
| - DEFINE_STRING_MAPPING(PseudoDecrement)
|
| - DEFINE_STRING_MAPPING(PseudoIncrement)
|
| - DEFINE_STRING_MAPPING(PseudoHorizontal)
|
| - DEFINE_STRING_MAPPING(PseudoVertical)
|
| - DEFINE_STRING_MAPPING(PseudoStart)
|
| - DEFINE_STRING_MAPPING(PseudoEnd)
|
| - DEFINE_STRING_MAPPING(PseudoDoubleButton)
|
| - DEFINE_STRING_MAPPING(PseudoSingleButton)
|
| - DEFINE_STRING_MAPPING(PseudoNoButton)
|
| - DEFINE_STRING_MAPPING(PseudoSelection)
|
| - DEFINE_STRING_MAPPING(PseudoLeftPage)
|
| - DEFINE_STRING_MAPPING(PseudoRightPage)
|
| - DEFINE_STRING_MAPPING(PseudoFirstPage)
|
| - DEFINE_STRING_MAPPING(PseudoFullScreen)
|
| - DEFINE_STRING_MAPPING(PseudoFullScreenAncestor)
|
| - DEFINE_STRING_MAPPING(PseudoInRange)
|
| - DEFINE_STRING_MAPPING(PseudoOutOfRange)
|
| - DEFINE_STRING_MAPPING(PseudoWebKitCustomElement)
|
| - DEFINE_STRING_MAPPING(PseudoBlinkInternalElement)
|
| - DEFINE_STRING_MAPPING(PseudoCue)
|
| - DEFINE_STRING_MAPPING(PseudoFutureCue)
|
| - DEFINE_STRING_MAPPING(PseudoPastCue)
|
| - DEFINE_STRING_MAPPING(PseudoUnresolved)
|
| - DEFINE_STRING_MAPPING(PseudoDefined)
|
| - DEFINE_STRING_MAPPING(PseudoContent)
|
| - DEFINE_STRING_MAPPING(PseudoHost)
|
| - DEFINE_STRING_MAPPING(PseudoHostContext)
|
| - DEFINE_STRING_MAPPING(PseudoShadow)
|
| - DEFINE_STRING_MAPPING(PseudoSlotted)
|
| - DEFINE_STRING_MAPPING(PseudoSpatialNavigationFocus)
|
| - DEFINE_STRING_MAPPING(PseudoListBox)
|
| - DEFINE_STRING_MAPPING(PseudoHostHasAppearance)
|
| -#undef DEFINE_STRING_MAPPING
|
| - }
|
| -
|
| - ASSERT_NOT_REACHED();
|
| - return "";
|
| -}
|
| -
|
| -String urlForFrame(LocalFrame* frame) {
|
| - KURL url = frame->document()->url();
|
| - url.removeFragmentIdentifier();
|
| - return url.getString();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -namespace InspectorScheduleStyleInvalidationTrackingEvent {
|
| -std::unique_ptr<TracedValue> fillCommonPart(
|
| - ContainerNode& node,
|
| - const InvalidationSet& invalidationSet,
|
| - const char* invalidatedSelector) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("frame", toHexString(node.document().frame()));
|
| - setNodeInfo(value.get(), &node, "nodeId", "nodeName");
|
| - value->setString("invalidationSet",
|
| - descendantInvalidationSetToIdString(invalidationSet));
|
| - value->setString("invalidatedSelectorId", invalidatedSelector);
|
| - SourceLocation::capture()->toTracedValue(value.get(), "stackTrace");
|
| - return value;
|
| -}
|
| -} // namespace InspectorScheduleStyleInvalidationTrackingEvent
|
| -
|
| -const char InspectorScheduleStyleInvalidationTrackingEvent::Attribute[] =
|
| - "attribute";
|
| -const char InspectorScheduleStyleInvalidationTrackingEvent::Class[] = "class";
|
| -const char InspectorScheduleStyleInvalidationTrackingEvent::Id[] = "id";
|
| -const char InspectorScheduleStyleInvalidationTrackingEvent::Pseudo[] = "pseudo";
|
| -const char InspectorScheduleStyleInvalidationTrackingEvent::RuleSet[] =
|
| - "ruleset";
|
| -
|
| -const char* resourcePriorityString(ResourceLoadPriority priority) {
|
| - const char* priorityString = 0;
|
| - switch (priority) {
|
| - case ResourceLoadPriorityVeryLow:
|
| - priorityString = "VeryLow";
|
| - break;
|
| - case ResourceLoadPriorityLow:
|
| - priorityString = "Low";
|
| - break;
|
| - case ResourceLoadPriorityMedium:
|
| - priorityString = "Medium";
|
| - break;
|
| - case ResourceLoadPriorityHigh:
|
| - priorityString = "High";
|
| - break;
|
| - case ResourceLoadPriorityVeryHigh:
|
| - priorityString = "VeryHigh";
|
| - break;
|
| - case ResourceLoadPriorityUnresolved:
|
| - break;
|
| - }
|
| - return priorityString;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue>
|
| -InspectorScheduleStyleInvalidationTrackingEvent::idChange(
|
| - Element& element,
|
| - const InvalidationSet& invalidationSet,
|
| - const AtomicString& id) {
|
| - std::unique_ptr<TracedValue> value =
|
| - fillCommonPart(element, invalidationSet, Id);
|
| - value->setString("changedId", id);
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue>
|
| -InspectorScheduleStyleInvalidationTrackingEvent::classChange(
|
| - Element& element,
|
| - const InvalidationSet& invalidationSet,
|
| - const AtomicString& className) {
|
| - std::unique_ptr<TracedValue> value =
|
| - fillCommonPart(element, invalidationSet, Class);
|
| - value->setString("changedClass", className);
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue>
|
| -InspectorScheduleStyleInvalidationTrackingEvent::attributeChange(
|
| - Element& element,
|
| - const InvalidationSet& invalidationSet,
|
| - const QualifiedName& attributeName) {
|
| - std::unique_ptr<TracedValue> value =
|
| - fillCommonPart(element, invalidationSet, Attribute);
|
| - value->setString("changedAttribute", attributeName.toString());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue>
|
| -InspectorScheduleStyleInvalidationTrackingEvent::pseudoChange(
|
| - Element& element,
|
| - const InvalidationSet& invalidationSet,
|
| - CSSSelector::PseudoType pseudoType) {
|
| - std::unique_ptr<TracedValue> value =
|
| - fillCommonPart(element, invalidationSet, Attribute);
|
| - value->setString("changedPseudo", pseudoTypeToString(pseudoType));
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue>
|
| -InspectorScheduleStyleInvalidationTrackingEvent::ruleSetInvalidation(
|
| - ContainerNode& rootNode,
|
| - const InvalidationSet& invalidationSet) {
|
| - std::unique_ptr<TracedValue> value =
|
| - fillCommonPart(rootNode, invalidationSet, RuleSet);
|
| - return value;
|
| -}
|
| -
|
| -String descendantInvalidationSetToIdString(const InvalidationSet& set) {
|
| - return toHexString(&set);
|
| -}
|
| -
|
| -const char InspectorStyleInvalidatorInvalidateEvent::
|
| - ElementHasPendingInvalidationList[] =
|
| - "Element has pending invalidation list";
|
| -const char InspectorStyleInvalidatorInvalidateEvent::InvalidateCustomPseudo[] =
|
| - "Invalidate custom pseudo element";
|
| -const char InspectorStyleInvalidatorInvalidateEvent::
|
| - InvalidationSetMatchedAttribute[] = "Invalidation set matched attribute";
|
| -const char
|
| - InspectorStyleInvalidatorInvalidateEvent::InvalidationSetMatchedClass[] =
|
| - "Invalidation set matched class";
|
| -const char
|
| - InspectorStyleInvalidatorInvalidateEvent::InvalidationSetMatchedId[] =
|
| - "Invalidation set matched id";
|
| -const char
|
| - InspectorStyleInvalidatorInvalidateEvent::InvalidationSetMatchedTagName[] =
|
| - "Invalidation set matched tagName";
|
| -const char
|
| - InspectorStyleInvalidatorInvalidateEvent::PreventStyleSharingForParent[] =
|
| - "Prevent style sharing for parent";
|
| -
|
| -namespace InspectorStyleInvalidatorInvalidateEvent {
|
| -std::unique_ptr<TracedValue> fillCommonPart(ContainerNode& node,
|
| - const char* reason) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("frame", toHexString(node.document().frame()));
|
| - setNodeInfo(value.get(), &node, "nodeId", "nodeName");
|
| - value->setString("reason", reason);
|
| - return value;
|
| -}
|
| -} // namespace InspectorStyleInvalidatorInvalidateEvent
|
| -
|
| -std::unique_ptr<TracedValue> InspectorStyleInvalidatorInvalidateEvent::data(
|
| - Element& element,
|
| - const char* reason) {
|
| - return fillCommonPart(element, reason);
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue>
|
| -InspectorStyleInvalidatorInvalidateEvent::selectorPart(
|
| - Element& element,
|
| - const char* reason,
|
| - const InvalidationSet& invalidationSet,
|
| - const String& selectorPart) {
|
| - std::unique_ptr<TracedValue> value = fillCommonPart(element, reason);
|
| - value->beginArray("invalidationList");
|
| - invalidationSet.toTracedValue(value.get());
|
| - value->endArray();
|
| - value->setString("selectorPart", selectorPart);
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue>
|
| -InspectorStyleInvalidatorInvalidateEvent::invalidationList(
|
| - ContainerNode& node,
|
| - const Vector<RefPtr<InvalidationSet>>& invalidationList) {
|
| - std::unique_ptr<TracedValue> value =
|
| - fillCommonPart(node, ElementHasPendingInvalidationList);
|
| - value->beginArray("invalidationList");
|
| - for (const auto& invalidationSet : invalidationList)
|
| - invalidationSet->toTracedValue(value.get());
|
| - value->endArray();
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue>
|
| -InspectorStyleRecalcInvalidationTrackingEvent::data(
|
| - Node* node,
|
| - const StyleChangeReasonForTracing& reason) {
|
| - ASSERT(node);
|
| -
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("frame", toHexString(node->document().frame()));
|
| - setNodeInfo(value.get(), node, "nodeId", "nodeName");
|
| - value->setString("reason", reason.reasonString());
|
| - value->setString("extraData", reason.getExtraData());
|
| - SourceLocation::capture()->toTracedValue(value.get(), "stackTrace");
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorLayoutEvent::beginData(
|
| - FrameView* frameView) {
|
| - bool isPartial;
|
| - unsigned needsLayoutObjects;
|
| - unsigned totalObjects;
|
| - LocalFrame& frame = frameView->frame();
|
| - frame.view()->countObjectsNeedingLayout(needsLayoutObjects, totalObjects,
|
| - isPartial);
|
| -
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setInteger("dirtyObjects", needsLayoutObjects);
|
| - value->setInteger("totalObjects", totalObjects);
|
| - value->setBoolean("partialLayout", isPartial);
|
| - value->setString("frame", toHexString(&frame));
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -static void createQuad(TracedValue* value,
|
| - const char* name,
|
| - const FloatQuad& quad) {
|
| - value->beginArray(name);
|
| - value->pushDouble(quad.p1().x());
|
| - value->pushDouble(quad.p1().y());
|
| - value->pushDouble(quad.p2().x());
|
| - value->pushDouble(quad.p2().y());
|
| - value->pushDouble(quad.p3().x());
|
| - value->pushDouble(quad.p3().y());
|
| - value->pushDouble(quad.p4().x());
|
| - value->pushDouble(quad.p4().y());
|
| - value->endArray();
|
| -}
|
| -
|
| -static void setGeneratingNodeInfo(TracedValue* value,
|
| - const LayoutObject* layoutObject,
|
| - const char* idFieldName,
|
| - const char* nameFieldName = nullptr) {
|
| - Node* node = nullptr;
|
| - for (; layoutObject && !node; layoutObject = layoutObject->parent())
|
| - node = layoutObject->generatingNode();
|
| - if (!node)
|
| - return;
|
| -
|
| - setNodeInfo(value, node, idFieldName, nameFieldName);
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorLayoutEvent::endData(
|
| - LayoutObject* rootForThisLayout) {
|
| - Vector<FloatQuad> quads;
|
| - rootForThisLayout->absoluteQuads(quads);
|
| -
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - if (quads.size() >= 1) {
|
| - createQuad(value.get(), "root", quads[0]);
|
| - setGeneratingNodeInfo(value.get(), rootForThisLayout, "rootNode");
|
| - } else {
|
| - ASSERT_NOT_REACHED();
|
| - }
|
| - return value;
|
| -}
|
| -
|
| -namespace LayoutInvalidationReason {
|
| -const char Unknown[] = "Unknown";
|
| -const char SizeChanged[] = "Size changed";
|
| -const char AncestorMoved[] = "Ancestor moved";
|
| -const char StyleChange[] = "Style changed";
|
| -const char DomChanged[] = "DOM changed";
|
| -const char TextChanged[] = "Text changed";
|
| -const char PrintingChanged[] = "Printing changed";
|
| -const char AttributeChanged[] = "Attribute changed";
|
| -const char ColumnsChanged[] = "Attribute changed";
|
| -const char ChildAnonymousBlockChanged[] = "Child anonymous block changed";
|
| -const char AnonymousBlockChange[] = "Anonymous block change";
|
| -const char Fullscreen[] = "Fullscreen change";
|
| -const char ChildChanged[] = "Child changed";
|
| -const char ListValueChange[] = "List value change";
|
| -const char ImageChanged[] = "Image changed";
|
| -const char LineBoxesChanged[] = "Line boxes changed";
|
| -const char SliderValueChanged[] = "Slider value changed";
|
| -const char AncestorMarginCollapsing[] = "Ancestor margin collapsing";
|
| -const char FieldsetChanged[] = "Fieldset changed";
|
| -const char TextAutosizing[] = "Text autosizing (font boosting)";
|
| -const char SvgResourceInvalidated[] = "SVG resource invalidated";
|
| -const char FloatDescendantChanged[] = "Floating descendant changed";
|
| -const char CountersChanged[] = "Counters changed";
|
| -const char GridChanged[] = "Grid changed";
|
| -const char MenuOptionsChanged[] = "Menu options changed";
|
| -const char RemovedFromLayout[] = "Removed from layout";
|
| -const char AddedToLayout[] = "Added to layout";
|
| -const char TableChanged[] = "Table changed";
|
| -const char PaddingChanged[] = "Padding changed";
|
| -const char TextControlChanged[] = "Text control changed";
|
| -const char SvgChanged[] = "SVG changed";
|
| -const char ScrollbarChanged[] = "Scrollbar changed";
|
| -} // namespace LayoutInvalidationReason
|
| -
|
| -std::unique_ptr<TracedValue> InspectorLayoutInvalidationTrackingEvent::data(
|
| - const LayoutObject* layoutObject,
|
| - LayoutInvalidationReasonForTracing reason) {
|
| - ASSERT(layoutObject);
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("frame", toHexString(layoutObject->frame()));
|
| - setGeneratingNodeInfo(value.get(), layoutObject, "nodeId", "nodeName");
|
| - value->setString("reason", reason);
|
| - SourceLocation::capture()->toTracedValue(value.get(), "stackTrace");
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorPaintInvalidationTrackingEvent::data(
|
| - const LayoutObject* layoutObject,
|
| - const LayoutObject& paintContainer) {
|
| - ASSERT(layoutObject);
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("frame", toHexString(layoutObject->frame()));
|
| - setGeneratingNodeInfo(value.get(), &paintContainer, "paintId");
|
| - setGeneratingNodeInfo(value.get(), layoutObject, "nodeId", "nodeName");
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorScrollInvalidationTrackingEvent::data(
|
| - const LayoutObject& layoutObject) {
|
| - static const char ScrollInvalidationReason[] =
|
| - "Scroll with viewport-constrained element";
|
| -
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("frame", toHexString(layoutObject.frame()));
|
| - value->setString("reason", ScrollInvalidationReason);
|
| - setGeneratingNodeInfo(value.get(), &layoutObject, "nodeId", "nodeName");
|
| - SourceLocation::capture()->toTracedValue(value.get(), "stackTrace");
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorChangeResourcePriorityEvent::data(
|
| - unsigned long identifier,
|
| - const ResourceLoadPriority& loadPriority) {
|
| - String requestId = IdentifiersFactory::requestId(identifier);
|
| -
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("requestId", requestId);
|
| - value->setString("priority", resourcePriorityString(loadPriority));
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorSendRequestEvent::data(
|
| - unsigned long identifier,
|
| - LocalFrame* frame,
|
| - const ResourceRequest& request) {
|
| - String requestId = IdentifiersFactory::requestId(identifier);
|
| -
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("requestId", requestId);
|
| - value->setString("frame", toHexString(frame));
|
| - value->setString("url", request.url().getString());
|
| - value->setString("requestMethod", request.httpMethod());
|
| - const char* priority = resourcePriorityString(request.priority());
|
| - if (priority)
|
| - value->setString("priority", priority);
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| namespace {
|
| void recordTiming(const ResourceLoadTiming& timing, TracedValue* value) {
|
| value->setDouble("requestTime", timing.requestTime());
|
| @@ -557,13 +42,9 @@ void recordTiming(const ResourceLoadTiming& timing, TracedValue* value) {
|
|
|
| std::unique_ptr<TracedValue> InspectorReceiveResponseEvent::data(
|
| unsigned long identifier,
|
| - LocalFrame* frame,
|
| const ResourceResponse& response) {
|
| - String requestId = IdentifiersFactory::requestId(identifier);
|
| -
|
| std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("requestId", requestId);
|
| - value->setString("frame", toHexString(frame));
|
| + value->setString("requestId", String::number(identifier));
|
| value->setInteger("statusCode", response.httpStatusCode());
|
| value->setString("mimeType", response.mimeType().getString().isolatedCopy());
|
| value->setDouble("encodedDataLength", response.encodedDataLength());
|
| @@ -581,13 +62,9 @@ std::unique_ptr<TracedValue> InspectorReceiveResponseEvent::data(
|
|
|
| std::unique_ptr<TracedValue> InspectorReceiveDataEvent::data(
|
| unsigned long identifier,
|
| - LocalFrame* frame,
|
| int encodedDataLength) {
|
| - String requestId = IdentifiersFactory::requestId(identifier);
|
| -
|
| std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("requestId", requestId);
|
| - value->setString("frame", toHexString(frame));
|
| + value->setString("requestId", String::number(identifier));
|
| value->setInteger("encodedDataLength", encodedDataLength);
|
| return value;
|
| }
|
| @@ -597,10 +74,8 @@ std::unique_ptr<TracedValue> InspectorResourceFinishEvent::data(
|
| double finishTime,
|
| bool didFail,
|
| int64_t encodedDataLength) {
|
| - String requestId = IdentifiersFactory::requestId(identifier);
|
| -
|
| std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("requestId", requestId);
|
| + value->setString("requestId", String::number(identifier));
|
| value->setBoolean("didFail", didFail);
|
| value->setDouble("encodedDataLength", encodedDataLength);
|
| if (finishTime)
|
| @@ -608,473 +83,4 @@ std::unique_ptr<TracedValue> InspectorResourceFinishEvent::data(
|
| return value;
|
| }
|
|
|
| -static LocalFrame* frameForExecutionContext(ExecutionContext* context) {
|
| - LocalFrame* frame = nullptr;
|
| - if (context->isDocument())
|
| - frame = toDocument(context)->frame();
|
| - return frame;
|
| -}
|
| -
|
| -static std::unique_ptr<TracedValue> genericTimerData(ExecutionContext* context,
|
| - int timerId) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setInteger("timerId", timerId);
|
| - if (LocalFrame* frame = frameForExecutionContext(context))
|
| - value->setString("frame", toHexString(frame));
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorTimerInstallEvent::data(
|
| - ExecutionContext* context,
|
| - int timerId,
|
| - int timeout,
|
| - bool singleShot) {
|
| - std::unique_ptr<TracedValue> value = genericTimerData(context, timerId);
|
| - value->setInteger("timeout", timeout);
|
| - value->setBoolean("singleShot", singleShot);
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorTimerRemoveEvent::data(
|
| - ExecutionContext* context,
|
| - int timerId) {
|
| - std::unique_ptr<TracedValue> value = genericTimerData(context, timerId);
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorTimerFireEvent::data(
|
| - ExecutionContext* context,
|
| - int timerId) {
|
| - return genericTimerData(context, timerId);
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorAnimationFrameEvent::data(
|
| - ExecutionContext* context,
|
| - int callbackId) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setInteger("id", callbackId);
|
| - if (context->isDocument())
|
| - value->setString("frame", toHexString(toDocument(context)->frame()));
|
| - else if (context->isWorkerGlobalScope())
|
| - value->setString("worker", toHexString(toWorkerGlobalScope(context)));
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> genericIdleCallbackEvent(ExecutionContext* context,
|
| - int id) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setInteger("id", id);
|
| - if (LocalFrame* frame = frameForExecutionContext(context))
|
| - value->setString("frame", toHexString(frame));
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorIdleCallbackRequestEvent::data(
|
| - ExecutionContext* context,
|
| - int id,
|
| - double timeout) {
|
| - std::unique_ptr<TracedValue> value = genericIdleCallbackEvent(context, id);
|
| - value->setInteger("timeout", timeout);
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorIdleCallbackCancelEvent::data(
|
| - ExecutionContext* context,
|
| - int id) {
|
| - return genericIdleCallbackEvent(context, id);
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorIdleCallbackFireEvent::data(
|
| - ExecutionContext* context,
|
| - int id,
|
| - double allottedMilliseconds,
|
| - bool timedOut) {
|
| - std::unique_ptr<TracedValue> value = genericIdleCallbackEvent(context, id);
|
| - value->setDouble("allottedMilliseconds", allottedMilliseconds);
|
| - value->setBoolean("timedOut", timedOut);
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorParseHtmlEvent::beginData(
|
| - Document* document,
|
| - unsigned startLine) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setInteger("startLine", startLine);
|
| - value->setString("frame", toHexString(document->frame()));
|
| - value->setString("url", document->url().getString());
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorParseHtmlEvent::endData(
|
| - unsigned endLine) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setInteger("endLine", endLine);
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorParseAuthorStyleSheetEvent::data(
|
| - const CSSStyleSheetResource* cachedStyleSheet) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("styleSheetUrl", cachedStyleSheet->url().getString());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorXhrReadyStateChangeEvent::data(
|
| - ExecutionContext* context,
|
| - XMLHttpRequest* request) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("url", request->url().getString());
|
| - value->setInteger("readyState", request->readyState());
|
| - if (LocalFrame* frame = frameForExecutionContext(context))
|
| - value->setString("frame", toHexString(frame));
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorXhrLoadEvent::data(
|
| - ExecutionContext* context,
|
| - XMLHttpRequest* request) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("url", request->url().getString());
|
| - if (LocalFrame* frame = frameForExecutionContext(context))
|
| - value->setString("frame", toHexString(frame));
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -static void localToPageQuad(const LayoutObject& layoutObject,
|
| - const LayoutRect& rect,
|
| - FloatQuad* quad) {
|
| - LocalFrame* frame = layoutObject.frame();
|
| - FrameView* view = frame->view();
|
| - FloatQuad absolute =
|
| - layoutObject.localToAbsoluteQuad(FloatQuad(FloatRect(rect)));
|
| - quad->setP1(view->contentsToRootFrame(roundedIntPoint(absolute.p1())));
|
| - quad->setP2(view->contentsToRootFrame(roundedIntPoint(absolute.p2())));
|
| - quad->setP3(view->contentsToRootFrame(roundedIntPoint(absolute.p3())));
|
| - quad->setP4(view->contentsToRootFrame(roundedIntPoint(absolute.p4())));
|
| -}
|
| -
|
| -const char InspectorLayerInvalidationTrackingEvent::
|
| - SquashingLayerGeometryWasUpdated[] = "Squashing layer geometry was updated";
|
| -const char InspectorLayerInvalidationTrackingEvent::AddedToSquashingLayer[] =
|
| - "The layer may have been added to an already-existing squashing layer";
|
| -const char
|
| - InspectorLayerInvalidationTrackingEvent::RemovedFromSquashingLayer[] =
|
| - "Removed the layer from a squashing layer";
|
| -const char InspectorLayerInvalidationTrackingEvent::ReflectionLayerChanged[] =
|
| - "Reflection layer change";
|
| -const char InspectorLayerInvalidationTrackingEvent::NewCompositedLayer[] =
|
| - "Assigned a new composited layer";
|
| -
|
| -std::unique_ptr<TracedValue> InspectorLayerInvalidationTrackingEvent::data(
|
| - const PaintLayer* layer,
|
| - const char* reason) {
|
| - const LayoutObject& paintInvalidationContainer =
|
| - layer->layoutObject().containerForPaintInvalidation();
|
| -
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("frame", toHexString(paintInvalidationContainer.frame()));
|
| - setGeneratingNodeInfo(value.get(), &paintInvalidationContainer, "paintId");
|
| - value->setString("reason", reason);
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorPaintEvent::data(
|
| - LayoutObject* layoutObject,
|
| - const LayoutRect& clipRect,
|
| - const GraphicsLayer* graphicsLayer) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("frame", toHexString(layoutObject->frame()));
|
| - FloatQuad quad;
|
| - localToPageQuad(*layoutObject, clipRect, &quad);
|
| - createQuad(value.get(), "clip", quad);
|
| - setGeneratingNodeInfo(value.get(), layoutObject, "nodeId");
|
| - int graphicsLayerId =
|
| - graphicsLayer ? graphicsLayer->platformLayer()->id() : 0;
|
| - value->setInteger("layerId", graphicsLayerId);
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> frameEventData(LocalFrame* frame) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - bool isMainFrame = frame && frame->isMainFrame();
|
| - value->setBoolean("isMainFrame", isMainFrame);
|
| - value->setString("page", toHexString(frame->localFrameRoot()));
|
| - return value;
|
| -}
|
| -
|
| -void fillCommonFrameData(TracedValue* frameData, LocalFrame* frame) {
|
| - frameData->setString("frame", toHexString(frame));
|
| - frameData->setString("url", urlForFrame(frame));
|
| - frameData->setString("name", frame->tree().name());
|
| -
|
| - FrameOwner* owner = frame->owner();
|
| - if (owner && owner->isLocal()) {
|
| - frameData->setInteger(
|
| - "nodeId", DOMNodeIds::idForNode(toHTMLFrameOwnerElement(owner)));
|
| - }
|
| - Frame* parent = frame->tree().parent();
|
| - if (parent && parent->isLocalFrame())
|
| - frameData->setString("parent", toHexString(parent));
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorCommitLoadEvent::data(LocalFrame* frame) {
|
| - std::unique_ptr<TracedValue> frameData = frameEventData(frame);
|
| - fillCommonFrameData(frameData.get(), frame);
|
| - return frameData;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorMarkLoadEvent::data(LocalFrame* frame) {
|
| - std::unique_ptr<TracedValue> frameData = frameEventData(frame);
|
| - frameData->setString("frame", toHexString(frame));
|
| - return frameData;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorScrollLayerEvent::data(
|
| - LayoutObject* layoutObject) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("frame", toHexString(layoutObject->frame()));
|
| - setGeneratingNodeInfo(value.get(), layoutObject, "nodeId");
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorUpdateLayerTreeEvent::data(
|
| - LocalFrame* frame) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("frame", toHexString(frame));
|
| - return value;
|
| -}
|
| -
|
| -namespace {
|
| -std::unique_ptr<TracedValue> fillLocation(const String& url,
|
| - const TextPosition& textPosition) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("url", url);
|
| - value->setInteger("lineNumber", textPosition.m_line.oneBasedInt());
|
| - value->setInteger("columnNumber", textPosition.m_column.oneBasedInt());
|
| - return value;
|
| -}
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorEvaluateScriptEvent::data(
|
| - LocalFrame* frame,
|
| - const String& url,
|
| - const TextPosition& textPosition) {
|
| - std::unique_ptr<TracedValue> value = fillLocation(url, textPosition);
|
| - value->setString("frame", toHexString(frame));
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorParseScriptEvent::data(
|
| - unsigned long identifier,
|
| - const String& url) {
|
| - String requestId = IdentifiersFactory::requestId(identifier);
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("requestId", requestId);
|
| - value->setString("url", url);
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorCompileScriptEvent::data(
|
| - const String& url,
|
| - const TextPosition& textPosition) {
|
| - return fillLocation(url, textPosition);
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorFunctionCallEvent::data(
|
| - ExecutionContext* context,
|
| - const v8::Local<v8::Function>& function) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - if (LocalFrame* frame = frameForExecutionContext(context))
|
| - value->setString("frame", toHexString(frame));
|
| -
|
| - if (function.IsEmpty())
|
| - return value;
|
| -
|
| - v8::Local<v8::Function> originalFunction = getBoundFunction(function);
|
| - v8::Local<v8::Value> functionName = originalFunction->GetDebugName();
|
| - if (!functionName.IsEmpty() && functionName->IsString())
|
| - value->setString("functionName",
|
| - toCoreString(functionName.As<v8::String>()));
|
| - std::unique_ptr<SourceLocation> location =
|
| - SourceLocation::fromFunction(originalFunction);
|
| - value->setString("scriptId", String::number(location->scriptId()));
|
| - value->setString("url", location->url());
|
| - value->setInteger("lineNumber", location->lineNumber());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorPaintImageEvent::data(
|
| - const LayoutImage& layoutImage) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - setGeneratingNodeInfo(value.get(), &layoutImage, "nodeId");
|
| - if (const ImageResourceContent* resource = layoutImage.cachedImage())
|
| - value->setString("url", resource->url().getString());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorPaintImageEvent::data(
|
| - const LayoutObject& owningLayoutObject,
|
| - const StyleImage& styleImage) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - setGeneratingNodeInfo(value.get(), &owningLayoutObject, "nodeId");
|
| - if (const ImageResourceContent* resource = styleImage.cachedImage())
|
| - value->setString("url", resource->url().getString());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorPaintImageEvent::data(
|
| - const LayoutObject* owningLayoutObject,
|
| - const ImageResourceContent& imageResource) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - setGeneratingNodeInfo(value.get(), owningLayoutObject, "nodeId");
|
| - value->setString("url", imageResource.url().getString());
|
| - return value;
|
| -}
|
| -
|
| -static size_t usedHeapSize() {
|
| - v8::HeapStatistics heapStatistics;
|
| - v8::Isolate::GetCurrent()->GetHeapStatistics(&heapStatistics);
|
| - return heapStatistics.used_heap_size();
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorUpdateCountersEvent::data() {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - if (isMainThread()) {
|
| - value->setInteger("documents", InstanceCounters::counterValue(
|
| - InstanceCounters::DocumentCounter));
|
| - value->setInteger(
|
| - "nodes", InstanceCounters::counterValue(InstanceCounters::NodeCounter));
|
| - value->setInteger("jsEventListeners",
|
| - InstanceCounters::counterValue(
|
| - InstanceCounters::JSEventListenerCounter));
|
| - }
|
| - value->setDouble("jsHeapSizeUsed", static_cast<double>(usedHeapSize()));
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorInvalidateLayoutEvent::data(
|
| - LocalFrame* frame) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("frame", toHexString(frame));
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorRecalculateStylesEvent::data(
|
| - LocalFrame* frame) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("frame", toHexString(frame));
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorEventDispatchEvent::data(
|
| - const Event& event) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("type", event.type());
|
| - setCallStack(value.get());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorTimeStampEvent::data(
|
| - ExecutionContext* context,
|
| - const String& message) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("message", message);
|
| - if (LocalFrame* frame = frameForExecutionContext(context))
|
| - value->setString("frame", toHexString(frame));
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorTracingSessionIdForWorkerEvent::data(
|
| - const String& sessionId,
|
| - const String& workerId,
|
| - WorkerThread* workerThread) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("sessionId", sessionId);
|
| - value->setString("workerId", workerId);
|
| - value->setDouble("workerThreadId", workerThread->platformThreadId());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorTracingStartedInFrame::data(
|
| - const String& sessionId,
|
| - LocalFrame* frame) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("sessionId", sessionId);
|
| - value->setString("page", toHexString(frame->localFrameRoot()));
|
| - value->beginArray("frames");
|
| - for (Frame* f = frame; f; f = f->tree().traverseNext(frame)) {
|
| - if (!f->isLocalFrame())
|
| - continue;
|
| - value->beginDictionary();
|
| - fillCommonFrameData(value.get(), toLocalFrame(f));
|
| - value->endDictionary();
|
| - }
|
| - value->endArray();
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorSetLayerTreeId::data(
|
| - const String& sessionId,
|
| - int layerTreeId) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("sessionId", sessionId);
|
| - value->setInteger("layerTreeId", layerTreeId);
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorAnimationEvent::data(
|
| - const Animation& animation) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("id", String::number(animation.sequenceNumber()));
|
| - value->setString("state", animation.playState());
|
| - if (const AnimationEffectReadOnly* effect = animation.effect()) {
|
| - value->setString("name", animation.id());
|
| - if (effect->isKeyframeEffectReadOnly()) {
|
| - if (Element* target = toKeyframeEffectReadOnly(effect)->target())
|
| - setNodeInfo(value.get(), target, "nodeId", "nodeName");
|
| - }
|
| - }
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorAnimationStateEvent::data(
|
| - const Animation& animation) {
|
| - std::unique_ptr<TracedValue> value = TracedValue::create();
|
| - value->setString("state", animation.playState());
|
| - return value;
|
| -}
|
| -
|
| -std::unique_ptr<TracedValue> InspectorHitTestEvent::endData(
|
| - const HitTestRequest& request,
|
| - const HitTestLocation& location,
|
| - const HitTestResult& result) {
|
| - std::unique_ptr<TracedValue> value(TracedValue::create());
|
| - value->setInteger("x", location.roundedPoint().x());
|
| - value->setInteger("y", location.roundedPoint().y());
|
| - if (location.isRectBasedTest())
|
| - value->setBoolean("rect", true);
|
| - if (location.isRectilinear())
|
| - value->setBoolean("rectilinear", true);
|
| - if (request.touchEvent())
|
| - value->setBoolean("touch", true);
|
| - if (request.move())
|
| - value->setBoolean("move", true);
|
| - if (request.listBased())
|
| - value->setBoolean("listBased", true);
|
| - else if (Node* node = result.innerNode())
|
| - setNodeInfo(value.get(), node, "nodeId", "nodeName");
|
| - return value;
|
| -}
|
| -
|
| } // namespace blink
|
|
|