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

Side by Side Diff: chrome/browser/chromeos/boot_times_loader.cc

Issue 5734002: Continuation of CL 5685007, rename the singleton accessor method in more files. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 10 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/chromeos/boot_times_loader.h" 5 #include "chrome/browser/chromeos/boot_times_loader.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/file_path.h" 10 #include "base/file_path.h"
11 #include "base/file_util.h" 11 #include "base/file_util.h"
12 #include "base/lazy_instance.h"
12 #include "base/message_loop.h" 13 #include "base/message_loop.h"
13 #include "base/metrics/histogram.h" 14 #include "base/metrics/histogram.h"
14 #include "base/process_util.h" 15 #include "base/process_util.h"
15 #include "base/singleton.h"
16 #include "base/string_number_conversions.h" 16 #include "base/string_number_conversions.h"
17 #include "base/string_util.h" 17 #include "base/string_util.h"
18 #include "base/stringprintf.h" 18 #include "base/stringprintf.h"
19 #include "base/thread.h" 19 #include "base/thread.h"
20 #include "base/thread_restrictions.h" 20 #include "base/thread_restrictions.h"
21 #include "base/time.h" 21 #include "base/time.h"
22 #include "chrome/browser/browser_process.h" 22 #include "chrome/browser/browser_process.h"
23 #include "chrome/browser/browser_thread.h" 23 #include "chrome/browser/browser_thread.h"
24 #include "chrome/browser/chromeos/login/authentication_notification_details.h" 24 #include "chrome/browser/chromeos/login/authentication_notification_details.h"
25 #include "chrome/browser/chromeos/login/user_manager.h" 25 #include "chrome/browser/chromeos/login/user_manager.h"
(...skipping 29 matching lines...) Expand all
55 static const char kUmaLoginPrefix[] = "BootTime."; 55 static const char kUmaLoginPrefix[] = "BootTime.";
56 static const char kUmaLogout[] = "ShutdownTime.Logout"; 56 static const char kUmaLogout[] = "ShutdownTime.Logout";
57 static const char kUmaLogoutPrefix[] = "ShutdownTime."; 57 static const char kUmaLogoutPrefix[] = "ShutdownTime.";
58 58
59 // Name of file collecting login times. 59 // Name of file collecting login times.
60 static const FilePath::CharType kLoginTimes[] = FPL("login-times-sent"); 60 static const FilePath::CharType kLoginTimes[] = FPL("login-times-sent");
61 61
62 // Name of file collecting logout times. 62 // Name of file collecting logout times.
63 static const char kLogoutTimes[] = "logout-times-sent"; 63 static const char kLogoutTimes[] = "logout-times-sent";
64 64
65 static base::LazyInstance<BootTimesLoader> g_boot_times_loader(
66 base::LINKER_INITIALIZED);
67
65 BootTimesLoader::BootTimesLoader() 68 BootTimesLoader::BootTimesLoader()
66 : backend_(new Backend()), 69 : backend_(new Backend()),
67 have_registered_(false) { 70 have_registered_(false) {
68 login_time_markers_.reserve(30); 71 login_time_markers_.reserve(30);
69 logout_time_markers_.reserve(30); 72 logout_time_markers_.reserve(30);
70 } 73 }
71 74
72 // static 75 // static
73 BootTimesLoader* BootTimesLoader::Get() { 76 BootTimesLoader* BootTimesLoader::Get() {
74 return Singleton<BootTimesLoader>::get(); 77 return g_boot_times_loader.Pointer();
75 } 78 }
76 79
77 BootTimesLoader::Handle BootTimesLoader::GetBootTimes( 80 BootTimesLoader::Handle BootTimesLoader::GetBootTimes(
78 CancelableRequestConsumerBase* consumer, 81 CancelableRequestConsumerBase* consumer,
79 BootTimesLoader::GetBootTimesCallback* callback) { 82 BootTimesLoader::GetBootTimesCallback* callback) {
80 if (!g_browser_process->file_thread()) { 83 if (!g_browser_process->file_thread()) {
81 // This should only happen if Chrome is shutting down, so we don't do 84 // This should only happen if Chrome is shutting down, so we don't do
82 // anything. 85 // anything.
83 return 0; 86 return 0;
84 } 87 }
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 registrar_.Remove(this, NotificationType::LOGIN_AUTHENTICATION, 369 registrar_.Remove(this, NotificationType::LOGIN_AUTHENTICATION,
367 NotificationService::AllSources()); 370 NotificationService::AllSources());
368 } 371 }
369 } else if (type == NotificationType::LOAD_START) { 372 } else if (type == NotificationType::LOAD_START) {
370 // Make sure it's not some page load initiated by OOBE/login screen. 373 // Make sure it's not some page load initiated by OOBE/login screen.
371 if (!UserManager::Get()->user_is_logged_in()) 374 if (!UserManager::Get()->user_is_logged_in())
372 return; 375 return;
373 // Only log for first tab to render. Make sure this is only done once. 376 // Only log for first tab to render. Make sure this is only done once.
374 // If the network isn't connected we'll get a second LOAD_START once it is 377 // If the network isn't connected we'll get a second LOAD_START once it is
375 // and the page is reloaded. 378 // and the page is reloaded.
376 if (NetworkStateNotifier::Get()->is_connected()) { 379 if (NetworkStateNotifier::GetInstance()->is_connected()) {
377 // Post difference between first tab and login success time. 380 // Post difference between first tab and login success time.
378 AddLoginTimeMarker("LoginDone", true); 381 AddLoginTimeMarker("LoginDone", true);
379 RecordCurrentStats(kChromeFirstRender); 382 RecordCurrentStats(kChromeFirstRender);
380 // Post chrome first render stat. 383 // Post chrome first render stat.
381 registrar_.Remove(this, NotificationType::LOAD_START, 384 registrar_.Remove(this, NotificationType::LOAD_START,
382 NotificationService::AllSources()); 385 NotificationService::AllSources());
383 // Don't swamp the FILE thread right away. 386 // Don't swamp the FILE thread right away.
384 BrowserThread::PostDelayedTask( 387 BrowserThread::PostDelayedTask(
385 BrowserThread::FILE, FROM_HERE, 388 BrowserThread::FILE, FROM_HERE,
386 // This doesn't compile without std::string(...), as 389 // This doesn't compile without std::string(...), as
387 // NewRunnableFunction doesn't accept arrays. 390 // NewRunnableFunction doesn't accept arrays.
388 NewRunnableFunction(WriteTimes, 391 NewRunnableFunction(WriteTimes,
389 std::string(kLoginTimes), 392 std::string(kLoginTimes),
390 std::string(kUmaLogin), 393 std::string(kUmaLogin),
391 std::string(kUmaLoginPrefix), 394 std::string(kUmaLoginPrefix),
392 login_time_markers_), 395 login_time_markers_),
393 kLoginTimeWriteDelayMs); 396 kLoginTimeWriteDelayMs);
394 have_registered_ = false; 397 have_registered_ = false;
395 } else { 398 } else {
396 AddLoginTimeMarker("LoginRenderNoNetwork", false); 399 AddLoginTimeMarker("LoginRenderNoNetwork", false);
397 } 400 }
398 } 401 }
399 } 402 }
400 403
401 } // namespace chromeos 404 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698