Add PH flag for trusted server request compression
Test: atest PhFlagsTest
Change-Id: I07992f3d996dd4402248cf63768c963bd68d92e1
Bug: b/249680871
diff --git a/adservices/service-core/java/com/android/adservices/service/Flags.java b/adservices/service-core/java/com/android/adservices/service/Flags.java
index fae95dc..d3bc248 100644
--- a/adservices/service-core/java/com/android/adservices/service/Flags.java
+++ b/adservices/service-core/java/com/android/adservices/service/Flags.java
@@ -535,6 +535,20 @@
return FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S;
}
+ boolean FLEDGE_AD_SELECTION_OFF_DEVICE_ENABLED = false;
+
+ /** @return whether to call trusted servers for off device ad selection. */
+ default boolean getAdSelectionOffDeviceEnabled() {
+ return FLEDGE_AD_SELECTION_OFF_DEVICE_ENABLED;
+ }
+
+ boolean FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED = true;
+
+ /** Returns whether to compress requests sent off device for ad selection. */
+ default boolean getAdSelectionOffDeviceRequestCompressionEnabled() {
+ return FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED;
+ }
+
boolean ADSERVICES_ENABLED = false;
default boolean getAdServicesEnabled() {
@@ -1289,13 +1303,6 @@
return MAX_RESPONSE_BASED_REGISTRATION_SIZE_BYTES;
}
- boolean OFF_DEVICE_AD_SELECTION_ENABLED = false;
-
- /** @return whether to call trusted servers for off device ad selection. */
- default boolean getOffDeviceAdSelectionEnabled() {
- return OFF_DEVICE_AD_SELECTION_ENABLED;
- }
-
/** UI Dialogs feature enabled. */
boolean UI_DIALOGS_FEATURE_ENABLED = false;
diff --git a/adservices/service-core/java/com/android/adservices/service/PhFlags.java b/adservices/service-core/java/com/android/adservices/service/PhFlags.java
index cbd9daf..6776810 100644
--- a/adservices/service-core/java/com/android/adservices/service/PhFlags.java
+++ b/adservices/service-core/java/com/android/adservices/service/PhFlags.java
@@ -153,8 +153,6 @@
"fledge_ad_selection_scoring_timeout_ms";
static final String KEY_FLEDGE_AD_SELECTION_OVERALL_TIMEOUT_MS =
"fledge_ad_selection_overall_timeout_ms";
- static final String KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_OVERALL_TIMEOUT_MS =
- "fledge_ad_selection_off_device_overall_timeout_ms";
static final String KEY_FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S =
"fledge_ad_selection_expiration_window_s";
static final String KEY_FLEDGE_REPORT_IMPRESSION_OVERALL_TIMEOUT_MS =
@@ -162,6 +160,17 @@
static final String KEY_FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_BUYER_MS =
"fledge_ad_selection_bidding_timeout_per_buyer_ms";
+ // FLEDGE Off device ad selection keys
+ static final String KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_OVERALL_TIMEOUT_MS =
+ "fledge_ad_selection_off_device_overall_timeout_ms";
+ // Whether to call trusted servers for off device ad selection.
+ static final String KEY_FLEDE_AD_SELECTION_OFF_DEVICE_ENABLED =
+ "fledge_ad_selection_off_device_enabled";
+ // Whether to compress the request object when calling trusted servers for off device ad
+ // selection.
+ static final String KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED =
+ "fledge_ad_selection_off_device_request_compression_enabled";
+
// Fledge invoking app status keys
static final String KEY_ENFORCE_FOREGROUND_STATUS_FLEDGE_RUN_AD_SELECTION =
"fledge_ad_selection_enforce_foreground_status_run_ad_selection";
@@ -1370,6 +1379,22 @@
}
@Override
+ public boolean getAdSelectionOffDeviceEnabled() {
+ return DeviceConfig.getBoolean(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_FLEDE_AD_SELECTION_OFF_DEVICE_ENABLED,
+ FLEDGE_AD_SELECTION_OFF_DEVICE_ENABLED);
+ }
+
+ @Override
+ public boolean getAdSelectionOffDeviceRequestCompressionEnabled() {
+ return DeviceConfig.getBoolean(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED,
+ FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED);
+ }
+
+ @Override
public boolean isDisableTopicsEnrollmentCheck() {
return SystemProperties.getBoolean(
getSystemPropertyName(KEY_DISABLE_TOPICS_ENROLLMENT_CHECK),
@@ -1564,13 +1589,6 @@
/* defaultValue */ MAX_RESPONSE_BASED_REGISTRATION_SIZE_BYTES);
}
- public boolean getOffDeviceAdSelectionEnabled() {
- return DeviceConfig.getBoolean(
- DeviceConfig.NAMESPACE_ADSERVICES,
- KEY_OFF_DEVICE_AD_SELECTION_ENABLED,
- OFF_DEVICE_AD_SELECTION_ENABLED);
- }
-
@VisibleForTesting
static String getSystemPropertyName(String key) {
return SYSTEM_PROPERTY_PREFIX + key;
@@ -1985,9 +2003,14 @@
+ getForegroundStatuslLevelForValidation());
writer.println(
"\t"
- + KEY_OFF_DEVICE_AD_SELECTION_ENABLED
+ + KEY_FLEDE_AD_SELECTION_OFF_DEVICE_ENABLED
+ " = "
- + getOffDeviceAdSelectionEnabled());
+ + getAdSelectionOffDeviceEnabled());
+ writer.println(
+ "\t"
+ + KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED
+ + " = "
+ + getAdSelectionOffDeviceRequestCompressionEnabled());
writer.println(
"\t" + KEY_ENFORCE_ISOLATE_MAX_HEAP_SIZE + " = " + getEnforceIsolateMaxHeapSize());
diff --git a/adservices/service-core/java/com/android/adservices/service/adselection/AdSelectionServiceImpl.java b/adservices/service-core/java/com/android/adservices/service/adselection/AdSelectionServiceImpl.java
index a98735b..dadd927 100644
--- a/adservices/service-core/java/com/android/adservices/service/adselection/AdSelectionServiceImpl.java
+++ b/adservices/service-core/java/com/android/adservices/service/adselection/AdSelectionServiceImpl.java
@@ -202,7 +202,7 @@
mLightweightExecutor.execute(
() -> {
// TODO(b/249298855): Evolve off device ad selection logic.
- if (mFlags.getOffDeviceAdSelectionEnabled()) {
+ if (mFlags.getAdSelectionOffDeviceEnabled()) {
runOffDeviceAdSelection(
devContext,
callerUid,
diff --git a/adservices/tests/unittest/service-core/src/com/android/adservices/service/PhFlagsTest.java b/adservices/tests/unittest/service-core/src/com/android/adservices/service/PhFlagsTest.java
index 86231ed..3f03540 100644
--- a/adservices/tests/unittest/service-core/src/com/android/adservices/service/PhFlagsTest.java
+++ b/adservices/tests/unittest/service-core/src/com/android/adservices/service/PhFlagsTest.java
@@ -42,7 +42,9 @@
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_CA_MS;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_CONCURRENT_BIDDING_COUNT;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S;
+import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_OFF_DEVICE_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_OFF_DEVICE_OVERALL_TIMEOUT_MS;
+import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_AD_SELECTION_SCORING_TIMEOUT_MS;
import static com.android.adservices.service.Flags.FLEDGE_BACKGROUND_FETCH_ELIGIBLE_UPDATE_BASE_INTERVAL_S;
@@ -113,7 +115,6 @@
import static com.android.adservices.service.Flags.MEASUREMENT_REGISTRATION_INPUT_EVENT_VALID_WINDOW_MS;
import static com.android.adservices.service.Flags.MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH;
import static com.android.adservices.service.Flags.NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY;
-import static com.android.adservices.service.Flags.OFF_DEVICE_AD_SELECTION_ENABLED;
import static com.android.adservices.service.Flags.PPAPI_APP_ALLOW_LIST;
import static com.android.adservices.service.Flags.PPAPI_APP_SIGNATURE_ALLOW_LIST;
import static com.android.adservices.service.Flags.PRECOMPUTED_CLASSIFIER;
@@ -142,11 +143,13 @@
import static com.android.adservices.service.PhFlags.KEY_DOWNLOADER_READ_TIMEOUT_MS;
import static com.android.adservices.service.PhFlags.KEY_ENFORCE_FOREGROUND_STATUS_TOPICS;
import static com.android.adservices.service.PhFlags.KEY_ENFORCE_ISOLATE_MAX_HEAP_SIZE;
+import static com.android.adservices.service.PhFlags.KEY_FLEDE_AD_SELECTION_OFF_DEVICE_ENABLED;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_BUYER_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_BIDDING_TIMEOUT_PER_CA_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_CONCURRENT_BIDDING_COUNT;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_EXPIRATION_WINDOW_S;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_OVERALL_TIMEOUT_MS;
+import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_OVERALL_TIMEOUT_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_AD_SELECTION_SCORING_TIMEOUT_MS;
import static com.android.adservices.service.PhFlags.KEY_FLEDGE_BACKGROUND_FETCH_ELIGIBLE_UPDATE_BASE_INTERVAL_S;
@@ -218,7 +221,6 @@
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_REGISTRATION_INPUT_EVENT_VALID_WINDOW_MS;
import static com.android.adservices.service.PhFlags.KEY_MEASUREMENT_REGISTRATION_JOB_QUEUE_KILL_SWITCH;
import static com.android.adservices.service.PhFlags.KEY_NUMBER_OF_EPOCHS_TO_KEEP_IN_HISTORY;
-import static com.android.adservices.service.PhFlags.KEY_OFF_DEVICE_AD_SELECTION_ENABLED;
import static com.android.adservices.service.PhFlags.KEY_PPAPI_APP_ALLOW_LIST;
import static com.android.adservices.service.PhFlags.KEY_PPAPI_APP_SIGNATURE_ALLOW_LIST;
import static com.android.adservices.service.PhFlags.KEY_REGISTRATION_JOB_QUEUE_INTERVAL_MS;
@@ -3086,18 +3088,18 @@
@Test
public void testGetOffDeviceAdSelectionEnabled() {
- assertThat(FlagsFactory.getFlags().getOffDeviceAdSelectionEnabled())
- .isEqualTo(OFF_DEVICE_AD_SELECTION_ENABLED);
+ assertThat(FlagsFactory.getFlags().getAdSelectionOffDeviceEnabled())
+ .isEqualTo(FLEDGE_AD_SELECTION_OFF_DEVICE_ENABLED);
final boolean phOverridingValue = true;
DeviceConfig.setProperty(
DeviceConfig.NAMESPACE_ADSERVICES,
- KEY_OFF_DEVICE_AD_SELECTION_ENABLED,
+ KEY_FLEDE_AD_SELECTION_OFF_DEVICE_ENABLED,
Boolean.toString(phOverridingValue),
/* makeDefault */ false);
Flags phFlags = FlagsFactory.getFlags();
- assertThat(phFlags.getOffDeviceAdSelectionEnabled()).isEqualTo(phOverridingValue);
+ assertThat(phFlags.getAdSelectionOffDeviceEnabled()).isEqualTo(phOverridingValue);
}
@Test
@@ -3170,5 +3172,22 @@
assertThat(phFlags.getMaxResponseBasedRegistrationPayloadSizeBytes())
.isEqualTo(phOverrideValue);
}
+
+ @Test
+ public void testGetOffDeviceAdSelectionRequestCompressionEnabled() {
+ assertThat(FlagsFactory.getFlags().getAdSelectionOffDeviceRequestCompressionEnabled())
+ .isEqualTo(FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED);
+
+ final boolean phOverridingValue = false;
+ DeviceConfig.setProperty(
+ DeviceConfig.NAMESPACE_ADSERVICES,
+ KEY_FLEDGE_AD_SELECTION_OFF_DEVICE_REQUEST_COMPRESSION_ENABLED,
+ Boolean.toString(phOverridingValue),
+ false);
+
+ Flags phFlags = FlagsFactory.getFlags();
+ assertThat(phFlags.getAdSelectionOffDeviceRequestCompressionEnabled())
+ .isEqualTo(phOverridingValue);
+ }
// CHECKSTYLE:ON IndentationCheck
}