blob: e943065c64168b12227109770005aa799cadeb6e [file] [log] [blame]
// Copyright 2016 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/ConsoleMessageStorage.h"
#include "core/inspector/ConsoleMessage.h"
#include "core/probe/CoreProbes.h"
namespace blink {
static const unsigned kMaxConsoleMessageCount = 1000;
ConsoleMessageStorage::ConsoleMessageStorage() : expired_count_(0) {}
void ConsoleMessageStorage::AddConsoleMessage(ExecutionContext* context,
ConsoleMessage* message) {
probe::consoleMessageAdded(context, message);
DCHECK(messages_.size() <= kMaxConsoleMessageCount);
if (messages_.size() == kMaxConsoleMessageCount) {
++expired_count_;
messages_.pop_front();
}
messages_.push_back(message);
}
void ConsoleMessageStorage::Clear() {
messages_.clear();
expired_count_ = 0;
}
size_t ConsoleMessageStorage::size() const {
return messages_.size();
}
ConsoleMessage* ConsoleMessageStorage::at(size_t index) const {
return messages_[index].Get();
}
int ConsoleMessageStorage::ExpiredCount() const {
return expired_count_;
}
void ConsoleMessageStorage::Trace(blink::Visitor* visitor) {
visitor->Trace(messages_);
}
} // namespace blink