diff options
author | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-02 20:30:28 +0000 |
---|---|---|
committer | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-02 20:30:28 +0000 |
commit | 2896c9185128996d17255a615bc2cc42f4bf6b7e (patch) | |
tree | aa397fd385c55b4da43a086ad16e791486dc94d2 | |
parent | ac154881c907f7d6541dc34c062072970fec607e (diff) | |
download | chromium_src-2896c9185128996d17255a615bc2cc42f4bf6b7e.zip chromium_src-2896c9185128996d17255a615bc2cc42f4bf6b7e.tar.gz chromium_src-2896c9185128996d17255a615bc2cc42f4bf6b7e.tar.bz2 |
Reduce and delay calls to StatisticsProvider that might block
BUG=302798
R=xiyuan@chromium.org
Review URL: https://codereview.chromium.org/25494004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226552 0039d316-1c4b-4281-b951-d872f2087c98
4 files changed, 22 insertions, 22 deletions
diff --git a/chrome/browser/chromeos/login/login_display_host_impl.cc b/chrome/browser/chromeos/login/login_display_host_impl.cc index 98f6d51..14f6095 100644 --- a/chrome/browser/chromeos/login/login_display_host_impl.cc +++ b/chrome/browser/chromeos/login/login_display_host_impl.cc @@ -259,13 +259,6 @@ LoginDisplayHostImpl::LoginDisplayHostImpl(const gfx::Rect& background_bounds) << " wait_for_wp_load_: " << waiting_for_wallpaper_load_ << " wait_for_pods_: " << waiting_for_user_pods_ << " init_webui_hidden_: " << initialize_webui_hidden_; - - if (system::keyboard_settings::ForceKeyboardDrivenUINavigation()) { - views::FocusManager::set_arrow_key_traversal_enabled(true); - - focus_ring_controller_.reset(new FocusRingController); - focus_ring_controller_->SetVisible(true); - } } LoginDisplayHostImpl::~LoginDisplayHostImpl() { @@ -290,6 +283,12 @@ LoginDisplayHostImpl::~LoginDisplayHostImpl() { LoginDisplay* LoginDisplayHostImpl::CreateLoginDisplay( LoginDisplay::Delegate* delegate) { + if (system::keyboard_settings::ForceKeyboardDrivenUINavigation()) { + views::FocusManager::set_arrow_key_traversal_enabled(true); + + focus_ring_controller_.reset(new FocusRingController); + focus_ring_controller_->SetVisible(true); + } webui_login_display_ = new WebUILoginDisplay(delegate); webui_login_display_->set_background_bounds(background_bounds()); return webui_login_display_; diff --git a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc index 964857a..abe1765 100644 --- a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc +++ b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc @@ -9,6 +9,7 @@ #include "base/prefs/pref_registry_simple.h" #include "base/prefs/pref_service.h" #include "chrome/browser/chromeos/attestation/attestation_policy_observer.h" +#include "chrome/browser/chromeos/login/startup_utils.h" #include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h" #include "chrome/browser/chromeos/policy/enrollment_handler_chromeos.h" #include "chrome/browser/chromeos/policy/enterprise_install_attributes.h" @@ -138,7 +139,8 @@ std::string DeviceCloudPolicyManagerChromeOS::GetDeviceRequisition() const { std::string requisition; const PrefService::Preference* pref = local_state_->FindPreference( prefs::kDeviceEnrollmentRequisition); - if (pref->IsDefaultValue()) { + if (pref->IsDefaultValue() && !chromeos::StartupUtils::IsOobeCompleted()) { + // OEM statistics are only loaded when OOBE is not completed. requisition = GetMachineStatistic(chromeos::system::kOemDeviceRequisitionKey); } else { diff --git a/chrome/browser/chromeos/system/statistics_provider.cc b/chrome/browser/chromeos/system/statistics_provider.cc index a8bb149..e5fd3dc 100644 --- a/chrome/browser/chromeos/system/statistics_provider.cc +++ b/chrome/browser/chromeos/system/statistics_provider.cc @@ -120,15 +120,9 @@ void StatisticsProviderImpl::Init() { bool StatisticsProviderImpl::GetMachineStatistic( const std::string& name, std::string* result) { - // TODO(stevenjb): These should be fatal once fixed. crbug.com/302798. - if (!initialized_) { - LOG(ERROR) << "GetMachineStatistic called before initialized: " << name; - return false; - } - if (!load_statistics_started_) { - LOG(ERROR) << "GetMachineStatistic called before load started: " << name; - return false; - } + CHECK(initialized_); + CHECK(load_statistics_started_) + << "GetMachineStatistic called before load started: " << name; VLOG(1) << "Statistic is requested for " << name; // Block if the statistics are not loaded yet. Per LOG(WARNING) below, @@ -142,16 +136,20 @@ bool StatisticsProviderImpl::GetMachineStatistic( // very early stage of the browser startup. The statistic name should be // helpful to identify the caller. if (!on_statistics_loaded_.IsSignaled()) { - LOG(WARNING) << "Waiting to load statistics. Requested statistic: " - << name; // http://crbug.com/125385 + base::Time start_time = base::Time::Now(); base::ThreadRestrictions::ScopedAllowWait allow_wait; on_statistics_loaded_.TimedWait(base::TimeDelta::FromSeconds(kTimeoutSecs)); - + base::TimeDelta dtime = base::Time::Now() - start_time; if (!on_statistics_loaded_.IsSignaled()) { - LOG(ERROR) << "Statistics weren't loaded after waiting! " + LOG(ERROR) << "Statistics weren't loaded after waiting " + << dtime.InMilliseconds() << "ms. " << "Requested statistic: " << name; return false; + } else { + LOG(ERROR) << "Statistic loaded after waiting " + << dtime.InMilliseconds() << "ms. " + << "Requested statistic: " << name; } } diff --git a/chrome/browser/chromeos/version_loader.cc b/chrome/browser/chromeos/version_loader.cc index c25c9c5a..60e0017 100644 --- a/chrome/browser/chromeos/version_loader.cc +++ b/chrome/browser/chromeos/version_loader.cc @@ -106,7 +106,8 @@ void VersionLoader::Backend::GetVersion(VersionFormat format, std::string key = (format == VERSION_FULL) ? kFullVersionKey : kVersionKey; if (!base::SysInfo::GetLsbReleaseValue(key, version)) { - LOG(ERROR) << "No LSB version key: " << key; + LOG_IF(ERROR, base::SysInfo::IsRunningOnChromeOS()) + << "No LSB version key: " << key; *version = "0.0.0.0"; } if (format == VERSION_SHORT_WITH_DATE) { |