#include "content/browser/interest_group/ad_auction_service_impl.h"
#include <stddef.h>
#include <memory>
#include <optional>
#include <string>
#include <string_view>
#include <vector>
#include "base/barrier_closure.h"
#include "base/base64.h"
#include "base/command_line.h"
#include "base/containers/contains.h"
#include "base/containers/flat_map.h"
#include "base/containers/flat_set.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/json/json_string_value_serializer.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/raw_ref.h"
#include "base/memory/scoped_refptr.h"
#include "base/run_loop.h"
#include "base/rust_buildflags.h"
#include "base/strings/string_number_conversions.h"
#include "base/synchronization/lock.h"
#include "base/task/sequenced_task_runner.h"
#include "base/test/bind.h"
#include "base/test/metrics/histogram_tester.h"
#include "base/test/mock_callback.h"
#include "base/test/scoped_feature_list.h"
#include "base/test/test_future.h"
#include "base/thread_annotations.h"
#include "base/time/time.h"
#include "base/uuid.h"
#include "build/build_config.h"
#include "build/buildflag.h"
#include "components/aggregation_service/aggregation_coordinator_utils.h"
#include "components/cbor/diagnostic_writer.h"
#include "components/cbor/reader.h"
#include "components/services/storage/shared_storage/shared_storage_manager.h"
#include "content/browser/aggregation_service/aggregatable_report.h"
#include "content/browser/fenced_frame/fenced_frame_url_mapping.h"
#include "content/browser/interest_group/ad_auction_page_data.h"
#include "content/browser/interest_group/auction_process_manager.h"
#include "content/browser/interest_group/interest_group_caching_storage.h"
#include "content/browser/interest_group/interest_group_features.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/storage_interest_group.h"
#include "content/browser/private_aggregation/private_aggregation_budgeter.h"
#include "content/browser/private_aggregation/private_aggregation_manager_impl.h"
#include "content/browser/private_aggregation/private_aggregation_test_utils.h"
#include "content/browser/renderer_host/render_frame_host_impl.h"
#include "content/browser/storage_partition_impl.h"
#include "content/common/content_navigation_policy.h"
#include "content/common/features.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/privacy_sandbox_invoking_api.h"
#include "content/public/common/content_client.h"
#include "content/public/common/content_switches.h"
#include "content/public/test/navigation_simulator.h"
#include "content/public/test/test_renderer_host.h"
#include "content/public/test/test_utils.h"
#include "content/public/test/url_loader_interceptor.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/mojom/auction_worklet_service.mojom.h"
#include "content/services/auction_worklet/public/mojom/bidder_worklet.mojom.h"
#include "content/test/fenced_frame_test_utils.h"
#include "content/test/test_content_browser_client.h"
#include "crypto/sha2.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/test_support/test_utils.h"
#include "net/base/isolation_info.h"
#include "net/third_party/quiche/src/quiche/oblivious_http/oblivious_http_gateway.h"
#include "services/data_decoder/public/cpp/test_support/in_process_data_decoder.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/interest_group/interest_group.h"
#include "third_party/blink/public/common/interest_group/test/interest_group_test_utils.h"
#include "third_party/blink/public/common/interest_group/test_interest_group_builder.h"
#include "third_party/blink/public/common/permissions_policy/permissions_policy_features.h"
#include "third_party/blink/public/mojom/interest_group/ad_auction_service.mojom.h"
#include "third_party/blink/public/mojom/interest_group/interest_group_types.mojom.h"
#include "third_party/blink/public/mojom/parakeet/ad_request.mojom.h"
#include "third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom.h"
#include "url/gurl.h"
#include "url/origin.h"
namespace content {
class BrowserContext;
namespace {
IgExpectEqualsForTesting;
IgExpectNotEqualsForTesting;
RealTimeReportingType;
const size_t kEncryptionOverhead = …;
constexpr char kInterestGroupName[] = …;
constexpr char kOriginStringA[] = …;
constexpr char kOriginStringB[] = …;
constexpr char kOriginStringC[] = …;
constexpr char kOriginStringD[] = …;
constexpr char kOriginStringE[] = …;
constexpr char kOriginStringF[] = …;
constexpr char kOriginStringG[] = …;
constexpr char kOriginStringNoUpdate[] = …;
constexpr char kBiddingUrlPath[] = …;
constexpr char kNewBiddingUrlPath[] = …;
constexpr char kDecisionUrlPath[] = …;
constexpr char kTrustedBiddingSignalsUrlPath[] = …;
constexpr char kTrustedScoringSignalsUrlPath[] = …;
constexpr char kUpdateUrlPath[] = …;
constexpr char kUpdateUrlPath2[] = …;
constexpr char kUpdateUrlPath3[] = …;
constexpr char kUpdateUrlPath4[] = …;
constexpr char kUpdateUrlPathB[] = …;
constexpr char kUpdateUrlPathC[] = …;
constexpr char kBAndAKeyPath[] = …;
const uint8_t kTestPrivateKey[] = …;
const uint8_t kTestPublicKey[] = …;
std::string JSONSerializedKeys() { … }
std::string BasicBiddingReportScript() { … }
std::string BasicSellerReportScript(bool send_report = true) { … }
class AllowInterestGroupContentBrowserClient : public TestContentBrowserClient { … };
constexpr char kFledgeUpdateHeaders[] = …;
constexpr char kFledgeScriptHeaders[] = …;
constexpr char kFledgeReportHeaders[] = …;
constexpr char kFledgeSignalsHeaders[] = …;
class NetworkResponder { … };
class SameProcessAuctionProcessManager : public AuctionProcessManager { … };
class TestKAnonymityServiceDelegate : public KAnonymityServiceDelegate { … };
class TestPrivateAggregationManagerImpl : public PrivateAggregationManagerImpl { … };
class MockPrivateAggregationHostForTest : public PrivateAggregationHost { … };
}
class AdAuctionServiceImplTest : public RenderViewHostTestHarness { … };
TEST_F(AdAuctionServiceImplTest, JoinInterestGroupBasic) { … }
TEST_F(AdAuctionServiceImplTest, JoinInterestGroupFrameNotHttps) { … }
TEST_F(AdAuctionServiceImplTest, JoinInterestGroupOwnerNotHttps) { … }
TEST_F(AdAuctionServiceImplTest, JoinInterestGroupDisallowedUrls) { … }
TEST_F(AdAuctionServiceImplTest,
JoinInterestGroupDeduplicateAllowedReportingOrigins) { … }
TEST_F(AdAuctionServiceImplTest,
JoinInterestGroupNotAttestedAllowedReportingOrigins) { … }
TEST_F(AdAuctionServiceImplTest, JoinMassiveInterestGroupFails) { … }
TEST_F(AdAuctionServiceImplTest, LeaveClearInterestGroupOriginNotHttps) { … }
TEST_F(AdAuctionServiceImplTest, LeaveClearInterestGroupFrameNotHttps) { … }
TEST_F(AdAuctionServiceImplTest, FixExpiryOnJoin) { … }
TEST_F(AdAuctionServiceImplTest, UpdateAllUpdatableFields) { … }
TEST_F(AdAuctionServiceImplTest, UpdateExecutionModeToGroupByOrigin) { … }
TEST_F(AdAuctionServiceImplTest, UpdateExecutionModeToFrozenContext) { … }
TEST_F(AdAuctionServiceImplTest, UpdateExecutionModeToCompatibilityMode) { … }
TEST_F(AdAuctionServiceImplTest,
UpdateUnrecognizedExecutionModeToCompatibility) { … }
TEST_F(AdAuctionServiceImplTest, UpdatePartialPerformsMerge) { … }
TEST_F(AdAuctionServiceImplTest, UpdateDoesntChangeExpiration) { … }
TEST_F(AdAuctionServiceImplTest, UpdateGroupWithNoAds) { … }
TEST_F(AdAuctionServiceImplTest, UpdateSucceedsIfOptionalNameOwnerMatch) { … }
TEST_F(AdAuctionServiceImplTest,
UnrecognizedTrustedBiddingSignalsSlotSizeMode) { … }
TEST_F(AdAuctionServiceImplTest, UpdateIgnoresUnknownFields) { … }
TEST_F(AdAuctionServiceImplTest, NoUpdateIfOptionalNameDoesntMatch) { … }
TEST_F(AdAuctionServiceImplTest, NoUpdateIfOptionalOwnerDoesntMatch) { … }
TEST_F(AdAuctionServiceImplTest, UpdatePriorityVector) { … }
TEST_F(AdAuctionServiceImplTest, AddTrustedBiddingSignalsCoordinator) { … }
TEST_F(AdAuctionServiceImplTest, RemoveTrustedBiddingSignalsCoordinator) { … }
TEST_F(AdAuctionServiceImplTest,
UppdateWithNonStringTrustedBiddingSignalsCoordinator) { … }
TEST_F(AdAuctionServiceImplTest,
UppdateWithInvalidGURLTrustedBiddingSignalsCoordinator) { … }
TEST_F(AdAuctionServiceImplTest,
UppdateWithNonHTTPSTrustedBiddingSignalsCoordinator) { … }
class AdAuctionServiceImplTestDisabledDealSupport
: public AdAuctionServiceImplTest { … };
TEST_F(AdAuctionServiceImplTestDisabledDealSupport,
UpdateSelectableBuyerAndSellerReportingIds) { … }
TEST_F(AdAuctionServiceImplTest, UpdatePrioritySignalsOverrides) { … }
TEST_F(AdAuctionServiceImplTest, UpdateMultipleInterestGroups) { … }
class AdAuctionServiceImplDifferentNIKDuringUpdateTest
: public AdAuctionServiceImplTest { … };
TEST_F(AdAuctionServiceImplDifferentNIKDuringUpdateTest,
UpdateCheckNIKForTwoOwnersOneJoiningOrigin) { … }
TEST_F(AdAuctionServiceImplDifferentNIKDuringUpdateTest,
UpdateCheckNIKForOneOwnerTwoJoiningOrigins) { … }
TEST_F(AdAuctionServiceImplDifferentNIKDuringUpdateTest,
UpdatePopOwnerQueueToEmptyTriggerClearIsolationMap) { … }
TEST_F(AdAuctionServiceImplDifferentNIKDuringUpdateTest,
UpdateClearOwnerQueueTriggerClearIsolationMap) { … }
TEST_F(AdAuctionServiceImplDifferentNIKDuringUpdateTest,
UpdateMultipleJoiningOriginsAllLessThanBatchSize) { … }
TEST_F(AdAuctionServiceImplDifferentNIKDuringUpdateTest,
UpdateMultipleJoiningOriginsAndOneEqualToBatchSize) { … }
TEST_F(AdAuctionServiceImplDifferentNIKDuringUpdateTest,
UpdateMultipleJoiningOriginsAndOneMoreThanBatchSize) { … }
TEST_F(AdAuctionServiceImplDifferentNIKDuringUpdateTest,
UpdateMultipleBatches) { … }
TEST_F(AdAuctionServiceImplDifferentNIKDuringUpdateTest,
UpdateIsolationMapIsClearedWithMixedJoiningOriginsAndNewJoinedGroup) { … }
TEST_F(AdAuctionServiceImplDifferentNIKDuringUpdateTest,
UpdateIsolationMapIsClearedWithMixedJoiningOriginsAndNewValidGroup) { … }
TEST_F(AdAuctionServiceImplTest, UpdateOnlyOwnOrigin) { … }
TEST_F(AdAuctionServiceImplTest, UpdateFromCrossSiteIFrame) { … }
TEST_F(AdAuctionServiceImplTest, UpdateInvalidFieldCancelsAllUpdates) { … }
TEST_F(AdAuctionServiceImplTest,
UpdateNotAttestedAllowedReportingOriginsCancelsAllUpdates) { … }
TEST_F(AdAuctionServiceImplTest, UpdateInvalidPriorityCancelsAllUpdates) { … }
TEST_F(AdAuctionServiceImplTest, UpdateInvalidSellerCapabilitiesIgnored) { … }
TEST_F(AdAuctionServiceImplTest, UpdateInvalidJSONIgnored) { … }
#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(BUILD_RUST_JSON_READER)
TEST_F(AdAuctionServiceImplTest, UpdateJSONParserCrash) {
network_responder_->RegisterUpdateResponse(kUpdateUrlPath, R"({
"ads": [{"renderURL": "https://example.com/new_render"
}]
})");
blink::InterestGroup interest_group = CreateInterestGroup();
interest_group.expiry = base::Time::Now() + base::Days(30);
interest_group.update_url = kUpdateUrlA;
interest_group.bidding_url = kBiddingLogicUrlA;
interest_group.trusted_bidding_signals_url = kTrustedBiddingSignalsUrlA;
interest_group.trusted_bidding_signals_keys.emplace();
interest_group.trusted_bidding_signals_keys->push_back("key1");
interest_group.ads.emplace();
blink::InterestGroup::Ad ad(
GURL("https://example.com/render"),
std::nullopt);
interest_group.ads->emplace_back(std::move(ad));
JoinInterestGroupAndFlush(interest_group);
EXPECT_EQ(1, GetJoinCount(kOriginA, kInterestGroupName));
data_decoder::test::InProcessDataDecoder in_process_data_decoder;
in_process_data_decoder.SimulateJsonParserCrash(
true);
UpdateInterestGroupNoFlush();
task_environment()->RunUntilIdle();
scoped_refptr<StorageInterestGroups> groups =
GetInterestGroupsForOwner(kOriginA);
ASSERT_EQ(groups->size(), 1u);
auto group = groups->GetInterestGroups()[0]->interest_group;
ASSERT_TRUE(group.ads.has_value());
ASSERT_EQ(group.ads->size(), 1u);
EXPECT_EQ(group.ads.value()[0].render_url(), "https://example.com/render");
in_process_data_decoder.SimulateJsonParserCrash(
false);
task_environment()->FastForwardBy(
InterestGroupStorage::kUpdateSucceededBackoffPeriod);
UpdateInterestGroupNoFlush();
task_environment()->RunUntilIdle();
groups = GetInterestGroupsForOwner(kOriginA);
ASSERT_EQ(groups->size(), 1u);
group = groups->GetInterestGroups()[0]->interest_group;
ASSERT_TRUE(group.ads.has_value());
ASSERT_EQ(group.ads->size(), 1u);
EXPECT_EQ(group.ads.value()[0].render_url(),
"https://example.com/new_render");
}
#endif
TEST_F(AdAuctionServiceImplTest, UpdateBlockedByContentBrowserClient) { … }
TEST_F(AdAuctionServiceImplTest, UpdateNetworkFailure) { … }
TEST_F(AdAuctionServiceImplTest, UpdateTimeout) { … }
TEST_F(AdAuctionServiceImplTest,
UpdateDuringInterestGroupExpirationNoDbMaintenence) { … }
TEST_F(AdAuctionServiceImplTest,
UpdateDuringInterestGroupExpirationWithDbMaintenence) { … }
TEST_F(AdAuctionServiceImplTest, UpdateNeverFinishesBeforeDestruction) { … }
TEST_F(AdAuctionServiceImplTest, DoesntChangeGroupsWithNoUpdateUrl) { … }
TEST_F(AdAuctionServiceImplTest, UpdateDoesntChangeBrowserSignals) { … }
TEST_F(AdAuctionServiceImplTest, UpdateRateLimitedAfterSuccessfulUpdate) { … }
TEST_F(AdAuctionServiceImplTest, UpdateRateLimitedAfterBadUpdateResponse) { … }
TEST_F(AdAuctionServiceImplTest,
UpdateRateLimitedAfterGotNotAttestedAllowedReportingOrigins) { … }
TEST_F(AdAuctionServiceImplTest, UpdateRateLimitedAfterFailedUpdate) { … }
TEST_F(AdAuctionServiceImplTest, UpdateNotRateLimitedIfDisconnected) { … }
TEST_F(AdAuctionServiceImplTest, DisconnectedAndSuccessInFlightTogether) { … }
TEST_F(AdAuctionServiceImplTest, UpdateRateLimitedTightLoop) { … }
TEST_F(AdAuctionServiceImplTest, OnlyOneOriginUpdatesAtATime) { … }
TEST_F(AdAuctionServiceImplTest, UpdatesInBatches) { … }
TEST_F(AdAuctionServiceImplTest, UpdatesInBatchesWithFailuresAndTimeouts) { … }
TEST_F(AdAuctionServiceImplTest, CancelsLongstandingUpdates) { … }
TEST_F(AdAuctionServiceImplTest, CancelsLongstandingUpdates2) { … }
TEST_F(AdAuctionServiceImplTest, UpdateCancellationTimerClearedOnCompletion) { … }
TEST_F(AdAuctionServiceImplTest, CancelsLongstandingUpdatesComplex) { … }
TEST_F(AdAuctionServiceImplTest, RunAdAuction) { … }
TEST_F(AdAuctionServiceImplTest, RunAdAuctionSellerRejectsBid) { … }
TEST_F(AdAuctionServiceImplTest,
RunAdAuctionExceedNumOfUrnMappingsLimitFailsAuction) { … }
TEST_F(AdAuctionServiceImplTest, UpdatesInterestGroupsAfterSuccessfulAuction) { … }
TEST_F(AdAuctionServiceImplTest,
UpdatesInterestGroupsAfterSuccessfulAuctionDelayedUpdate) { … }
TEST_F(AdAuctionServiceImplTest, UpdatesInterestGroupsAfterFailedAuction) { … }
TEST_F(AdAuctionServiceImplTest,
UpdatesInterestGroupsAfterFailedAuctionMissingScript) { … }
TEST_F(AdAuctionServiceImplTest,
UpdatesInterestGroupsAfterAuctionBlockedByContentBrowserClient) { … }
TEST_F(AdAuctionServiceImplTest,
UpdatesInterestGroupsAfterComponentAuctionWithWinner) { … }
TEST_F(AdAuctionServiceImplTest,
UpdatesInterestGroupsAfterComponentAuctionWithNoWinner) { … }
TEST_F(AdAuctionServiceImplTest, UpdatesInterestGroupsAfterAuctionNoAds) { … }
TEST_F(AdAuctionServiceImplTest, UpdateSupportsDeprecatedNames) { … }
TEST_F(AdAuctionServiceImplTest, UpdateIgnoresUnknownEnumFields) { … }
TEST_F(AdAuctionServiceImplTest, UpdateRenamedFields) { … }
class AdAuctionServiceImplUpdateIfOlderThanTest
: public AdAuctionServiceImplTest { … };
TEST_F(AdAuctionServiceImplUpdateIfOlderThanTest, OlderThan) { … }
TEST_F(AdAuctionServiceImplUpdateIfOlderThanTest, NotOlderThan) { … }
TEST_F(AdAuctionServiceImplUpdateIfOlderThanTest, Clamped10Min) { … }
TEST_F(AdAuctionServiceImplTest, SendReports) { … }
TEST_F(AdAuctionServiceImplTest, SendReportsWaitsForCallback) { … }
TEST_F(AdAuctionServiceImplTest, SendReportsTwoAuctionsWithDelay) { … }
TEST_F(AdAuctionServiceImplTest, SendReportsTwoAuctionsRespectsReportInterval) { … }
TEST_F(AdAuctionServiceImplTest, SendReportsOneReportFailed) { … }
TEST_F(AdAuctionServiceImplTest, ReportQueueMaxLength) { … }
TEST_F(AdAuctionServiceImplTest, SendReportsMaxReportRoundDuration) { … }
TEST_F(AdAuctionServiceImplTest, RealTimeReportRateLimit) { … }
TEST_F(AdAuctionServiceImplTest, ReportingWorkletsDoNotBlockCompletion) { … }
TEST_F(AdAuctionServiceImplTest,
AddInterestGroupRunAuctionVerifyResultMetrics) { … }
TEST_F(AdAuctionServiceImplTest,
AddInterestGroupRunAuctionVerifyResultMetricsFewAuctions) { … }
TEST_F(AdAuctionServiceImplTest,
AddInterestGroupRunAuctionVerifyResultMetricsNoAuctions) { … }
TEST_F(AdAuctionServiceImplTest, NoInterestLimitByDefault) { … }
TEST_F(AdAuctionServiceImplTest, CreateAdRequestRejectsEmptyConfigRequest) { … }
TEST_F(AdAuctionServiceImplTest, CreateAdRequestRejectsHttpUrls) { … }
TEST_F(AdAuctionServiceImplTest, CreateAdRequestRejectsMissingAds) { … }
TEST_F(AdAuctionServiceImplTest, CreateAdRequestRejectsHttpFallback) { … }
TEST_F(AdAuctionServiceImplTest, FinalizeAdRejectsEmptyConfig) { … }
TEST_F(AdAuctionServiceImplTest, FinalizeAdRejectsHTTPDecisionUrl) { … }
TEST_F(AdAuctionServiceImplTest, FinalizeAdRejectsMissingGuid) { … }
TEST_F(AdAuctionServiceImplTest, SetPriorityAdjustsPriority) { … }
class AdAuctionServiceImplNumAuctionLimitTest
: public AdAuctionServiceImplTest { … };
TEST_F(AdAuctionServiceImplNumAuctionLimitTest,
AddInterestGroupRunAuctionWithNumAuctionLimits) { … }
TEST_F(AdAuctionServiceImplNumAuctionLimitTest,
AddInterestGroupRunAuctionStartManyAuctionsInParallel) { … }
class AdAuctionServiceImplRestrictedPermissionsPolicyTest
: public AdAuctionServiceImplTest { … };
TEST_F(AdAuctionServiceImplRestrictedPermissionsPolicyTest,
APICallsFromTopFrame) { … }
TEST_F(AdAuctionServiceImplRestrictedPermissionsPolicyTest,
APICallsFromSameSiteIframe) { … }
TEST_F(AdAuctionServiceImplRestrictedPermissionsPolicyTest,
APICallsFromCrossSiteIFrame) { … }
class AdAuctionServiceImplBiddingAndScoringDebugReportingAPIEnabledTest
: public AdAuctionServiceImplTest { … };
TEST_F(AdAuctionServiceImplBiddingAndScoringDebugReportingAPIEnabledTest,
SendReportsMaximumActive) { … }
class AdAuctionServiceImplEventReportingAttestationTest
: public AdAuctionServiceImplBiddingAndScoringDebugReportingAPIEnabledTest { … };
TEST_F(AdAuctionServiceImplEventReportingAttestationTest, AllAllowed) { … }
TEST_F(AdAuctionServiceImplEventReportingAttestationTest, SomeAllowed) { … }
TEST_F(AdAuctionServiceImplEventReportingAttestationTest, NoneAllowed) { … }
TEST_F(AdAuctionServiceImplTest, PageImplChangedDuringAuction) { … }
TEST_F(AdAuctionServiceImplTest, PageImplChangedBeforeAuction) { … }
TEST_F(AdAuctionServiceImplTest,
ResetAuctionInitiatorPageOnCrossDocumentNavigation) { … }
TEST_F(AdAuctionServiceImplTest,
DoNotResetAuctionInitiatorPageOnSameDocumentNavigation) { … }
class AdAuctionServiceImplSharedStorageEnabledTest
: public AdAuctionServiceImplTest { … };
TEST_F(AdAuctionServiceImplSharedStorageEnabledTest, SharedStorageWrite) { … }
TEST_F(AdAuctionServiceImplSharedStorageEnabledTest,
ScriptErrorAfterSharedStorageWrite) { … }
TEST_F(AdAuctionServiceImplSharedStorageEnabledTest,
SharedStoragePermissionsPolicyDisallowsSellerOrigin) { … }
class AdAuctionServiceImplSharedStorageDisabledTest
: public AdAuctionServiceImplTest { … };
TEST_F(AdAuctionServiceImplSharedStorageDisabledTest, SharedStorageNotDefined) { … }
class AdAuctionServiceImplPrivateAggregationEnabledTest
: public AdAuctionServiceImplTest { … };
TEST_F(AdAuctionServiceImplPrivateAggregationEnabledTest,
PrivateAggregationReportsForwarded) { … }
TEST_F(AdAuctionServiceImplPrivateAggregationEnabledTest,
PrivateAggregationPermissionsPolicyDisallowsSellerOrigin) { … }
TEST_F(AdAuctionServiceImplPrivateAggregationEnabledTest,
PrivateAggregationPermissionsPolicyDisallowsBidderOrigin) { … }
class PrivateAggregationUseCounterContentBrowserClient
: public AllowInterestGroupContentBrowserClient { … };
TEST_F(AdAuctionServiceImplPrivateAggregationEnabledTest,
PrivateAggregationUseCountersLogged) { … }
TEST_F(AdAuctionServiceImplPrivateAggregationEnabledTest,
PrivateAggregationExtensionsUseCounterNotLoggedOnContributeToHistogram) { … }
TEST_F(AdAuctionServiceImplPrivateAggregationEnabledTest,
PrivateAggregationEnableDebugModeUseCounterLogged) { … }
TEST_F(AdAuctionServiceImplPrivateAggregationEnabledTest,
PrivateAggregationFilteringIdUseCounterLogged) { … }
TEST_F(AdAuctionServiceImplPrivateAggregationEnabledTest,
PrivateAggregationFilteringIdUseCounterNotLoggedIfFeatureDisabled) { … }
TEST_F(AdAuctionServiceImplPrivateAggregationEnabledTest,
PrivateAggregationUseCountersNotLoggedOnFailedInvocation) { … }
TEST_F(AdAuctionServiceImplPrivateAggregationEnabledTest,
PrivateAggregationUseCountersLoggedOnlyOnce) { … }
TEST_F(AdAuctionServiceImplPrivateAggregationEnabledTest,
PrivateAggregationReportsForwardedWithCoordinator) { … }
class AdAuctionServiceImplPrivateAggregationDisabledTest
: public AdAuctionServiceImplTest { … };
TEST_F(AdAuctionServiceImplPrivateAggregationDisabledTest,
PrivateAggregationNotExposed) { … }
TEST_F(AdAuctionServiceImplPrivateAggregationDisabledTest,
PrivateAggregationUseCounterNotLogged) { … }
class AdAuctionServiceImplKAnonTest
: public AdAuctionServiceImplTest,
public ::testing::WithParamInterface<
auction_worklet::mojom::KAnonymityBidMode> { … };
TEST_P(AdAuctionServiceImplKAnonTest, RunAdAuctionNotKAnon) { … }
INSTANTIATE_TEST_SUITE_P(…);
class AdAuctionServiceImplBAndATest : public AdAuctionServiceImplTest { … };
TEST_F(AdAuctionServiceImplTest, HandlesInvalidCoordinatorOrigin) { … }
TEST_F(AdAuctionServiceImplTest, HandlesUnsupportedCoordinatorOrigin) { … }
TEST_F(AdAuctionServiceImplTest, SerializesAuctionBlob) { … }
TEST_F(AdAuctionServiceImplTest, SerializesAuctionBlobWithNoGroups) { … }
TEST_F(AdAuctionServiceImplTest, SerializesAuctionBlobWithEmptyGroup) { … }
TEST_F(AdAuctionServiceImplTest, SerializesMultipleOwnersAuctionBlob) { … }
TEST_F(AdAuctionServiceImplTest, SerializesAuctionBlobWithoutDebugReporting) { … }
TEST_F(AdAuctionServiceImplTest, SerializesAuctionBlobDebugReportingInLockout) { … }
TEST_F(AdAuctionServiceImplTest, SerializesAuctionBlobWithDebugToken) { … }
TEST_F(AdAuctionServiceImplTest, SerializesAuctionBlobWithOmitAds) { … }
TEST_F(AdAuctionServiceImplTest, SerializesAuctionBlobWithFullAds) { … }
TEST_F(AdAuctionServiceImplTest,
SerializesAuctionBlobWithNoUserBiddingSignalsAndOmitAds) { … }
TEST_F(AdAuctionServiceImplTest, SerializesAuctionBlobWithPerBuyerConfig) { … }
TEST_F(AdAuctionServiceImplBAndATest, JoinInterestGroupPrefetchesKeys) { … }
TEST_F(AdAuctionServiceImplBAndATest, EncryptsPayload) { … }
TEST_F(AdAuctionServiceImplBAndATest, EncryptsPayloadWithDebugReportLockout) { … }
TEST_F(AdAuctionServiceImplBAndATest, OriginNotAllowed) { … }
TEST_F(AdAuctionServiceImplBAndATest, RunBAndAAuction) { … }
TEST_F(AdAuctionServiceImplBAndATest, RunBAndAAuctionNoBids) { … }
TEST_F(AdAuctionServiceImplBAndATest, RunBAndAAuctionServerError) { … }
TEST_F(AdAuctionServiceImplBAndATest, RunBAndAAuctionWithoutCustomMediaType) { … }
TEST_F(AdAuctionServiceImplBAndATest, HandlesBadResponseForBAndAAuction) { … }
TEST_F(AdAuctionServiceImplBAndATest,
RunMultiSellerBAndAAuctionInSingleSeller) { … }
TEST_F(AdAuctionServiceImplBAndATest, RunBAndAAuctionAsMultiseller) { … }
TEST_F(AdAuctionServiceImplBAndATest, RunMultiSellerBAndAAuctionWrongSeller) { … }
TEST_F(AdAuctionServiceImplBAndATest, RunMultiSellerBAndAAuction) { … }
TEST_F(AdAuctionServiceImplBAndATest,
RunMultiSellerBAndAAuctionWithPrivateAggregation) { … }
TEST_F(AdAuctionServiceImplBAndATest,
RunBAndAAuctionWithPrivateAggregationServerFiltered) { … }
TEST_F(AdAuctionServiceImplBAndATest,
RunMultiSellerBAndAAuctionWithPrivateAggregationCoordinator) { … }
TEST_F(AdAuctionServiceImplBAndATest,
RunMultiSellerBAndAAuctionWithOtherPromisesResolveLater) { … }
TEST_F(AdAuctionServiceImplBAndATest,
RunMultiSellerBAndAAuctionWithOtherPromisesResolveFirst) { … }
TEST_F(AdAuctionServiceImplBAndATest, RunMultiSellerBAndAAuctionWithLocal) { … }
TEST_F(AdAuctionServiceImplBAndATest,
RunMultiSellerBAndAAuctionWithWinningLocal) { … }
TEST_F(AdAuctionServiceImplBAndATest, GetInterestGroupAdAuctionDataNoKeys) { … }
TEST_F(AdAuctionServiceImplBAndATest,
GetInterestGroupAdAuctionDataNoKeysAndNoInterestGroups) { … }
TEST_F(AdAuctionServiceImplBAndATest,
GetInterestGroupAdAuctionDataKeysAndNoInterestGroups) { … }
TEST_F(AdAuctionServiceImplBAndATest,
GetInterestGroupAdAuctionData_KeysLoadBeforeIGs) { … }
TEST_F(AdAuctionServiceImplBAndATest,
GetInterestGroupAdAuctionData_IGsLoadBeforeKeys) { … }
TEST_F(AdAuctionServiceImplBAndATest,
HandlesMultipleGetInterestGroupAdAuctionDataInARow) { … }
TEST_F(AdAuctionServiceImplBAndATest,
HandlesMultipleEmptyGetInterestGroupAdAuctionDataInARow) { … }
TEST_F(AdAuctionServiceImplBAndATest,
RunMultiSellerBAndAAuctionMatchedCurrency) { … }
TEST_F(AdAuctionServiceImplBAndATest,
RunMultiSellerBAndAAuctionMismatchSellerCurrency) { … }
TEST_F(AdAuctionServiceImplBAndATest,
RunMultiSellerBAndAAuctionMismatchAllSellerCurrency) { … }
TEST_F(AdAuctionServiceImplBAndATest,
RunMultiSellerBAndAAuctionMismatchPerSellerCurrency) { … }
TEST_F(AdAuctionServiceImplBAndATest, RunServerMultiSellerBAndAAuction) { … }
TEST_F(AdAuctionServiceImplBAndATest, RunBAndAAuctionWithBid) { … }
class AdAuctionServiceImplBAndAKAnonTest
: public AdAuctionServiceImplBAndATest { … };
TEST_F(AdAuctionServiceImplBAndAKAnonTest, RunBAndAAuctionWithKAnon) { … }
class AdAuctionServiceImplFacilitatedTestingTest
: public AdAuctionServiceImplTest { … };
TEST_F(AdAuctionServiceImplFacilitatedTestingTest,
RunAdAuctionServesDeprecationLabelsInKVRequest) { … }
}