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

content / browser / interest_group / additional_bid_result.h [blame]

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CONTENT_BROWSER_INTEREST_GROUP_ADDITIONAL_BID_RESULT_H_
#define CONTENT_BROWSER_INTEREST_GROUP_ADDITIONAL_BID_RESULT_H_

namespace content {

// Result of decoding an additional bid. Used for histograms. These values
// are persisted to logs. Entries should not be renumbered and numeric values
// should never be reused.
enum class AdditionalBidResult {
  // The additional bid was sent for scoring to participate in the auction.
  kSentForScoring = 0,

  // The additional bid was suppressed because of the presence of at least one
  // of its specified negative targeting interest groups.
  kNegativeTargeted = 1,

  // The additional bid was rejected because the signed additional bid in the
  // Ad-Auction-Additional-Bid response header was not a valid base64 string.
  kRejectedDueToInvalidBase64 = 2,

  // The additional bid was rejected because the signed additional bid was
  // invalid JSON, and so failed to parse.
  kRejectedDueToSignedBidJsonParseError = 3,

  // The additional bid was rejected because the signed additional bid JSON
  // was not structured as expected.
  kRejectedDueToSignedBidDecodeError = 4,

  // The additional bid was rejected because the additional bid from inside
  // the signed additional bid was invalid JSON.
  kRejectedDueToJsonParseError = 5,

  // The additional bid was rejected because the additional bid from inside
  // the signed additional bid was not structured as expected. This is the
  // result used when the replay-prevention fields - auctionNonce, seller and
  // topLevelSeller - was missing or didn't match those of the auction. This
  // is also the result used when the additional bid owner was not found in
  // the auction's interestGroupBuyers.
  kRejectedDueToDecodeError = 6,

  // The additional bid was rejected because the additional bid's owner was
  // not allowed to bid in that auction by IsInterestGroupAPIAllowed.
  kRejectedDueToBuyerNotAllowed = 7,

  // The additional bid was rejected because the additional bid specified a
  // currency that didn't match the currency associated with that buyer.
  kRejectedDueToCurrencyMismatch = 8,

  // Decoding failed because the decoder service is not available due to
  // page being in process of unload.
  kRejectedDecoderShutDown = 9,

  kMaxValue = kRejectedDecoderShutDown
};

}  // namespace content

#endif  // CONTENT_BROWSER_INTEREST_GROUP_ADDITIONAL_BID_RESULT_H_