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

Side by Side Diff: chrome/browser/history/top_sites_impl.h

Issue 1005873011: Only record the execution time during startup. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update the histogram name. Created 5 years, 8 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 | chrome/browser/history/top_sites_impl.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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 CHROME_BROWSER_HISTORY_TOP_SITES_IMPL_H_ 5 #ifndef CHROME_BROWSER_HISTORY_TOP_SITES_IMPL_H_
6 #define CHROME_BROWSER_HISTORY_TOP_SITES_IMPL_H_ 6 #define CHROME_BROWSER_HISTORY_TOP_SITES_IMPL_H_
7 7
8 #include <list> 8 #include <list>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 bool loaded() const override; 91 bool loaded() const override;
92 bool AddForcedURL(const GURL& url, const base::Time& time) override; 92 bool AddForcedURL(const GURL& url, const base::Time& time) override;
93 93
94 // RefcountedKeyedService: 94 // RefcountedKeyedService:
95 void ShutdownOnUIThread() override; 95 void ShutdownOnUIThread() override;
96 96
97 protected: 97 protected:
98 ~TopSitesImpl() override; 98 ~TopSitesImpl() override;
99 99
100 private: 100 private:
101 // TODO(yiyaoliu): Remove the enums and related code when crbug/223430 is
102 // fixed.
103 // An enum representing different situations under which function
104 // SetTopSites can be initiated.
105 // This is needed because a histogram is used to record speed related metrics
106 // when SetTopSites are initiated from OnGotMostVisitedThumbnails, which
107 // usually happens early and might affect Chrome startup speed.
108 enum CallLocation {
109 // SetTopSites is called from function OnGotMostVisitedThumbnails.
110 CALL_LOCATION_FROM_ON_GOT_MOST_VISITED_THUMBNAILS,
111 // All other situations.
112 CALL_LOCATION_FROM_OTHER_PLACES
113 };
114
101 friend class TopSitesImplTest; 115 friend class TopSitesImplTest;
102 FRIEND_TEST_ALL_PREFIXES(TopSitesImplTest, DiffMostVisited); 116 FRIEND_TEST_ALL_PREFIXES(TopSitesImplTest, DiffMostVisited);
103 FRIEND_TEST_ALL_PREFIXES(TopSitesImplTest, DiffMostVisitedWithForced); 117 FRIEND_TEST_ALL_PREFIXES(TopSitesImplTest, DiffMostVisitedWithForced);
104 118
105 typedef base::Callback<void(const MostVisitedURLList&, 119 typedef base::Callback<void(const MostVisitedURLList&,
106 const MostVisitedURLList&)> PendingCallback; 120 const MostVisitedURLList&)> PendingCallback;
107 121
108 typedef std::pair<GURL, Images> TempImage; 122 typedef std::pair<GURL, Images> TempImage;
109 typedef std::list<TempImage> TempImages; 123 typedef std::list<TempImage> TempImages;
110 typedef std::vector<PendingCallback> PendingCallbacks; 124 typedef std::vector<PendingCallback> PendingCallbacks;
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 void Observe(int type, 202 void Observe(int type,
189 const content::NotificationSource& source, 203 const content::NotificationSource& source,
190 const content::NotificationDetails& details) override; 204 const content::NotificationDetails& details) override;
191 205
192 // Updates URLs in |cache_| and the db (in the background). 206 // Updates URLs in |cache_| and the db (in the background).
193 // The non-forced URLs in |new_top_sites| replace those in |cache_|. 207 // The non-forced URLs in |new_top_sites| replace those in |cache_|.
194 // The forced URLs of |new_top_sites| are merged with those in |cache_|, 208 // The forced URLs of |new_top_sites| are merged with those in |cache_|,
195 // if the list of forced URLs overflows, the oldest ones are dropped. 209 // if the list of forced URLs overflows, the oldest ones are dropped.
196 // All mutations to cache_ *must* go through this. Should 210 // All mutations to cache_ *must* go through this. Should
197 // be called from the UI thread. 211 // be called from the UI thread.
198 void SetTopSites(const MostVisitedURLList& new_top_sites); 212 void SetTopSites(const MostVisitedURLList& new_top_sites,
213 const CallLocation location);
199 214
200 // Returns the number of most visited results to request from history. This 215 // Returns the number of most visited results to request from history. This
201 // changes depending upon how many urls have been blacklisted. Should be 216 // changes depending upon how many urls have been blacklisted. Should be
202 // called from the UI thread. 217 // called from the UI thread.
203 int num_results_to_request_from_history() const; 218 int num_results_to_request_from_history() const;
204 219
205 // Invoked when transitioning to LOADED. Notifies any queued up callbacks. 220 // Invoked when transitioning to LOADED. Notifies any queued up callbacks.
206 // Should be called from the UI thread. 221 // Should be called from the UI thread.
207 void MoveStateToLoaded(); 222 void MoveStateToLoaded();
208 223
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 // enough Top Sites (new profile), we store it until the next 284 // enough Top Sites (new profile), we store it until the next
270 // SetNonForcedTopSites call. 285 // SetNonForcedTopSites call.
271 TempImages temp_images_; 286 TempImages temp_images_;
272 287
273 // URL List of prepopulated page. 288 // URL List of prepopulated page.
274 PrepopulatedPageList prepopulated_pages_; 289 PrepopulatedPageList prepopulated_pages_;
275 290
276 // Are we loaded? 291 // Are we loaded?
277 bool loaded_; 292 bool loaded_;
278 293
294 // Have the SetTopSites execution time related histograms been recorded?
295 // The histogram should only be recorded once for each Chrome execution.
296 static bool histogram_recorded_;
297
279 ScopedObserver<HistoryService, HistoryServiceObserver> 298 ScopedObserver<HistoryService, HistoryServiceObserver>
280 history_service_observer_; 299 history_service_observer_;
281 300
282 DISALLOW_COPY_AND_ASSIGN(TopSitesImpl); 301 DISALLOW_COPY_AND_ASSIGN(TopSitesImpl);
283 }; 302 };
284 303
285 } // namespace history 304 } // namespace history
286 305
287 #endif // CHROME_BROWSER_HISTORY_TOP_SITES_IMPL_H_ 306 #endif // CHROME_BROWSER_HISTORY_TOP_SITES_IMPL_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/history/top_sites_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698