Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Side by Side Diff: components/history/core/browser/history_backend.h

Issue 1179953005: Add History.TopHostsVisitsByRank UMA metric. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@is_allowed
Patch Set: Fix unittest to be 1-based again. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | components/history/core/browser/history_backend.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_BACKEND_H_ 5 #ifndef COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_BACKEND_H_
6 #define COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_BACKEND_H_ 6 #define COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_BACKEND_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/containers/hash_tables.h"
13 #include "base/containers/mru_cache.h" 14 #include "base/containers/mru_cache.h"
14 #include "base/files/file_path.h" 15 #include "base/files/file_path.h"
15 #include "base/gtest_prod_util.h" 16 #include "base/gtest_prod_util.h"
16 #include "base/memory/memory_pressure_listener.h" 17 #include "base/memory/memory_pressure_listener.h"
17 #include "base/memory/scoped_ptr.h" 18 #include "base/memory/scoped_ptr.h"
18 #include "base/observer_list.h" 19 #include "base/observer_list.h"
19 #include "base/single_thread_task_runner.h" 20 #include "base/single_thread_task_runner.h"
20 #include "base/supports_user_data.h" 21 #include "base/supports_user_data.h"
21 #include "base/task/cancelable_task_tracker.h" 22 #include "base/task/cancelable_task_tracker.h"
22 #include "components/favicon_base/favicon_usage_data.h" 23 #include "components/favicon_base/favicon_usage_data.h"
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 // Persists any in-flight state, without actually shutting down the history 196 // Persists any in-flight state, without actually shutting down the history
196 // system. This is intended for use when the application is backgrounded. 197 // system. This is intended for use when the application is backgrounded.
197 void PersistState(); 198 void PersistState();
198 #endif 199 #endif
199 200
200 void ClearCachedDataForContextID(ContextID context_id); 201 void ClearCachedDataForContextID(ContextID context_id);
201 202
202 // Computes the |num_hosts| most-visited hostnames in the past 30 days. See 203 // Computes the |num_hosts| most-visited hostnames in the past 30 days. See
203 // history_service.h for details. Returns an empty list if db_ is not 204 // history_service.h for details. Returns an empty list if db_ is not
204 // initialized. 205 // initialized.
206 //
207 // As a side effect, caches the list of top hosts for the purposes of
208 // generating internal metrics.
205 TopHostsList TopHosts(int num_hosts) const; 209 TopHostsList TopHosts(int num_hosts) const;
206 210
207 // Navigation ---------------------------------------------------------------- 211 // Navigation ----------------------------------------------------------------
208 212
209 // |request.time| must be unique with high probability. 213 // |request.time| must be unique with high probability.
210 void AddPage(const HistoryAddPageArgs& request); 214 void AddPage(const HistoryAddPageArgs& request);
211 virtual void SetPageTitle(const GURL& url, const base::string16& title); 215 virtual void SetPageTitle(const GURL& url, const base::string16& title);
212 void AddPageNoVisitForBookmark(const GURL& url, const base::string16& title); 216 void AddPageNoVisitForBookmark(const GURL& url, const base::string16& title);
213 void UpdateWithPageEndTime(ContextID context_id, 217 void UpdateWithPageEndTime(ContextID context_id,
214 int nav_entry_id, 218 int nav_entry_id,
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconsFromDBExpired); 518 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconsFromDBExpired);
515 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, 519 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest,
516 UpdateFaviconMappingsAndFetchNoDB); 520 UpdateFaviconMappingsAndFetchNoDB);
517 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, QueryFilteredURLs); 521 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, QueryFilteredURLs);
518 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, TopHosts); 522 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, TopHosts);
519 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, TopHosts_ElidePortAndScheme); 523 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, TopHosts_ElidePortAndScheme);
520 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, TopHosts_ElideWWW); 524 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, TopHosts_ElideWWW);
521 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, TopHosts_OnlyLast30Days); 525 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, TopHosts_OnlyLast30Days);
522 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, TopHosts_MaxNumHosts); 526 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, TopHosts_MaxNumHosts);
523 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, TopHosts_IgnoreUnusualURLs); 527 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, TopHosts_IgnoreUnusualURLs);
528 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, RecordTopHostsMetrics);
524 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, UpdateVisitDuration); 529 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, UpdateVisitDuration);
525 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, ExpireHistoryForTimes); 530 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, ExpireHistoryForTimes);
526 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, DeleteFTSIndexDatabases); 531 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, DeleteFTSIndexDatabases);
527 FRIEND_TEST_ALL_PREFIXES(ProfileSyncServiceTypedUrlTest, 532 FRIEND_TEST_ALL_PREFIXES(ProfileSyncServiceTypedUrlTest,
528 ProcessUserChangeRemove); 533 ProcessUserChangeRemove);
529 friend class ::TestingProfile; 534 friend class ::TestingProfile;
530 535
531 // Computes the name of the specified database on disk. 536 // Computes the name of the specified database on disk.
532 base::FilePath GetArchivedFileName() const; 537 base::FilePath GetArchivedFileName() const;
533 base::FilePath GetThumbnailFileName() const; 538 base::FilePath GetThumbnailFileName() const;
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
731 void NotifyURLVisited(ui::PageTransition transition, 736 void NotifyURLVisited(ui::PageTransition transition,
732 const URLRow& row, 737 const URLRow& row,
733 const RedirectList& redirects, 738 const RedirectList& redirects,
734 base::Time visit_time) override; 739 base::Time visit_time) override;
735 void NotifyURLsModified(const URLRows& rows) override; 740 void NotifyURLsModified(const URLRows& rows) override;
736 void NotifyURLsDeleted(bool all_history, 741 void NotifyURLsDeleted(bool all_history,
737 bool expired, 742 bool expired,
738 const URLRows& rows, 743 const URLRows& rows,
739 const std::set<GURL>& favicon_urls) override; 744 const std::set<GURL>& favicon_urls) override;
740 745
746 void RecordTopHostsMetrics(const GURL& url);
747
741 // Deleting all history ------------------------------------------------------ 748 // Deleting all history ------------------------------------------------------
742 749
743 // Deletes all history. This is a special case of deleting that is separated 750 // Deletes all history. This is a special case of deleting that is separated
744 // from our normal dependency-following method for performance reasons. The 751 // from our normal dependency-following method for performance reasons. The
745 // logic lives here instead of ExpireHistoryBackend since it will cause 752 // logic lives here instead of ExpireHistoryBackend since it will cause
746 // re-initialization of some databases (e.g. Thumbnails) that could fail. 753 // re-initialization of some databases (e.g. Thumbnails) that could fail.
747 // When these databases are not valid, our pointers must be null, so we need 754 // When these databases are not valid, our pointers must be null, so we need
748 // to handle this type of operation to keep the pointers in sync. 755 // to handle this type of operation to keep the pointers in sync.
749 void DeleteAllHistory(); 756 void DeleteAllHistory();
750 757
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
829 // of inheritance from base::SupportsUserData). 836 // of inheritance from base::SupportsUserData).
830 scoped_ptr<HistoryBackendHelper> supports_user_data_helper_; 837 scoped_ptr<HistoryBackendHelper> supports_user_data_helper_;
831 838
832 // Used to manage syncing of the typed urls datatype. This will be null before 839 // Used to manage syncing of the typed urls datatype. This will be null before
833 // Init is called. 840 // Init is called.
834 scoped_ptr<TypedUrlSyncableService> typed_url_syncable_service_; 841 scoped_ptr<TypedUrlSyncableService> typed_url_syncable_service_;
835 842
836 // Listens for the system being under memory pressure. 843 // Listens for the system being under memory pressure.
837 scoped_ptr<base::MemoryPressureListener> memory_pressure_listener_; 844 scoped_ptr<base::MemoryPressureListener> memory_pressure_listener_;
838 845
846 // Map from host to index in the TopHosts list. It is updated only by
847 // TopHosts(), so it's usually stale.
848 mutable base::hash_map<std::string, int> host_ranks_;
849
839 // List of observers 850 // List of observers
840 base::ObserverList<HistoryBackendObserver> observers_; 851 base::ObserverList<HistoryBackendObserver> observers_;
841 852
842 DISALLOW_COPY_AND_ASSIGN(HistoryBackend); 853 DISALLOW_COPY_AND_ASSIGN(HistoryBackend);
843 }; 854 };
844 855
845 } // namespace history 856 } // namespace history
846 857
847 #endif // COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_BACKEND_H_ 858 #endif // COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_BACKEND_H_
OLDNEW
« no previous file with comments | « no previous file | components/history/core/browser/history_backend.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698