void InspectorTimelineAgent::addRecordToTimeline(RefPtr<InspectorObject>&& record, TimelineRecordType type) { ASSERT_ARG(record, record); record->setString("type", Inspector::Protocol::getEnumConstantValue(toProtocol(type))); auto recordObject = BindingTraits<Inspector::Protocol::Timeline::TimelineEvent>::runtimeCast(WTF::move(record)); sendEvent(WTF::move(recordObject)); }
void InspectorScriptProfilerAgent::addEvent(double startTime, double endTime, ProfilingReason reason) { ASSERT(endTime >= startTime); auto event = Inspector::Protocol::ScriptProfiler::Event::create() .setStartTime(startTime) .setEndTime(endTime) .setType(toProtocol(reason)) .release(); m_frontendDispatcher->trackingUpdate(WTFMove(event)); }
void InspectorTimelineAgent::addRecordToTimeline(PassRefPtr<InspectorObject> prpRecord, TimelineRecordType type) { prpRecord->setString("type", Inspector::TypeBuilder::getWebEnumConstantValue(toProtocol(type))); RefPtr<Inspector::TypeBuilder::Timeline::TimelineEvent> record = Inspector::TypeBuilder::Timeline::TimelineEvent::runtimeCast(prpRecord); if (m_recordStack.isEmpty()) sendEvent(record.release()); else { TimelineRecordEntry parent = m_recordStack.last(); parent.children->pushObject(record.release()); } }
void InspectorTimelineAgent::addRecordToTimeline(RefPtr<InspectorObject>&& record, TimelineRecordType type) { ASSERT_ARG(record, record); record->setString("type", Inspector::Protocol::getEnumConstantValue(toProtocol(type))); if (m_recordStack.isEmpty()) { auto recordObject = BindingTraits<Inspector::Protocol::Timeline::TimelineEvent>::runtimeCast(WTF::move(record)); sendEvent(WTF::move(recordObject)); } else { const TimelineRecordEntry& parent = m_recordStack.last(); // Nested paint records are an implementation detail and add no information not already contained in the parent. if (type == TimelineRecordType::Paint && parent.type == type) return; parent.children->pushObject(WTF::move(record)); } }