#include <cstddef>
#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include <stdint.h>
#include <functional>
#include <limits>
#include <map>
#include <memory>
#include <optional>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
#include "base/base64.h"
#include "base/check.h"
#include "base/containers/contains.h"
#include "base/feature_list.h"
#include "base/functional/callback_helpers.h"
#include "base/json/json_writer.h"
#include "base/location.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/notreached.h"
#include "base/process/process.h"
#include "base/run_loop.h"
#include "base/strings/strcat.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
#include "base/test/bind.h"
#include "base/test/metrics/histogram_tester.h"
#include "base/test/scoped_feature_list.h"
#include "base/test/task_environment.h"
#include "base/time/time.h"
#include "base/uuid.h"
#include "build/build_config.h"
#include "components/cbor/values.h"
#include "components/cbor/writer.h"
#include "components/ukm/test_ukm_recorder.h"
#include "content/browser/aggregation_service/aggregation_service_features.h"
#include "content/browser/fenced_frame/fenced_frame_reporter.h"
#include "content/browser/interest_group/ad_auction_page_data.h"
#include "content/browser/interest_group/additional_bids_test_util.h"
#include "content/browser/interest_group/auction_metrics_recorder.h"
#include "content/browser/interest_group/auction_nonce_manager.h"
#include "content/browser/interest_group/auction_process_manager.h"
#include "content/browser/interest_group/auction_runner.h"
#include "content/browser/interest_group/auction_worklet_manager.h"
#include "content/browser/interest_group/debuggable_auction_worklet.h"
#include "content/browser/interest_group/debuggable_auction_worklet_tracker.h"
#include "content/browser/interest_group/interest_group_auction.h"
#include "content/browser/interest_group/interest_group_k_anonymity_manager.h"
#include "content/browser/interest_group/interest_group_manager_impl.h"
#include "content/browser/interest_group/interest_group_storage.h"
#include "content/browser/interest_group/mock_auction_process_manager.h"
#include "content/browser/interest_group/test_interest_group_manager_impl.h"
#include "content/browser/interest_group/test_interest_group_private_aggregation_manager.h"
#include "content/browser/renderer_host/render_frame_host_impl.h"
#include "content/public/browser/auction_result.h"
#include "content/public/browser/page.h"
#include "content/public/browser/site_instance.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/test_renderer_host.h"
#include "content/public/test/test_utils.h"
#include "content/services/auction_worklet/auction_v8_helper.h"
#include "content/services/auction_worklet/auction_worklet_service_impl.h"
#include "content/services/auction_worklet/public/cpp/real_time_reporting.h"
#include "content/services/auction_worklet/public/mojom/auction_shared_storage_host.mojom.h"
#include "content/services/auction_worklet/public/mojom/auction_worklet_service.mojom.h"
#include "content/services/auction_worklet/public/mojom/bidder_worklet.mojom.h"
#include "content/services/auction_worklet/public/mojom/private_aggregation_request.mojom.h"
#include "content/services/auction_worklet/public/mojom/real_time_reporting.mojom.h"
#include "content/services/auction_worklet/public/mojom/seller_worklet.mojom.h"
#include "content/services/auction_worklet/worklet_devtools_debug_test_util.h"
#include "content/services/auction_worklet/worklet_test_util.h"
#include "content/test/test_content_browser_client.h"
#include "crypto/sha2.h"
#include "mojo/public/cpp/bindings/associated_remote.h"
#include "mojo/public/cpp/bindings/pending_associated_remote.h"
#include "mojo/public/cpp/system/functions.h"
#include "net/http/http_status_code.h"
#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
#include "services/data_decoder/public/cpp/test_support/in_process_data_decoder.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
#include "services/network/public/mojom/client_security_state.mojom.h"
#include "services/network/test/test_url_loader_factory.h"
#include "testing/gmock/include/gmock/gmock-matchers.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/features_generated.h"
#include "third_party/blink/public/common/interest_group/ad_auction_constants.h"
#include "third_party/blink/public/common/interest_group/ad_auction_currencies.h"
#include "third_party/blink/public/common/interest_group/interest_group.h"
#include "third_party/blink/public/common/interest_group/test_interest_group_builder.h"
#include "third_party/blink/public/mojom/aggregation_service/aggregatable_report.mojom-shared.h"
#include "third_party/blink/public/mojom/fenced_frame/fenced_frame.mojom-shared.h"
#include "third_party/blink/public/mojom/interest_group/interest_group_types.mojom.h"
#include "third_party/blink/public/mojom/private_aggregation/private_aggregation_host.mojom.h"
#include "third_party/zlib/google/compression_utils.h"
TestDevToolsAgentClient;
HasSubstr;
namespace content {
class ProcessHandleTestPeer { … };
namespace {
InterestGroupKey;
PostAuctionSignals;
ReportingDestination;
PrivateAggregationRequests;
RealTimeReportingType;
RealTimeReportingContributions;
const uint8_t kTestPublicKey[] = …;
const char kBase64PublicKey1[] = …;
const uint8_t kPrivateKey1[] = …;
const char kBase64PublicKey2[] = …;
const uint8_t kPrivateKey2[] = …;
std::string kBidder1Name{ … };
const std::string kBidder1NameAlt{ … };
const char kBidder1DebugLossReportUrl[] = …;
const char kBidder1DebugWinReportUrl[] = …;
const char kBidder2DebugLossReportUrl[] = …;
const char kBidder2DebugWinReportUrl[] = …;
const char kBidderDebugLossReportBaseUrl[] = …;
const char kBidderDebugWinReportBaseUrl[] = …;
const char kSellerDebugLossReportBaseUrl[] = …;
const char kSellerDebugWinReportBaseUrl[] = …;
const char kBidder1SignalsJson[] = …;
const char kBidder2SignalsJson[] = …;
const char kPostAuctionSignalsPlaceholder[] = …;
const char kTopLevelPostAuctionSignalsPlaceholder[] = …;
const auction_worklet::mojom::PrivateAggregationRequestPtr
kExpectedGenerateBidPrivateAggregationRequest = …;
const auction_worklet::mojom::PrivateAggregationRequestPtr
kExpectedKAnonFailureGenerateBidPrivateAggregationRequest = …;
const auction_worklet::mojom::PrivateAggregationRequestPtr
kExpectedReportWinPrivateAggregationRequest = …;
const auction_worklet::mojom::PrivateAggregationRequestPtr
kExpectedScoreAdPrivateAggregationRequest = …;
const auction_worklet::mojom::PrivateAggregationRequestPtr
kExpectedReportResultPrivateAggregationRequest = …;
template <typename... Ts>
auto ElementsAreRequests(Ts&... requests) { … }
template <typename... Ts>
auto ElementsAreContributions(Ts&... contributions) { … }
std::string MakeBidScript(const url::Origin& seller,
const std::string& bid,
const std::string& render_url,
int num_ad_components,
const url::Origin& interest_group_owner,
const std::string& interest_group_name,
bool has_signals = false,
const std::string& signal_key = "",
const std::string& signal_val = "",
bool report_post_auction_signals = false,
const std::string& debug_loss_report_url = "",
const std::string& debug_win_report_url = "",
bool report_reject_reason = false) { … }
constexpr char kReportWinNoUrl[] = …;
constexpr char kSimpleReportWin[] = …;
std::string MakeFilteringBidScript(int bid) { … }
std::string MakeConstBidScript(int bid,
const std::string& url,
const std::string& bid_currency = "USD") { … }
constexpr char kReportWinExpectNullAuctionSignals[] = …;
constexpr char kMinimumDecisionScript[] = …;
std::string MakeDecisionScript(
const GURL& decision_logic_url,
std::optional<GURL> send_report_url = std::nullopt,
bool bid_from_component_auction_wins = false,
bool report_post_auction_signals = false,
const std::string& debug_loss_report_url = "",
const std::string& debug_win_report_url = "",
bool report_top_level_post_auction_signals = false) { … }
std::string MakeAuctionScript(bool report_post_auction_signals = false,
const GURL& decision_logic_url = GURL(
"https://adstuff.publisher1.com/auction.js"),
const std::string& debug_loss_report_url = "",
const std::string& debug_win_report_url = "") { … }
std::string MakeAuctionScriptNoReportUrl(
const GURL& decision_logic_url =
GURL("https://adstuff.publisher1.com/auction.js"),
bool report_post_auction_signals = false,
const std::string& debug_loss_report_url = "",
const std::string& debug_win_report_url = "") { … }
const char kBasicReportResult[] = …;
std::string MakeAuctionScriptReject2(
const std::string& reject_reason = "not-available") { … }
std::string MakeAuctionScriptReject1And2(
const std::string& debug_loss_report_url = "",
const std::string& debug_win_report_url = "") { … }
std::string MakeBidScriptSupportsTie() { … }
std::string MakeAuctionScriptSupportsTie() { … }
std::string MakeBidScriptWithForDebuggingOnlyInCooldownOrLockout() { … }
std::string MakeAuctionScriptWithForDebuggingOnlyInCooldownOrLockout() { … }
std::string MakeBidScriptWithRealTimeReporting(int bid) { … }
const char kDecisionScriptWithRealTimeReporting[] = …;
struct BiddingSignalsPerInterestGroupData { … };
std::string MakeBiddingSignalsWithPerInterestGroupData(
std::vector<BiddingSignalsPerInterestGroupData> per_interest_group_data) { … }
const GURL ReportWinUrl(
double bid,
const std::optional<blink::AdCurrency>& bid_currency,
double highest_scoring_other_bid,
const std::optional<blink::AdCurrency>& highest_scoring_other_bid_currency,
bool made_highest_scoring_other_bid,
const std::string& url = "https://buyer-reporting.example.com/") { … }
const GURL DebugReportUrl(
const std::string& url,
const PostAuctionSignals& signals,
std::optional<double> bid = std::nullopt,
std::optional<std::string> reject_reason = std::nullopt) { … }
const GURL ComponentSellerDebugReportUrl(
const std::string& url,
const PostAuctionSignals& signals,
const PostAuctionSignals& top_level_signals,
double bid) { … }
const auction_worklet::mojom::PrivateAggregationRequestPtr
BuildPrivateAggregationRequest(
absl::uint128 bucket,
int value,
blink::mojom::DebugModeDetailsPtr debug_mode_details = nullptr,
std::optional<uint64_t> filtering_id = std::nullopt) { … }
auction_worklet::mojom::EventTypePtr Reserved(
auction_worklet::mojom::ReservedEventType reserved_event_type) { … }
auction_worklet::mojom::EventTypePtr NonReserved(
const std::string& event_type) { … }
const auction_worklet::mojom::PrivateAggregationRequestPtr
BuildPrivateAggregationForEventRequest(
absl::uint128 bucket,
int value,
auction_worklet::mojom::EventTypePtr event_type,
std::optional<uint64_t> filtering_id = std::nullopt) { … }
auction_worklet::mojom::PrivateAggregationRequestPtr
BuildPrivateAggregationForBaseValue(
absl::uint128 bucket,
auction_worklet::mojom::BaseValue base_value,
auction_worklet::mojom::EventTypePtr event_type,
std::optional<uint64_t> filtering_id = std::nullopt) { … }
const auction_worklet::mojom::RealTimeReportingContributionPtr
BuildRealTimeContribution(int32_t bucket, double priority_weight) { … }
void AuthorizeKAnonAd(const blink::InterestGroup::Ad& ad,
const char* url,
StorageInterestGroup& group) { … }
void AuthorizeKAnonReporting(const blink::InterestGroup::Ad& ad,
const char* url,
StorageInterestGroup& group,
base::optional_ref<const std::string>
selected_buyer_and_seller_reporting_id) { … }
void AuthorizeKAnonAdComponent(const blink::InterestGroup::Ad& ad,
const char* url,
StorageInterestGroup& group) { … }
quiche::ObliviousHttpRequest::Context
CreateBiddingAndAuctionEncryptionContext() { … }
class SameProcessAuctionProcessManager : public AuctionProcessManager { … };
MATCHER_P2(HasMetricWithValue, key, matcher, "") { … }
MATCHER_P(HasMetric, key, "") { … }
MATCHER_P(DoesNotHaveMetric, key, "") { … }
MATCHER_P2(OnlyHasMetricIf, key, condition, "") { … }
MATCHER_P2(HasMetricWithValueOrNotIfNullOpt, key, matcher, "") { … }
class EventReportingAttestationBrowserClient : public TestContentBrowserClient { … };
class AuctionRunnerTest : public RenderViewHostTestHarness,
public AuctionWorkletManager::Delegate,
public DebuggableAuctionWorkletTracker::Observer { … };
TEST_F(AuctionRunnerTest, NullBuyers) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionNullBuyers) { … }
TEST_F(AuctionRunnerTest, EmptyBuyers) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionEmptyBuyers) { … }
TEST_F(AuctionRunnerTest, NoInterestGroups) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionNoInterestGroups) { … }
TEST_F(AuctionRunnerTest, OneInterestGroupNoAds) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionOneInterestGroupNoAds) { … }
TEST_F(AuctionRunnerTest, OneInterestGroupNoBidScript) { … }
TEST_F(AuctionRunnerTest, OneInterestGroup) { … }
TEST_F(AuctionRunnerTest, ExperimentId) { … }
TEST_F(AuctionRunnerTest, ExperimentIdPerBuyer) { … }
TEST_F(AuctionRunnerTest, Basic) { … }
TEST_F(AuctionRunnerTest, BasicCurrencyCheck) { … }
TEST_F(AuctionRunnerTest, BasicCurrencyRedact) { … }
TEST_F(AuctionRunnerTest, BasicCurrencyRedact2) { … }
TEST_F(AuctionRunnerTest, BasicDebug) { … }
TEST_F(AuctionRunnerTest, WorkletServiceGetNextSellerWorkletThreadIndex) { … }
TEST_F(AuctionRunnerTest, BidderThreadPoolExpanded) { … }
TEST_F(AuctionRunnerTest, BidderThreadPoolPartiallyResetAndSubsequentlyReused) { … }
TEST_F(AuctionRunnerTest, PauseBidder) { … }
TEST_F(AuctionRunnerTest, PauseSeller) { … }
TEST_F(AuctionRunnerTest, ComponentAuction) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionMixedCurrency) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionMixedCurrency2) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionCurrencyPassThrough) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionCurrencyPassThroughCheck) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionTopSellerRejectsBids) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionSharedBuyer) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionAcceptsBidRejectsBid) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionOneComponentTwoBidders) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionNoTopLevelReportResultSignals) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionModifiesBid) { … }
TEST_F(AuctionRunnerTest, DisallowedSeller) { … }
TEST_F(AuctionRunnerTest, DisallowedComponentAuctionSeller) { … }
TEST_F(AuctionRunnerTest, DisallowedComponentAuctionOneSeller) { … }
TEST_F(AuctionRunnerTest, DisallowedBuyers) { … }
TEST_F(AuctionRunnerTest, DisallowedSingleBuyer) { … }
TEST_F(AuctionRunnerTest, DisallowedComponentAuctionBuyers) { … }
TEST_F(AuctionRunnerTest, DisallowedComponentAuctionSingleBuyer) { … }
TEST_F(AuctionRunnerTest, DisallowedAsOtherParticipant) { … }
TEST_F(AuctionRunnerTest, OneBidOne404) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionOneSeller404) { … }
TEST_F(AuctionRunnerTest, OneBidOneNotMade) { … }
TEST_F(AuctionRunnerTest, NoBids) { … }
TEST_F(AuctionRunnerTest, NoBidMadeByScript) { … }
TEST_F(AuctionRunnerTest, SellerRejectsAll) { … }
TEST_F(AuctionRunnerTest, SellerRejectsOne) { … }
TEST_F(AuctionRunnerTest, NoSellerScript) { … }
TEST_F(AuctionRunnerTest, NoTrustedBiddingSignals) { … }
TEST_F(AuctionRunnerTest, TrustedBiddingSignals404) { … }
TEST_F(AuctionRunnerTest, NoReportResultUrl) { … }
TEST_F(AuctionRunnerTest, NoReportWinUrl) { … }
TEST_F(AuctionRunnerTest, NeitherReportUrl) { … }
TEST_F(AuctionRunnerTest, NoReportResult) { … }
TEST_F(AuctionRunnerTest, TrustedScoringSignals) { … }
TEST_F(AuctionRunnerTest, PromiseCheckNoBidders) { … }
TEST_F(AuctionRunnerTest, PromiseAuctionSignals) { … }
TEST_F(AuctionRunnerTest, PromiseAuctionSignalsDeliveredBeforeWorklet) { … }
TEST_F(AuctionRunnerTest, PromiseSignals) { … }
TEST_F(AuctionRunnerTest, PromiseSignals2) { … }
TEST_F(AuctionRunnerTest, PromiseSignals3) { … }
TEST_F(AuctionRunnerTest, PromiseSignals4) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsAdditionalBids) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsParallelism) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsResolveAfterAbort) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsComponentAuction) { … }
TEST_F(AuctionRunnerTest, PromiseAndNetworkErrors) { … }
TEST_F(AuctionRunnerTest, PromiseAndNetworkErrors2) { … }
TEST_F(AuctionRunnerTest, PromiseAndNetworkErrors3) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsComponentAuctionRejected) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsSellerDependency) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsBadAuctionId) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsBadAuctionId2) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsBadAuctionId3) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsBadAuctionId4) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsBadAuctionId5) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsBadAuctionId6) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsBadAuctionIdAdditionalBids) { … }
TEST_F(AuctionRunnerTest, AdditionalBidAliasesInterestGroup) { … }
TEST_F(AuctionRunnerTest, AdditionalBidDistinctFromInterestGroup) { … }
class AuctionRunnerDfssAdSlotTest : public AuctionRunnerTest { … };
TEST_F(AuctionRunnerDfssAdSlotTest,
PromiseSignalsBadAuctionIdDirectFromSellerSignalsHeaderAdSlot) { … }
TEST_F(AuctionRunnerTest, PromiseInvalidDirectFromSellerSignals) { … }
TEST_F(AuctionRunnerDfssAdSlotTest,
PromiseDirectFromSellerSignalsHeaderAdSlot) { … }
TEST_F(AuctionRunnerDfssAdSlotTest,
PromiseNulloptDirectFromSellerSignalsHeaderAdSlot) { … }
TEST_F(AuctionRunnerDfssAdSlotTest,
PromiseDirectFromSellerSignalsHeaderAdSlotResolvesBeforePromises) { … }
TEST_F(AuctionRunnerDfssAdSlotTest,
PromiseDirectFromSellerSignalsHeaderAdSlotReportsErrors) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsUpdateNonPromise) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsUpdateNonPromise2) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsUpdateNonPromise3) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsUpdateNonPromise4) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsUpdateNonPromise5) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsUpdateNonPromise6) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsUpdateNonPromise7) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsUpdateNonPromise8) { … }
TEST_F(AuctionRunnerTest, PromiseServerResponseUpdateNonPromise) { … }
TEST_F(AuctionRunnerTest, PromiseServerResponseResolveTwice) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsUpdateNonPromise9) { … }
TEST_F(AuctionRunnerTest, PromiseSignalsUpdateNonPromiseAdditionalBids) { … }
TEST_F(AuctionRunnerDfssAdSlotTest,
PromiseSignalsUpdateNonPromiseDirectFromSellerSignalsHeaderAdSlot) { … }
class AuctionRunnerDfssAdSlotDisabledTest : public AuctionRunnerTest { … };
TEST_F(AuctionRunnerDfssAdSlotDisabledTest,
PromiseDirectFromSellerSignalsHeaderAdSlotFeatureOff) { … }
TEST_F(AuctionRunnerTest, ProcessManagerBlocksWorkletCreation) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionProcessManagerBlocksWorkletCreation) { … }
TEST_F(AuctionRunnerTest, SellerLoadErrorWhileWaitingForBidders) { … }
TEST_F(AuctionRunnerTest,
ComponentAuctionSellerWorkletLoadErrorWithPendingBidderLoad) { … }
TEST_F(AuctionRunnerTest, LateSellerWorkletSendPendingSignalsRequestsCalled) { … }
TEST_F(AuctionRunnerTest, ReusedBidderWorkletBatchesSignalsRequests) { … }
TEST_F(AuctionRunnerTest, AllBiddersCrashBeforeBidding) { … }
TEST_F(AuctionRunnerTest, BidderCrashBeforeBidding) { … }
TEST_F(AuctionRunnerTest, ForDebuggingOnlyReportingWithDebugFeatureDisabled) { … }
TEST_F(AuctionRunnerTest, SellerCrash) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionAllBiddersCrashBeforeBidding) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionOneBidderCrashesBeforeBidding) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionComponentSellersAllCrash) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionComponentSellerBadBidParams) { … }
TEST_F(AuctionRunnerTest, TopLevelSellerBadBidParams) { … }
TEST_F(AuctionRunnerTest, NullAdComponents) { … }
TEST_F(AuctionRunnerTest, AdComponentsLimit) { … }
TEST_F(AuctionRunnerTest, BadBid) { … }
TEST_F(AuctionRunnerTest, BadScoreAdBidInSellerCurrency) { … }
TEST_F(AuctionRunnerTest, BadScoreAdScore) { … }
TEST_F(AuctionRunnerTest, DestroyBidderWorkletWithoutBid) { … }
TEST_F(AuctionRunnerTest, Tie) { … }
TEST_F(AuctionRunnerTest, WorkletOrder) { … }
TEST_F(AuctionRunnerTest, ThreeWayTie) { … }
TEST_F(AuctionRunnerTest, SizeLimitHighestPriorityGroupHasNoBidScript) { … }
TEST_F(AuctionRunnerTest, ExecutionModeGroupByOrigin) { … }
TEST_F(AuctionRunnerTest, SmallInterestGroupsCount_OneBidderThreadRequested) { … }
TEST_F(AuctionRunnerTest, LargeInterestGroupsCount_TwoBidderThreadsRequested) { … }
TEST_F(AuctionRunnerTest, PerBuyerCumulativeTimeouts) { … }
TEST_F(AuctionRunnerTest,
PerBuyerCumulativeTimeoutsTimeoutPassesDuringScoreAd) { … }
TEST_F(AuctionRunnerTest,
PerBuyerCumulativeTimeoutsPromiseDelaysTimeoutButStillTimesOut) { … }
TEST_F(AuctionRunnerTest,
PerBuyerCumulativeTimeoutsPromiseDelaysTimeoutAndNoTimeout) { … }
TEST_F(AuctionRunnerTest, PerBuyerCumulativeTimeoutsWaitForProcess) { … }
TEST_F(AuctionRunnerTest, PerBuyerCumulativeTimeoutsAllBuyersTimeout) { … }
TEST_F(AuctionRunnerTest, PriorityVectorFiltersOnlyGroup) { … }
TEST_F(AuctionRunnerTest, PriorityVectorZeroPriorityNotFiltered) { … }
TEST_F(AuctionRunnerTest, EmptyPriorityVector) { … }
TEST_F(AuctionRunnerTest, PriorityVector) { … }
TEST_F(AuctionRunnerTest,
TrustedBiddingSignalsPriorityVectorOnlyGroupFiltered) { … }
TEST_F(AuctionRunnerTest,
TrustedBiddingSignalsPriorityVectorOnlyGroupNotFiltered) { … }
TEST_F(AuctionRunnerTest,
TrustedBiddingSignalsPriorityVectorBothGroupsFiltered) { … }
TEST_F(AuctionRunnerTest,
TrustedBiddingSignalsPriorityVectorFirstGroupFiltered) { … }
TEST_F(AuctionRunnerTest,
TrustedBiddingSignalsPriorityVectorSecondGroupFiltered) { … }
TEST_F(AuctionRunnerTest,
TrustedBiddingSignalsPriorityVectorSizeLimitFiltersOneGroup) { … }
TEST_F(AuctionRunnerTest, TrustedBiddingSignalsPriorityVectorNoGroupFiltered) { … }
TEST_F(AuctionRunnerTest, TrustedBiddingSignalsPriorityVectorBasePriority) { … }
TEST_F(AuctionRunnerTest,
TrustedBiddingSignalsPriorityVectorFirstDotProductPriority) { … }
TEST_F(AuctionRunnerTest,
TrustedBiddingSignalsPriorityVectorNotreceivedMixPrioritySources) { … }
TEST_F(AuctionRunnerTest,
TrustedBiddingSignalsPriorityVectorSharedScriptLoadErrorAfterSignals) { … }
TEST_F(AuctionRunnerTest,
TrustedBiddingSignalsPriorityVectorSharedScriptLoadErrorBeforeSignals) { … }
TEST_F(AuctionRunnerTest, SetPrioritySignalsOverride) { … }
TEST_F(AuctionRunnerTest, SetPrioritySignalsOverrideNoBid) { … }
TEST_F(AuctionRunnerTest, Abort) { … }
TEST_F(AuctionRunnerTest, AbortLate) { … }
TEST_F(
AuctionRunnerTest,
CriticalPathIsComputedFromDependencyLatenciesPassedToGenerateBidCallback) { … }
TEST_F(AuctionRunnerTest,
CriticalPathIsComputedFromDependencyLatenciesPassedToScoreAdCallback) { … }
TEST_F(AuctionRunnerTest, VerifyWorkletCreationPhaseMetrics) { … }
TEST_F(AuctionRunnerTest, VerifyGenerateBidAndScoreAdPhaseMetrics) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationRequestForEventContributionEvents) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationRequestForEventContributionBucketBaseValue) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationRequestForEventContributionTwoBidsNotRejected) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationRequestForEventContributionValueBaseValue) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationRequestForEventContributionScaleAndOffset) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationRequestForEventFilteringId) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationReportGenerateBidInvalidReservedEventType) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationTimeMetrics) { … }
TEST_F(AuctionRunnerTest, ComponentAuctionPrivateAggregationTimeMetrics) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationBuyersReportTrustedSignalsFetchLatency) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationBuyersReportBiddingDuration) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationBuyersReportAllSellersCapabilities) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationBuyersReportDifferentDurationScaleAndOffset) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationBuyersReportNegativeScale) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationBuyersReportBucketOverflowDoesntCrash) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationBuyersNotAuthorized) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationBuyersNoReportBuyerKeys) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationBuyersNoReportBuyers) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationBuyersReportBuyersDoesntMatchCapabilities) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationBuyersReportMultipleBidders) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationBuyersReportMultipleBiddersIncompleteBuyerKeys) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationBuyersMultipleBiddersSameOwnerTrustedSignalsLatency) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationBuyersMultipleBiddersSameOwnerBiddingLatency) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationBuyersMultipleStats) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationBuyersReportBidCount) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationBuyersReportInterestGroupCount) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationBuyersInterestGroupCountUnconstrainedByLimits) { … }
TEST_F(AuctionRunnerTest, PrivateAggregationBuyersReportDebugModeEnabled) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationBuyersReportDebugModeMultipleReporters) { … }
TEST_F(AuctionRunnerTest,
PrivateAggregationBuyersReportDebugModeIgnoredWhenFeatureDisabled) { … }
TEST_F(AuctionRunnerTest, RealTimeReportingBuyerBadContribution) { … }
TEST_F(AuctionRunnerTest, RealTimeReportingSellerBadContribution) { … }
TEST_F(AuctionRunnerTest, RealTimeReportingAllOptedIn) { … }
TEST_F(AuctionRunnerTest, RealTimeReportingPartialOptedIn) { … }
TEST_F(AuctionRunnerTest, RealTimeReportingComponentAuctionSharedBuyer) { … }
TEST_F(AuctionRunnerTest,
RealTimeReportingComponentAuctionSameOriginPartialOptedIn) { … }
TEST_F(AuctionRunnerTest, RealTimeReportingFailAuctionAllBidsRejected) { … }
TEST_F(AuctionRunnerTest, RealTimeReportingSellerScriptLoadFailed) { … }
TEST_F(AuctionRunnerTest, RealTimeReportingMixedContributions) { … }
TEST_F(AuctionRunnerTest, RealTimeReportingMixedContributionsNoOptIn) { … }
TEST_F(AuctionRunnerTest, RealTimeReportingMixedContributionsFeatureDisabled) { … }
class RoundingTest : public AuctionRunnerTest,
public ::testing::WithParamInterface<size_t> { … };
class BidRoundingTest : public RoundingTest { … };
class ScoreRoundingTest : public RoundingTest { … };
class CostRoundingTest : public RoundingTest { … };
TEST_P(CostRoundingTest, AdCostPassed) { … }
TEST_P(CostRoundingTest, AdCostRounded) { … }
TEST_P(CostRoundingTest, AdCostExponentTruncated) { … }
INSTANTIATE_TEST_SUITE_P(…);
TEST_F(AuctionRunnerTest, ModelingSignalsPassed) { … }
TEST_F(AuctionRunnerTest, ModelingSignalsNotPresent) { … }
TEST_F(AuctionRunnerTest, JoinCountPassedToReportWin) { … }
TEST_F(AuctionRunnerTest, RecencyPassedReportWin) { … }
TEST_F(AuctionRunnerTest, RecencyPassedGenerateBid) { … }
class AuctionRunnerPassRecencyToGenerateBidDisabledTest
: public AuctionRunnerTest { … };
TEST_F(AuctionRunnerPassRecencyToGenerateBidDisabledTest, NotPassed) { … }
TEST_P(BidRoundingTest, BidRounded) { … }
TEST_P(BidRoundingTest, HighestScoringOtherBidRounded) { … }
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(ScoreRoundingTest, ScoreRounded) { … }
INSTANTIATE_TEST_SUITE_P(…);
class AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest
: public AuctionRunnerTest,
public ::testing::WithParamInterface<bool> { … };
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
ForDebuggingOnlyReporting) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
PostAuctionSignalsInQueryStringOnly) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
ForDebuggingOnlyReportingMultipleTopBids) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
ForDebuggingOnlyReportingSameOwnerBidders) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
ForDebuggingOnlyReportingHighestScoringOtherBidFromDifferentOwners) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
ForDebuggingOnlyReportingAuctionFailAllBidsRejected) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
ForDebuggingOnlyReportingComponentAuctionTwoComponents) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
ForDebuggingOnlyReportingComponentAuctionNoWinner) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
ForDebuggingOnlyReportingComponentAuctionOneComponent) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
ForDebuggingOnlyReportingSellerWorkletFailToLoad) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
ForDebuggingOnlyReportingBidderBadUrls) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
ForDebuggingOnlyReportingSellerBadUrls) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
ForDebuggingOnlyReportingGoodAndBadUrl) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
LargeComponentAuction) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
RejectedBidGetsRejectReason) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
RejectReasonIgnoredForPositiveBid) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
RejectReasonInBidderDebugLossReportOnly) { … }
TEST_P(AuctionRunnerBiddingAndScoringDebugReportingAPIEnabledTest,
SellerNotReturningRejectReason) { … }
INSTANTIATE_TEST_SUITE_P(…);
TEST_F(AuctionRunnerTest, InvalidReportingIds) { … }
TEST_F(AuctionRunnerTest, VerifyReportingIdsInScoreAd) { … }
class AuctionRunnerSampleDebugReportsEnabledTest : public AuctionRunnerTest { … };
TEST_F(AuctionRunnerSampleDebugReportsEnabledTest,
BrowserSignalForDebuggingOnlyInCooldownOrLockout) { … }
TEST_F(AuctionRunnerSampleDebugReportsEnabledTest,
DropDebugReportsIfInLockout) { … }
TEST_F(AuctionRunnerSampleDebugReportsEnabledTest,
DropDebugReportsIfInCooldown) { … }
TEST_F(AuctionRunnerSampleDebugReportsEnabledTest,
ComponentAuctionSamplingAndDoFilterDebugReports) { … }
TEST_F(AuctionRunnerSampleDebugReportsEnabledTest,
CooldownOrLockoutShouldBeUpdatedDuringAuction) { … }
TEST_F(AuctionRunnerSampleDebugReportsEnabledTest,
NoCooldownOrLockoutWhenLengthIsZero) { … }
TEST_F(AuctionRunnerSampleDebugReportsEnabledTest,
EnableFilteringInFutureTime) { … }
class AuctionRunnerFilterDebugReportsDisabledTest : public AuctionRunnerTest { … };
TEST_F(AuctionRunnerFilterDebugReportsDisabledTest,
NoDebugReportsDroppedWhenDoFilterDisabled) { … }
TEST_F(AuctionRunnerFilterDebugReportsDisabledTest,
SampleDebugReportsWhenDoFilterDisabled) { … }
class AuctionRunnerPrivateAggregationAPIDisabledTest
: public AuctionRunnerTest { … };
TEST_F(AuctionRunnerPrivateAggregationAPIDisabledTest, ReportsNotSent) { … }
class AuctionRunnerKAnonTest : public AuctionRunnerTest,
public ::testing::WithParamInterface<
auction_worklet::mojom::KAnonymityBidMode> { … };
TEST_P(AuctionRunnerKAnonTest, SingleNonKAnon) { … }
TEST_P(AuctionRunnerKAnonTest, SingleKAnon) { … }TEST_P(AuctionRunnerKAnonTest, ComponentURLs) { … }TEST_P(AuctionRunnerKAnonTest, Basic) { … }TEST_P(AuctionRunnerKAnonTest, KAnonHigher) { … }TEST_P(AuctionRunnerKAnonTest, DifferentBids) { … }TEST_P(AuctionRunnerKAnonTest, MultiBid) { … }TEST_P(AuctionRunnerKAnonTest, FailureHandling) { … }TEST_P(AuctionRunnerKAnonTest, MojoValidation) { … }TEST_P(AuctionRunnerKAnonTest, ReportingId) { … }TEST_P(AuctionRunnerKAnonTest, SelectedReportingIdMustBeKAnonForReporting) { … }TEST_P(AuctionRunnerKAnonTest, AdditionalBidBuyerReporting) { … }TEST_P(AuctionRunnerKAnonTest, CookieDeprecationFacilitatedTestingExcluded) { … }INSTANTIATE_TEST_SUITE_P(…)TEST_F(AuctionRunnerTest, ServerResponseLogsErrors) { … }TEST_F(AuctionRunnerTest, MatchedReportingIdsInServerResponse) { … }TEST_F(AuctionRunnerTest, TrustedBiddingSignalsAdSlotParamGrouping) { … }TEST_F(AuctionRunnerTest, TrustedBiddingSignalsAdSlotParamGroupingNoSizes) { … }TEST_F(AuctionRunnerTest, TrustedBiddingSignalsJointBatchedRequests) { … }TEST_F(AuctionRunnerTest, TrustedBiddingSignalsSplitBatchedRequests) { … }TEST_F(AuctionRunnerTest, TrustedScoringSignalsJointBatchedRequests) { … }TEST_F(AuctionRunnerTest, TrustedScoringSignalsSplitBatchedRequests) { … }