From 3e90d4a00082fd985ab610cd2faff84b5c597a4e Mon Sep 17 00:00:00 2001 From: "dglazkov@chromium.org" Date: Fri, 3 Jul 2009 17:38:39 +0000 Subject: 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 --- chrome/browser/history/visit_database.cc | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'chrome/browser/history/visit_database.cc') 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::max()); + statement->bind_int(2, PageTransition::CORE_MASK); + statement->bind_int(3, transition); + statement->bind_int64(4, + max_results ? max_results : std::numeric_limits::max()); + + FillVisitVector(*statement, visits); +} + void VisitDatabase::GetVisibleVisitsInRange(Time begin_time, Time end_time, bool most_recent_visit_only, int max_count, -- cgit v1.1