summaryrefslogtreecommitdiffstats
path: root/chrome/browser/prerender/prerender_history.cc
diff options
context:
space:
mode:
authorcbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-15 19:57:29 +0000
committercbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-15 19:57:29 +0000
commite26020469bc0ecf2a31471465fd6782465b9be1c (patch)
tree74d243147ebbac8bc55922a03e4c35df43be5f33 /chrome/browser/prerender/prerender_history.cc
parent1a5f6e5a2466e9a3bf47300dc56afe4d708d9524 (diff)
downloadchromium_src-e26020469bc0ecf2a31471465fd6782465b9be1c.zip
chromium_src-e26020469bc0ecf2a31471465fd6782465b9be1c.tar.gz
chromium_src-e26020469bc0ecf2a31471465fd6782465b9be1c.tar.bz2
Prerender tab for net-internals
BUG=None TEST=None Review URL: http://codereview.chromium.org/7143001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89235 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/prerender/prerender_history.cc')
-rw-r--r--chrome/browser/prerender/prerender_history.cc41
1 files changed, 41 insertions, 0 deletions
diff --git a/chrome/browser/prerender/prerender_history.cc b/chrome/browser/prerender/prerender_history.cc
new file mode 100644
index 0000000..319af90
--- /dev/null
+++ b/chrome/browser/prerender/prerender_history.cc
@@ -0,0 +1,41 @@
+// Copyright (c) 2011 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 "chrome/browser/prerender/prerender_history.h"
+
+#include "base/logging.h"
+#include "base/values.h"
+
+namespace prerender {
+
+PrerenderHistory::PrerenderHistory(size_t max_items)
+ : max_items_(max_items) {
+ DCHECK(max_items > 0);
+}
+
+PrerenderHistory::~PrerenderHistory() {
+}
+
+void PrerenderHistory::AddEntry(const Entry& entry) {
+ DCHECK(CalledOnValidThread());
+ while (entries_.size() >= max_items_)
+ entries_.pop_front();
+ entries_.push_back(entry);
+}
+
+Value* PrerenderHistory::GetEntriesAsValue() const {
+ ListValue* return_list = new ListValue();
+ for (std::list<Entry>::const_reverse_iterator it = entries_.rbegin();
+ it != entries_.rend();
+ ++it) {
+ const Entry& entry = *it;
+ DictionaryValue* v = new DictionaryValue();
+ v->SetString("url", entry.url.spec());
+ v->SetString("final_status", NameFromFinalStatus(entry.final_status));
+ return_list->Append(v);
+ }
+ return return_list;
+}
+
+} // namespace prerender