summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-02 20:30:28 +0000
committerstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-02 20:30:28 +0000
commit2896c9185128996d17255a615bc2cc42f4bf6b7e (patch)
treeaa397fd385c55b4da43a086ad16e791486dc94d2
parentac154881c907f7d6541dc34c062072970fec607e (diff)
downloadchromium_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
-rw-r--r--chrome/browser/chromeos/login/login_display_host_impl.cc13
-rw-r--r--chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc4
-rw-r--r--chrome/browser/chromeos/system/statistics_provider.cc24
-rw-r--r--chrome/browser/chromeos/version_loader.cc3
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) {