示例#1
0
void V8ConsoleMessageStorage::addMessage(std::unique_ptr<V8ConsoleMessage> message)
{
    if (message->type() == ConsoleAPIType::kClear) {
        clear();
        notifyClear();
    }

    V8InspectorSessionImpl* session = m_debugger->sessionForContextGroup(m_contextGroupId);
    if (session) {
        if (message->origin() == V8MessageOrigin::kConsole)
            session->consoleAgent()->messageAdded(message.get());
        session->runtimeAgent()->messageAdded(message.get());
    }

    DCHECK(m_messages.size() <= maxConsoleMessageCount);
    if (m_messages.size() == maxConsoleMessageCount) {
        ++m_expiredCount;
        m_messages.pop_front();
    }
    m_messages.push_back(std::move(message));
}