| Index: chrome/browser/policy/policy_load_status.h
|
| diff --git a/chrome/browser/policy/policy_load_status.h b/chrome/browser/policy/policy_load_status.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4f29de5ad67b1376c22834484a756a168fd12a7b
|
| --- /dev/null
|
| +++ b/chrome/browser/policy/policy_load_status.h
|
| @@ -0,0 +1,66 @@
|
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CHROME_BROWSER_POLICY_POLICY_LOAD_STATUS_H_
|
| +#define CHROME_BROWSER_POLICY_POLICY_LOAD_STATUS_H_
|
| +
|
| +#include <bitset>
|
| +
|
| +#include "base/basictypes.h"
|
| +
|
| +namespace base {
|
| +class HistogramBase;
|
| +}
|
| +
|
| +namespace policy {
|
| +
|
| +// UMA histogram enum for policy load status. Don't change existing constants,
|
| +// append additional constants to the end if needed.
|
| +enum PolicyLoadStatus {
|
| + // Policy load attempt started. This gets logged for each policy load attempt
|
| + // to get a baseline on the number of requests, and an arbitrary number of
|
| + // the below status codes may get added in addition.
|
| + POLICY_LOAD_STATUS_STARTED,
|
| + // System failed to determine whether there's policy.
|
| + POLICY_LOAD_STATUS_QUERY_FAILED,
|
| + // No policy present.
|
| + POLICY_LOAD_STATUS_NO_POLICY,
|
| + // Data inaccessible, such as non-local policy file.
|
| + POLICY_LOAD_STATUS_INACCCESSIBLE,
|
| + // Data missing, such as policy file not present.
|
| + POLICY_LOAD_STATUS_MISSING,
|
| + // Trying with Wow64 redirection disabled.
|
| + POLICY_LOAD_STATUS_WOW64_REDIRECTION_DISABLED,
|
| + // Data read error, for example file reading errors.
|
| + POLICY_LOAD_STATUS_READ_ERROR,
|
| + // Data too large to process.
|
| + POLICY_LOAD_STATUS_TOO_BIG,
|
| + // Parse error.
|
| + POLICY_LOAD_STATUS_PARSE_ERROR,
|
| +
|
| + // This must stay last.
|
| + POLICY_LOAD_STATUS_SIZE
|
| +};
|
| +
|
| +// A helper for generating policy load status UMA statistics that'll collect
|
| +// histogram samples for a policy load operation and records histogram samples
|
| +// for the status codes that were seen on destruction.
|
| +class PolicyLoadStatusSample {
|
| + public:
|
| + PolicyLoadStatusSample();
|
| + ~PolicyLoadStatusSample();
|
| +
|
| + // Adds a status code.
|
| + void Add(PolicyLoadStatus status);
|
| +
|
| + private:
|
| + std::bitset<POLICY_LOAD_STATUS_SIZE> status_bits_;
|
| + base::HistogramBase* histogram_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(PolicyLoadStatusSample);
|
| +};
|
| +
|
| +} // namespace policy
|
| +
|
| +#endif // CHROME_BROWSER_POLICY_POLICY_LOAD_STATUS_H_
|
|
|