// Copyright 2016 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_BROWSER_WATCHER_STABILITY_DATA_NAMES_H_
#define COMPONENTS_BROWSER_WATCHER_STABILITY_DATA_NAMES_H_

namespace browser_watcher {

// Alphabetical list of stability data names.
extern const char kStabilityChannel[];
extern const char kStabilityExecutionPhase[];
extern const char kStabilityKeepAlive[];
extern const char kStabilityPlatform[];
extern const char kStabilityProcessType[];
extern const char kStabilityProduct[];
extern const char kStabilityReporterChannel[];
extern const char kStabilityReporterPlatform[];
extern const char kStabilityReporterProduct[];
extern const char kStabilityReporterVersion[];
extern const char kStabilityRestartAllowed[];
extern const char kStabilitySpecialBuild[];
extern const char kStabilityStartTimestamp[];
extern const char kStabilityVersion[];

}  // namespace browser_watcher

#endif  // COMPONENTS_BROWSER_WATCHER_STABILITY_DATA_NAMES_H_
