1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_VARIATIONS_METRICS_H_
#define COMPONENTS_VARIATIONS_METRICS_H_
#include "base/component_export.h"
#include "build/build_config.h"
namespace variations {
// The result of importing a seed during Android or iOS first run.
// Note: UMA histogram enum - don't re-order or remove entries.
enum class FirstRunSeedImportResult {
kSuccess = 0,
kFailNoCallback = 1,
kFailNoFirstRunSeed = 2,
kFailStoreFailed = 3,
kFailInvalidResponseDate = 4,
kMaxValue = kFailInvalidResponseDate
};
// The result of attempting to load a variations seed during startup.
//
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
//
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.variations
enum class LoadSeedResult {
kSuccess = 0,
kEmpty = 1,
// kCorrupt = 2, // Deprecated.
kInvalidSignature = 3,
kCorruptBase64 = 4,
kCorruptProtobuf = 5,
kCorruptGzip = 6,
kLoadTimedOut = 7,
kLoadInterrupted = 8,
kLoadOtherFailure = 9,
kExceedsUncompressedSizeLimit = 10,
kMaxValue = kExceedsUncompressedSizeLimit,
};
// The result of attempting to store a variations seed received from the server.
//
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class StoreSeedResult {
kSuccess = 0,
// kFailedEmpty = 1, // Deprecated.
kFailedParse = 2,
kFailedSignature = 3,
kFailedGzip = 4,
// kDeltaCount = 5, // Deprecated.
kFailedDeltaReadSeed = 6,
kFailedDeltaApply = 7,
kFailedDeltaStore = 8,
kFailedUngzip = 9,
kFailedEmptyGzipContents = 10,
kFailedUnsupportedSeedFormat = 11,
// The following are not so much a result of the seed store, but rather
// counting the types of seeds the SeedStore() function saw. Kept in the same
// histogram for efficiency and convenience of comparing against the other
// values.
kGzipDeltaCount = 12,
kNonGzipDeltaCount = 13,
kGzipFullCount = 14,
kNonGzipFullCount = 15,
kMaxValue = kNonGzipFullCount,
};
// The result of updating the date associated with an existing stored variations
// seed.
// Note: UMA histogram enum - don't re-order or remove entries.
enum class UpdateSeedDateResult {
NO_OLD_DATE,
NEW_DATE_IS_OLDER,
SAME_DAY,
NEW_DAY,
ENUM_SIZE
};
// The result of verifying a variation seed's signature.
// Note: UMA histogram enum - don't re-order or remove entries.
enum class VerifySignatureResult {
MISSING_SIGNATURE,
DECODE_FAILED,
INVALID_SIGNATURE,
INVALID_SEED,
VALID_SIGNATURE,
ENUM_SIZE
};
// Describes instance manipulations applied to data.
struct InstanceManipulations {
const bool gzip_compressed;
const bool delta_compressed;
};
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
// Records the result of importing a seed during Android first run.
COMPONENT_EXPORT(VARIATIONS)
void RecordFirstRunSeedImportResult(FirstRunSeedImportResult result);
#endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
// Records the result of attempting to load the latest variations seed on
// startup.
COMPONENT_EXPORT(VARIATIONS) void RecordLoadSeedResult(LoadSeedResult state);
// Records the result of attempting to load the safe variations seed on startup.
COMPONENT_EXPORT(VARIATIONS)
void RecordLoadSafeSeedResult(LoadSeedResult state);
// Records the result of attempting to store a variations seed received from the
// server.
COMPONENT_EXPORT(VARIATIONS) void RecordStoreSeedResult(StoreSeedResult result);
// Records the result of attempting to store a seed as the safe seed.
COMPONENT_EXPORT(VARIATIONS)
void RecordStoreSafeSeedResult(StoreSeedResult result);
// Reports to UMA that the seed format specified by the server is unsupported.
COMPONENT_EXPORT(VARIATIONS) void ReportUnsupportedSeedFormatError();
// Records the instance manipulations a seed was received with.
COMPONENT_EXPORT(VARIATIONS)
void RecordSeedInstanceManipulations(const InstanceManipulations& im);
} // namespace variations
#endif // COMPONENTS_VARIATIONS_METRICS_H_
|