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

Side by Side Diff: chrome/browser/win/jumplist.cc

Issue 2811393002: Log UpdateJumpList() and CreateIconFiles() execution time to UMA (Closed)
Patch Set: Better UMA metric names Created 3 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 | tools/metrics/histograms/histograms.xml » ('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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 #include "chrome/browser/win/jumplist.h" 5 #include "chrome/browser/win/jumplist.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 // Add this icon file to the list and return its absolute path. 114 // Add this icon file to the list and return its absolute path.
115 // The IShellLink::SetIcon() function needs the absolute path to an icon. 115 // The IShellLink::SetIcon() function needs the absolute path to an icon.
116 *icon_path = path; 116 *icon_path = path;
117 return true; 117 return true;
118 } 118 }
119 119
120 // Helper method for RunUpdate to create icon files for the asynchrounously 120 // Helper method for RunUpdate to create icon files for the asynchrounously
121 // loaded icons. 121 // loaded icons.
122 void CreateIconFiles(const base::FilePath& icon_dir, 122 void CreateIconFiles(const base::FilePath& icon_dir,
123 const ShellLinkItemList& item_list) { 123 const ShellLinkItemList& item_list) {
124 SCOPED_UMA_HISTOGRAM_TIMER("WinJumplist.CreateIconFilesDuration");
gab 2017/04/13 15:14:22 Add // TODO(chengx): Remove after settling http:/
chengx 2017/04/13 19:21:52 Done.
124 for (ShellLinkItemList::const_iterator item = item_list.begin(); 125 for (ShellLinkItemList::const_iterator item = item_list.begin();
125 item != item_list.end(); ++item) { 126 item != item_list.end(); ++item) {
126 base::FilePath icon_path; 127 base::FilePath icon_path;
127 if (CreateIconFile((*item)->icon_image(), icon_dir, &icon_path)) 128 if (CreateIconFile((*item)->icon_image(), icon_dir, &icon_path))
128 (*item)->set_icon(icon_path.value(), 0); 129 (*item)->set_icon(icon_path.value(), 0);
129 } 130 }
130 } 131 }
131 132
132 // Updates the "Tasks" category of the JumpList. 133 // Updates the "Tasks" category of the JumpList.
133 bool UpdateTaskCategory( 134 bool UpdateTaskCategory(
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 } 171 }
171 172
172 return jumplist_updater->AddTasks(items); 173 return jumplist_updater->AddTasks(items);
173 } 174 }
174 175
175 // Updates the application JumpList. 176 // Updates the application JumpList.
176 bool UpdateJumpList(const wchar_t* app_id, 177 bool UpdateJumpList(const wchar_t* app_id,
177 const ShellLinkItemList& most_visited_pages, 178 const ShellLinkItemList& most_visited_pages,
178 const ShellLinkItemList& recently_closed_pages, 179 const ShellLinkItemList& recently_closed_pages,
179 IncognitoModePrefs::Availability incognito_availability) { 180 IncognitoModePrefs::Availability incognito_availability) {
181 SCOPED_UMA_HISTOGRAM_TIMER("WinJumplist.UpdateJumpListDuration");
180 // JumpList is implemented only on Windows 7 or later. 182 // JumpList is implemented only on Windows 7 or later.
181 // So, we should return now when this function is called on earlier versions 183 // So, we should return now when this function is called on earlier versions
182 // of Windows. 184 // of Windows.
183 if (!JumpListUpdater::IsEnabled()) 185 if (!JumpListUpdater::IsEnabled())
184 return true; 186 return true;
185 187
186 JumpListUpdater jumplist_updater(app_id); 188 JumpListUpdater jumplist_updater(app_id);
187 if (!jumplist_updater.BeginUpdate()) 189 if (!jumplist_updater.BeginUpdate())
188 return false; 190 return false;
189 191
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 251
250 // Make local copies of lists so we can release the lock. 252 // Make local copies of lists so we can release the lock.
251 local_most_visited_pages = data->most_visited_pages_; 253 local_most_visited_pages = data->most_visited_pages_;
252 local_recently_closed_pages = data->recently_closed_pages_; 254 local_recently_closed_pages = data->recently_closed_pages_;
253 } 255 }
254 256
255 // If JumpListIcons directory doesn't exist or is not empty, skip updating the 257 // If JumpListIcons directory doesn't exist or is not empty, skip updating the
256 // jumplist icons. The jumplist links should be updated anyway, as it doesn't 258 // jumplist icons. The jumplist links should be updated anyway, as it doesn't
257 // involve disk IO. 259 // involve disk IO.
258 if (base::DirectoryExists(icon_dir) && base::IsDirectoryEmpty(icon_dir)) { 260 if (base::DirectoryExists(icon_dir) && base::IsDirectoryEmpty(icon_dir)) {
261 UMA_HISTOGRAM_COUNTS_100(
262 "WinJumplist.CreateIconFilesCount",
263 local_most_visited_pages.size() + local_recently_closed_pages.size());
264
259 // Create icon files for shortcuts in the "Most Visited" category. 265 // Create icon files for shortcuts in the "Most Visited" category.
260 CreateIconFiles(icon_dir, local_most_visited_pages); 266 CreateIconFiles(icon_dir, local_most_visited_pages);
261 267
262 // Create icon files for shortcuts in the "Recently Closed" 268 // Create icon files for shortcuts in the "Recently Closed"
263 // category. 269 // category.
264 CreateIconFiles(icon_dir, local_recently_closed_pages); 270 CreateIconFiles(icon_dir, local_recently_closed_pages);
265 } 271 }
266 272
267 // Create a new JumpList and replace the current JumpList with it. The 273 // Create a new JumpList and replace the current JumpList with it. The
268 // jumplist links are updated anyway, while the jumplist icons may not as 274 // jumplist links are updated anyway, while the jumplist icons may not as
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 void JumpList::TopSitesLoaded(history::TopSites* top_sites) { 624 void JumpList::TopSitesLoaded(history::TopSites* top_sites) {
619 } 625 }
620 626
621 void JumpList::TopSitesChanged(history::TopSites* top_sites, 627 void JumpList::TopSitesChanged(history::TopSites* top_sites,
622 ChangeReason change_reason) { 628 ChangeReason change_reason) {
623 top_sites->GetMostVisitedURLs( 629 top_sites->GetMostVisitedURLs(
624 base::Bind(&JumpList::OnMostVisitedURLsAvailable, 630 base::Bind(&JumpList::OnMostVisitedURLsAvailable,
625 weak_ptr_factory_.GetWeakPtr()), 631 weak_ptr_factory_.GetWeakPtr()),
626 false); 632 false);
627 } 633 }
OLDNEW
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698