Index: components/history/core/browser/visit_database.cc |
diff --git a/components/history/core/browser/visit_database.cc b/components/history/core/browser/visit_database.cc |
index 3d4e7159197c182e6c4b32485aa41a05a07b7720..5d47a5a5ba482e9c45d038979c424bc839850bf4 100644 |
--- a/components/history/core/browser/visit_database.cc |
+++ b/components/history/core/browser/visit_database.cc |
@@ -537,7 +537,9 @@ bool VisitDatabase::GetVisibleVisitCountToHost(const GURL& url, |
return true; |
} |
-bool VisitDatabase::GetHistoryCount(int* count) { |
+bool VisitDatabase::GetHistoryCount(const base::Time& begin_time, |
+ const base::Time& end_time, |
+ int* count) { |
sql::Statement statement(GetDB().GetCachedStatement(SQL_FROM_HERE, |
"SELECT COUNT(*) FROM (" |
"SELECT DISTINCT url, " |
@@ -545,11 +547,12 @@ bool VisitDatabase::GetHistoryCount(int* count) { |
// Windows Epoch to the number of seconds from Unix Epoch. Leap seconds |
// are not handled in both timestamp units, so a linear conversion is |
// valid here. |
- "DATE((visit_time - ?) / ?, 'unixepoch', 'localtime') " |
+ "DATE((visit_time - ?) / ?, 'unixepoch', 'localtime')" |
"FROM visits " |
"WHERE (transition & ?) != 0 " // CHAIN_END |
- "AND (transition & ?) NOT IN (?, ?, ?)" // NO SUBFRAME or |
- // KEYWORD_GENERATED |
+ "AND (transition & ?) NOT IN (?, ?, ?) " // NO SUBFRAME or |
+ // KEYWORD_GENERATED |
+ "AND visit_time >= ? AND visit_time < ?" |
")")); |
statement.BindInt64(0, base::Time::kTimeTToMicrosecondsOffset); |
@@ -559,6 +562,8 @@ bool VisitDatabase::GetHistoryCount(int* count) { |
statement.BindInt(4, ui::PAGE_TRANSITION_AUTO_SUBFRAME); |
statement.BindInt(5, ui::PAGE_TRANSITION_MANUAL_SUBFRAME); |
statement.BindInt(6, ui::PAGE_TRANSITION_KEYWORD_GENERATED); |
+ statement.BindInt64(7, begin_time.ToInternalValue()); |
+ statement.BindInt64(8, end_time.ToInternalValue()); |
if (!statement.Step()) |
return false; |