1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "components/policy/core/common/policy_load_status.h" 6 7 #include "base/bind.h" 8 #include "base/metrics/histogram.h" 9 #include "base/strings/stringprintf.h" 10 #include "components/policy/core/common/policy_types.h" 11 12 namespace policy { 13 14 namespace { 15 16 const char kHistogramName[] = "Enterprise.PolicyLoadStatus"; 17 18 } // namespace 19 PolicyLoadStatusSampler()20PolicyLoadStatusSampler::PolicyLoadStatusSampler() { 21 Add(POLICY_LOAD_STATUS_STARTED); 22 } 23 ~PolicyLoadStatusSampler()24PolicyLoadStatusSampler::~PolicyLoadStatusSampler() {} 25 Add(PolicyLoadStatus status)26void PolicyLoadStatusSampler::Add(PolicyLoadStatus status) { 27 status_bits_[status] = true; 28 } 29 PolicyLoadStatusUmaReporter()30PolicyLoadStatusUmaReporter::PolicyLoadStatusUmaReporter() {} 31 ~PolicyLoadStatusUmaReporter()32PolicyLoadStatusUmaReporter::~PolicyLoadStatusUmaReporter() { 33 base::HistogramBase* histogram(base::LinearHistogram::FactoryGet( 34 kHistogramName, 1, POLICY_LOAD_STATUS_SIZE, POLICY_LOAD_STATUS_SIZE + 1, 35 base::Histogram::kUmaTargetedHistogramFlag)); 36 37 for (int i = 0; i < POLICY_LOAD_STATUS_SIZE; ++i) { 38 if (GetStatusSet()[i]) 39 histogram->Add(i); 40 } 41 } 42 43 } // namespace policy 44