void InspectorReplayAgent::insertSessionSegment(ErrorString& errorString, Inspector::Protocol::Replay::SessionIdentifier sessionIdentifier, SegmentIdentifier segmentIdentifier, int segmentIndex) { ASSERT_ARG(sessionIdentifier, sessionIdentifier > 0); ASSERT_ARG(segmentIdentifier, segmentIdentifier > 0); ASSERT_ARG(segmentIndex, segmentIndex >= 0); RefPtr<ReplaySession> session = findSession(errorString, sessionIdentifier); RefPtr<ReplaySessionSegment> segment = findSegment(errorString, segmentIdentifier); if (!session || !segment) return; if (static_cast<size_t>(segmentIndex) > session->size()) { errorString = ASCIILiteral("Invalid segment index."); return; } if (session == m_page.replayController().loadedSession() && sessionState() != WebCore::SessionState::Inactive) { errorString = ASCIILiteral("Can't modify a loaded session unless the session is inactive."); return; } session->insertSegment(segmentIndex, WTF::move(segment)); sessionModified(WTF::move(session)); }
void InspectorReplayAgent::removeSessionSegment(ErrorString* errorString, Inspector::Protocol::Replay::SessionIdentifier identifier, int segmentIndex) { ASSERT(identifier > 0); ASSERT(segmentIndex >= 0); RefPtr<ReplaySession> session = findSession(errorString, identifier); if (!session) return; if (static_cast<size_t>(segmentIndex) >= session->size()) { *errorString = ASCIILiteral("Invalid segment index."); return; } if (session == m_page.replayController().loadedSession() && sessionState() != WebCore::SessionState::Inactive) { *errorString = ASCIILiteral("Can't modify a loaded session unless the session is inactive."); return; } session->removeSegment(segmentIndex); sessionModified(session); }