void InspectorTimelineAgent::appendRecord(RefPtr<InspectorObject>&& data, TimelineRecordType type, bool captureCallStack, Frame* frame) { Ref<InspectorObject> record = TimelineRecordFactory::createGenericRecord(timestamp(), captureCallStack ? m_maxCallStackDepth : 0); record->setObject("data", WTF::move(data)); setFrameIdentifier(&record.get(), frame); addRecordToTimeline(WTF::move(record), type); }
void InspectorTimelineAgent::didInstallTimer(int timerId, int timeout, bool singleShot) { pushGCEventRecords(); RefPtr<InspectorObject> record = TimelineRecordFactory::createGenericRecord(WTF::currentTimeMS()); record->setObject("data", TimelineRecordFactory::createTimerInstallData(timerId, timeout, singleShot)); addRecordToTimeline(record.release(), TimerInstallTimelineRecordType); }
void InspectorTimelineAgent::didMarkTimeline(const String& message) { pushGCEventRecords(); RefPtr<InspectorObject> record = TimelineRecordFactory::createGenericRecord(WTF::currentTimeMS()); record->setObject("data", TimelineRecordFactory::createMarkTimelineData(message)); addRecordToTimeline(record.release(), MarkTimelineRecordType); }
void InspectorTimelineAgent::didCompleteRecordEntry(const TimelineRecordEntry& entry) { entry.record->setObject(ASCIILiteral("data"), entry.data); entry.record->setArray(ASCIILiteral("children"), entry.children); entry.record->setDouble(ASCIILiteral("endTime"), timestamp()); addRecordToTimeline(entry.record.copyRef(), entry.type); }
void InspectorTimelineAgent::didRemoveTimer(int timerId) { pushGCEventRecords(); RefPtr<InspectorObject> record = TimelineRecordFactory::createGenericRecord(WTF::currentTimeMS()); record->setObject("data", TimelineRecordFactory::createGenericTimerData(timerId)); addRecordToTimeline(record.release(), TimerRemoveTimelineRecordType); }
void InspectorTimelineAgent::appendRecord(PassRefPtr<InspectorObject> data, const String& type, bool captureCallStack, Frame* frame) { pushGCEventRecords(); RefPtr<InspectorObject> record = TimelineRecordFactory::createGenericRecord(timestamp(), captureCallStack ? m_maxCallStackDepth : 0); record->setObject("data", data); setFrameIdentifier(record.get(), frame); addRecordToTimeline(record.release(), type); }
void InspectorTimelineAgent::appendRecord(PassRefPtr<InspectorObject> data, const String& type) { pushGCEventRecords(); RefPtr<InspectorObject> record = TimelineRecordFactory::createGenericRecord(WTF::currentTimeMS(), m_maxCallStackDepth); record->setObject("data", data); record->setString("type", type); addRecordToTimeline(record.release(), type); }
void InspectorTimelineAgent::didScheduleResourceRequest(const String& url) { pushGCEventRecords(); RefPtr<InspectorObject> record = TimelineRecordFactory::createGenericRecord(WTF::currentTimeMS()); record->setObject("data", TimelineRecordFactory::createScheduleResourceRequestData(url)); record->setNumber("type", ScheduleResourceRequestTimelineRecordType); addRecordToTimeline(record.release(), ScheduleResourceRequestTimelineRecordType); }
void InspectorTimelineAgent::appendRecord(PassRefPtr<InspectorObject> data, const String& type, bool captureCallStack, Frame* frame) { pushGCEventRecords(); RefPtr<InspectorObject> record = TimelineRecordFactory::createGenericRecord(timestamp(), captureCallStack ? m_maxCallStackDepth : 0); record->setObject("data", data); record->setString("type", type); String frameId; if (frame && m_pageAgent) frameId = m_pageAgent->frameId(frame); addRecordToTimeline(record.release(), type, frameId); }
void InspectorTimelineAgent::pushGCEventRecords() { if (!m_gcEvents.size()) return; GCEvents events = m_gcEvents; m_gcEvents.clear(); for (GCEvents::iterator i = events.begin(); i != events.end(); ++i) { RefPtr<InspectorObject> record = TimelineRecordFactory::createGenericRecord(timestampFromMicroseconds(i->startTime), m_maxCallStackDepth); record->setObject("data", TimelineRecordFactory::createGCEventData(i->collectedBytes)); record->setNumber("endTime", timestampFromMicroseconds(i->endTime)); addRecordToTimeline(record.release(), TimelineRecordType::GCEvent, String()); } }
void InspectorTimelineAgent::didCompleteCurrentRecord(TimelineRecordType type) { // An empty stack could merely mean that the timeline agent was turned on in the middle of // an event. Don't treat as an error. if (!m_recordStack.isEmpty()) { TimelineRecordEntry entry = m_recordStack.last(); m_recordStack.removeLast(); ASSERT(entry.type == type); entry.record.set("data", entry.data); entry.record.set("children", entry.children); entry.record.set("endTime", currentTimeInMilliseconds()); addRecordToTimeline(entry.record, type); } }
void InspectorTimelineAgent::pushGCEventRecords() { if (!m_gcEvents.size()) return; GCEvents events = m_gcEvents; m_gcEvents.clear(); for (GCEvents::iterator i = events.begin(); i != events.end(); ++i) { RefPtr<InspectorObject> record = TimelineRecordFactory::createGenericRecord(m_timeConverter.fromMonotonicallyIncreasingTime(i->startTime), m_maxCallStackDepth, TimelineRecordType::GCEvent); record->setObject("data", TimelineRecordFactory::createGCEventData(i->collectedBytes)); record->setNumber("endTime", m_timeConverter.fromMonotonicallyIncreasingTime(i->endTime)); addRecordToTimeline(record.release()); } }
void InspectorTimelineAgent::pushGCEventRecords() { if (!m_gcEvents.size()) return; GCEvents events = m_gcEvents; m_gcEvents.clear(); for (GCEvents::iterator i = events.begin(); i != events.end(); ++i) { RefPtr<InspectorObject> record = TimelineRecordFactory::createGenericRecord(i->startTime); record->setObject("data", TimelineRecordFactory::createGCEventData(i->collectedBytes)); record->setNumber("endTime", i->endTime); addRecordToTimeline(record.release(), GCEventTimelineRecordType); } }
void InspectorTimelineAgent::didCompleteCurrentRecord(const String& type) { // An empty stack could merely mean that the timeline agent was turned on in the middle of // an event. Don't treat as an error. if (!m_recordStack.isEmpty()) { pushGCEventRecords(); TimelineRecordEntry entry = m_recordStack.last(); m_recordStack.removeLast(); ASSERT(entry.type == type); entry.record->setObject("data", entry.data); entry.record->setArray("children", entry.children); entry.record->setNumber("endTime", WTF::currentTimeMS()); addRecordToTimeline(entry.record, type); } }
void InspectorTimelineAgent::didCompleteCurrentRecord(TimelineRecordType type) { // An empty stack could merely mean that the timeline agent was turned on in the middle of // an event. Don't treat as an error. if (!m_recordStack.isEmpty()) { TimelineRecordEntry entry = m_recordStack.last(); m_recordStack.removeLast(); ASSERT(entry.type == type); entry.record->setObject("data", entry.data); entry.record->setArray("children", entry.children); entry.record->setNumber("endTime", timestamp()); size_t usedHeapSizeDelta = usedHeapSize() - entry.usedHeapSizeAtStart; if (usedHeapSizeDelta) entry.record->setNumber("usedHeapSizeDelta", usedHeapSizeDelta); addRecordToTimeline(entry.record, type); } }
void InspectorTimelineAgent::didCompleteCurrentRecord(const String& type) { // An empty stack could merely mean that the timeline agent was turned on in the middle of // an event. Don't treat as an error. if (!m_recordStack.isEmpty()) { if (m_platformInstrumentationClientInstalledAtStackDepth == m_recordStack.size()) { m_platformInstrumentationClientInstalledAtStackDepth = 0; PlatformInstrumentation::setClient(0); } pushGCEventRecords(); TimelineRecordEntry entry = m_recordStack.last(); m_recordStack.removeLast(); ASSERT(entry.type == type); entry.record->setObject("data", entry.data); entry.record->setArray("children", entry.children); entry.record->setNumber("endTime", timestamp()); size_t usedHeapSizeDelta = getUsedHeapSize() - entry.usedHeapSizeAtStart; if (usedHeapSizeDelta) entry.record->setNumber("usedHeapSizeDelta", usedHeapSizeDelta); addRecordToTimeline(entry.record, type, entry.frameId); } }
void InspectorTimelineAgent::didMarkTimeline(const String& message) { ScriptObject record = TimelineRecordFactory::createGenericRecord(m_frontend, currentTimeInMilliseconds()); record.set("data", TimelineRecordFactory::createMarkTimelineData(m_frontend, message)); addRecordToTimeline(record, MarkTimelineRecordType); }
void InspectorTimelineAgent::didMarkLoadEvent() { pushGCEventRecords(); RefPtr<InspectorObject> record = TimelineRecordFactory::createGenericRecord(WTF::currentTimeMS()); addRecordToTimeline(record.release(), MarkLoadEventType); }
void InspectorTimelineAgent::didInstallTimer(int timerId, int timeout, bool singleShot) { ScriptObject record = TimelineRecordFactory::createGenericRecord(m_frontend, currentTimeInMilliseconds()); record.set("data", TimelineRecordFactory::createTimerInstallData(m_frontend, timerId, timeout, singleShot)); addRecordToTimeline(record, TimerInstallTimelineRecordType); }
void InspectorTimelineAgent::didRemoveTimer(int timerId) { ScriptObject record = TimelineRecordFactory::createGenericRecord(m_frontend, currentTimeInMilliseconds()); record.set("data", TimelineRecordFactory::createGenericTimerData(m_frontend, timerId)); addRecordToTimeline(record, TimerRemoveTimelineRecordType); }