| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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" |
| (...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 335 | 335 |
| 336 void BootTimesLoader::RecordChromeMainStats() { | 336 void BootTimesLoader::RecordChromeMainStats() { |
| 337 RecordStats(kChromeMain, chrome_main_stats_); | 337 RecordStats(kChromeMain, chrome_main_stats_); |
| 338 } | 338 } |
| 339 | 339 |
| 340 void BootTimesLoader::RecordLoginAttempted() { | 340 void BootTimesLoader::RecordLoginAttempted() { |
| 341 login_time_markers_.clear(); | 341 login_time_markers_.clear(); |
| 342 AddLoginTimeMarker("LoginStarted", false); | 342 AddLoginTimeMarker("LoginStarted", false); |
| 343 if (!have_registered_) { | 343 if (!have_registered_) { |
| 344 have_registered_ = true; | 344 have_registered_ = true; |
| 345 registrar_.Add(this, NotificationType::LOAD_START, | 345 registrar_.Add(this, chrome::LOAD_START, |
| 346 NotificationService::AllSources()); | 346 NotificationService::AllSources()); |
| 347 registrar_.Add(this, NotificationType::LOGIN_AUTHENTICATION, | 347 registrar_.Add(this, chrome::LOGIN_AUTHENTICATION, |
| 348 NotificationService::AllSources()); | 348 NotificationService::AllSources()); |
| 349 } | 349 } |
| 350 } | 350 } |
| 351 | 351 |
| 352 void BootTimesLoader::AddLoginTimeMarker( | 352 void BootTimesLoader::AddLoginTimeMarker( |
| 353 const std::string& marker_name, bool send_to_uma) { | 353 const std::string& marker_name, bool send_to_uma) { |
| 354 login_time_markers_.push_back(TimeMarker(marker_name, send_to_uma)); | 354 login_time_markers_.push_back(TimeMarker(marker_name, send_to_uma)); |
| 355 } | 355 } |
| 356 | 356 |
| 357 void BootTimesLoader::AddLogoutTimeMarker( | 357 void BootTimesLoader::AddLogoutTimeMarker( |
| 358 const std::string& marker_name, bool send_to_uma) { | 358 const std::string& marker_name, bool send_to_uma) { |
| 359 logout_time_markers_.push_back(TimeMarker(marker_name, send_to_uma)); | 359 logout_time_markers_.push_back(TimeMarker(marker_name, send_to_uma)); |
| 360 } | 360 } |
| 361 | 361 |
| 362 void BootTimesLoader::Observe( | 362 void BootTimesLoader::Observe( |
| 363 NotificationType type, | 363 int type, |
| 364 const NotificationSource& source, | 364 const NotificationSource& source, |
| 365 const NotificationDetails& details) { | 365 const NotificationDetails& details) { |
| 366 if (type == NotificationType::LOGIN_AUTHENTICATION) { | 366 if (type == chrome::LOGIN_AUTHENTICATION) { |
| 367 Details<AuthenticationNotificationDetails> auth_details(details); | 367 Details<AuthenticationNotificationDetails> auth_details(details); |
| 368 if (auth_details->success()) { | 368 if (auth_details->success()) { |
| 369 AddLoginTimeMarker("Authenticate", true); | 369 AddLoginTimeMarker("Authenticate", true); |
| 370 RecordCurrentStats(kLoginSuccess); | 370 RecordCurrentStats(kLoginSuccess); |
| 371 registrar_.Remove(this, NotificationType::LOGIN_AUTHENTICATION, | 371 registrar_.Remove(this, chrome::LOGIN_AUTHENTICATION, |
| 372 NotificationService::AllSources()); | 372 NotificationService::AllSources()); |
| 373 } | 373 } |
| 374 } else if (type == NotificationType::LOAD_START) { | 374 } else if (type == chrome::LOAD_START) { |
| 375 // Make sure it's not some page load initiated by OOBE/login screen. | 375 // Make sure it's not some page load initiated by OOBE/login screen. |
| 376 if (!UserManager::Get()->user_is_logged_in()) | 376 if (!UserManager::Get()->user_is_logged_in()) |
| 377 return; | 377 return; |
| 378 // Only log for first tab to render. Make sure this is only done once. | 378 // Only log for first tab to render. Make sure this is only done once. |
| 379 // If the network isn't connected we'll get a second LOAD_START once it is | 379 // If the network isn't connected we'll get a second LOAD_START once it is |
| 380 // and the page is reloaded. | 380 // and the page is reloaded. |
| 381 if (NetworkStateNotifier::GetInstance()->is_connected()) { | 381 if (NetworkStateNotifier::GetInstance()->is_connected()) { |
| 382 // Post difference between first tab and login success time. | 382 // Post difference between first tab and login success time. |
| 383 AddLoginTimeMarker("LoginDone", true); | 383 AddLoginTimeMarker("LoginDone", true); |
| 384 RecordCurrentStats(kChromeFirstRender); | 384 RecordCurrentStats(kChromeFirstRender); |
| 385 // Post chrome first render stat. | 385 // Post chrome first render stat. |
| 386 registrar_.Remove(this, NotificationType::LOAD_START, | 386 registrar_.Remove(this, chrome::LOAD_START, |
| 387 NotificationService::AllSources()); | 387 NotificationService::AllSources()); |
| 388 // Don't swamp the FILE thread right away. | 388 // Don't swamp the FILE thread right away. |
| 389 BrowserThread::PostDelayedTask( | 389 BrowserThread::PostDelayedTask( |
| 390 BrowserThread::FILE, FROM_HERE, | 390 BrowserThread::FILE, FROM_HERE, |
| 391 // This doesn't compile without std::string(...), as | 391 // This doesn't compile without std::string(...), as |
| 392 // NewRunnableFunction doesn't accept arrays. | 392 // NewRunnableFunction doesn't accept arrays. |
| 393 NewRunnableFunction(WriteTimes, | 393 NewRunnableFunction(WriteTimes, |
| 394 std::string(kLoginTimes), | 394 std::string(kLoginTimes), |
| 395 std::string(kUmaLogin), | 395 std::string(kUmaLogin), |
| 396 std::string(kUmaLoginPrefix), | 396 std::string(kUmaLoginPrefix), |
| 397 login_time_markers_), | 397 login_time_markers_), |
| 398 kLoginTimeWriteDelayMs); | 398 kLoginTimeWriteDelayMs); |
| 399 have_registered_ = false; | 399 have_registered_ = false; |
| 400 } else { | 400 } else { |
| 401 AddLoginTimeMarker("LoginRenderNoNetwork", false); | 401 AddLoginTimeMarker("LoginRenderNoNetwork", false); |
| 402 } | 402 } |
| 403 } | 403 } |
| 404 } | 404 } |
| 405 | 405 |
| 406 } // namespace chromeos | 406 } // namespace chromeos |
| OLD | NEW |