diff options
author | dglazkov@chromium.org <dglazkov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-03 17:38:39 +0000 |
---|---|---|
committer | dglazkov@chromium.org <dglazkov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-03 17:38:39 +0000 |
commit | 3e90d4a00082fd985ab610cd2faff84b5c597a4e (patch) | |
tree | 4d2f0da17f4fb68bab53381c9f49351380a24127 /chrome/browser/history/visit_database.cc | |
parent | fd694982d0e1ee8b3e1753d9c48b01c1a633ac27 (diff) | |
download | chromium_src-3e90d4a00082fd985ab610cd2faff84b5c597a4e.zip chromium_src-3e90d4a00082fd985ab610cd2faff84b5c597a4e.tar.gz chromium_src-3e90d4a00082fd985ab610cd2faff84b5c597a4e.tar.bz2 |
Fix Acid3 Test 48: LINKTEST, Chromium side....
R=brettw
BUG=http://crbug.com/231
BUG=http://crubg.com/5160
TEST=ExpireHistoryTest.ArchiveSomeOldHistory
TEST=ExpireHistoryTest.ExpiringVisitsReader
TEST=VisitedLinkTest.Listener
TEST=VisitedLinkTest.Resizing
TEST=VisitedLinkRelayTest.*
TEST=VisitedLinkEventsTest.*
Review URL: http://codereview.chromium.org/113591
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19910 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/history/visit_database.cc')
-rw-r--r-- | chrome/browser/history/visit_database.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/chrome/browser/history/visit_database.cc b/chrome/browser/history/visit_database.cc index 7ce3e62..60d4c5b 100644 --- a/chrome/browser/history/visit_database.cc +++ b/chrome/browser/history/visit_database.cc @@ -213,6 +213,35 @@ void VisitDatabase::GetAllVisitsInRange(Time begin_time, Time end_time, FillVisitVector(*statement, visits); } +void VisitDatabase::GetVisitsInRangeForTransition( + Time begin_time, + Time end_time, + int max_results, + PageTransition::Type transition, + VisitVector* visits) { + DCHECK(visits); + visits->clear(); + + SQLITE_UNIQUE_STATEMENT(statement, GetStatementCache(), + "SELECT" HISTORY_VISIT_ROW_FIELDS "FROM visits " + "WHERE visit_time >= ? AND visit_time < ? " + "AND (transition & ?) == ?" + "ORDER BY visit_time LIMIT ?"); + if (!statement.is_valid()) + return; + + // See GetVisibleVisitsInRange for more info on how these times are bound. + int64 end = end_time.ToInternalValue(); + statement->bind_int64(0, begin_time.ToInternalValue()); + statement->bind_int64(1, end ? end : std::numeric_limits<int64>::max()); + statement->bind_int(2, PageTransition::CORE_MASK); + statement->bind_int(3, transition); + statement->bind_int64(4, + max_results ? max_results : std::numeric_limits<int64>::max()); + + FillVisitVector(*statement, visits); +} + void VisitDatabase::GetVisibleVisitsInRange(Time begin_time, Time end_time, bool most_recent_visit_only, int max_count, |