blob: ac25f8caef8ac239dc8edd67e71386249a6e773d [file] [log] [blame]
// Copyright 2018 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 COMPONENTS_OPTIMIZATION_GUIDE_HINTS_COMPONENT_UTIL_H_
#define COMPONENTS_OPTIMIZATION_GUIDE_HINTS_COMPONENT_UTIL_H_
#include <memory>
namespace optimization_guide {
struct HintsComponentInfo;
namespace proto {
class Configuration;
} // namespace proto
// The UMA histogram used to record the result of processing the hints
// component.
extern const char kProcessHintsComponentResultHistogramString[];
// Enumerates the possible outcomes of processing the hints component. Used in
// UMA histograms, so the order of enumerators should not be changed.
//
// Keep in sync with OptimizationGuideProcessHintsResult in
// tools/metrics/histograms/enums.xml.
enum class ProcessHintsComponentResult {
SUCCESS,
FAILED_INVALID_PARAMETERS,
FAILED_READING_FILE,
FAILED_INVALID_CONFIGURATION,
// Insert new values before this line.
MAX,
};
// Processes the specified hints component, records the result in a UMA
// histogram, and, if successful, returns the component's Configuration
// protobuf. If unsuccessful, returns a nullptr.
std::unique_ptr<proto::Configuration> ProcessHintsComponent(
const HintsComponentInfo& info);
} // namespace optimization_guide
#endif // COMPONENTS_OPTIMIZATION_GUIDE_HINTS_COMPONENT_UTIL_H_