From 7491632c01407b3db10e248bb87348f49abe0078 Mon Sep 17 00:00:00 2001
From: "Kevin F. Haggerty" <haggertk@lineageos.org>
Date: Sat, 2 Mar 2024 08:55:45 -0700
Subject: [PATCH 08/12] Revert "Allow uses-library android.ext.adservices"

This reverts commit 0c3ae92dd16b763625a4d8c3f05012d9813dee2d.
---
 ...view_32_64_bundle.AndroidManifest.expected |  1 -
 ...webview_32_bundle.AndroidManifest.expected |  1 -
 ...view_64_32_bundle.AndroidManifest.expected |  1 -
 ...webview_64_bundle.AndroidManifest.expected |  1 -
 ...em_webview_bundle.AndroidManifest.expected |  1 -
 ...view_32_64_bundle.AndroidManifest.expected |  1 -
 ...webview_32_bundle.AndroidManifest.expected |  1 -
 ...view_64_32_bundle.AndroidManifest.expected |  1 -
 ...webview_64_bundle.AndroidManifest.expected |  1 -
 ...me_webview_bundle.AndroidManifest.expected |  1 -
 .../0_privacysandbox_AndroidManifest.xml      | 19 +++++++++++++++++++
 third_party/androidx/customizations.gni       |  6 ++++++
 12 files changed, 25 insertions(+), 10 deletions(-)
 create mode 100644 third_party/androidx/0_privacysandbox_AndroidManifest.xml

diff --git a/android_webview/expectations/system_webview_32_64_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_32_64_bundle.AndroidManifest.expected
index 19e50189e3383..ac584935634f4 100644
--- a/android_webview/expectations/system_webview_32_64_bundle.AndroidManifest.expected
+++ b/android_webview/expectations/system_webview_32_64_bundle.AndroidManifest.expected
@@ -508,7 +508,6 @@
         android:process=":sandboxed_process9"
         android:visibleToInstantApps="true">
     </service>  # DIFF-ANCHOR: e2f3bbbd
-    <uses-library android:name="android.ext.adservices" android:required="false"/>
     <uses-library android:name="android.test.base" android:required="false"/>
     <uses-library android:name="androidx.window.extensions" android:required="false"/>
   </application>
diff --git a/android_webview/expectations/system_webview_32_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_32_bundle.AndroidManifest.expected
index 08166ff979c3e..9280fc494e97c 100644
--- a/android_webview/expectations/system_webview_32_bundle.AndroidManifest.expected
+++ b/android_webview/expectations/system_webview_32_bundle.AndroidManifest.expected
@@ -507,7 +507,6 @@
         android:process=":sandboxed_process9"
         android:visibleToInstantApps="true">
     </service>  # DIFF-ANCHOR: e2f3bbbd
-    <uses-library android:name="android.ext.adservices" android:required="false"/>
     <uses-library android:name="android.test.base" android:required="false"/>
     <uses-library android:name="androidx.window.extensions" android:required="false"/>
   </application>
diff --git a/android_webview/expectations/system_webview_64_32_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_64_32_bundle.AndroidManifest.expected
index d9bf759fb48ec..26817a1f4375b 100644
--- a/android_webview/expectations/system_webview_64_32_bundle.AndroidManifest.expected
+++ b/android_webview/expectations/system_webview_64_32_bundle.AndroidManifest.expected
@@ -507,7 +507,6 @@
         android:process=":sandboxed_process9"
         android:visibleToInstantApps="true">
     </service>  # DIFF-ANCHOR: e2f3bbbd
-    <uses-library android:name="android.ext.adservices" android:required="false"/>
     <uses-library android:name="android.test.base" android:required="false"/>
     <uses-library android:name="androidx.window.extensions" android:required="false"/>
   </application>
diff --git a/android_webview/expectations/system_webview_64_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_64_bundle.AndroidManifest.expected
index 9de77f190b16c..1201f88322844 100644
--- a/android_webview/expectations/system_webview_64_bundle.AndroidManifest.expected
+++ b/android_webview/expectations/system_webview_64_bundle.AndroidManifest.expected
@@ -507,7 +507,6 @@
         android:process=":sandboxed_process9"
         android:visibleToInstantApps="true">
     </service>  # DIFF-ANCHOR: e2f3bbbd
-    <uses-library android:name="android.ext.adservices" android:required="false"/>
     <uses-library android:name="android.test.base" android:required="false"/>
     <uses-library android:name="androidx.window.extensions" android:required="false"/>
   </application>
diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
index 3162d02dd2334..d25f91883661f 100644
--- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
+++ b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
@@ -497,6 +497,5 @@
         android:process=":sandboxed_process9"
         android:visibleToInstantApps="true">
     </service>  # DIFF-ANCHOR: e2f3bbbd
-    <uses-library android:name="android.ext.adservices" android:required="false"/>
   </application>
 </manifest>
diff --git a/android_webview/expectations/trichrome_webview_32_64_bundle.AndroidManifest.expected b/android_webview/expectations/trichrome_webview_32_64_bundle.AndroidManifest.expected
index 324d49219d4c6..257ac9dd33fff 100644
--- a/android_webview/expectations/trichrome_webview_32_64_bundle.AndroidManifest.expected
+++ b/android_webview/expectations/trichrome_webview_32_64_bundle.AndroidManifest.expected
@@ -507,7 +507,6 @@
         android:process=":sandboxed_process9"
         android:visibleToInstantApps="true">
     </service>  # DIFF-ANCHOR: e2f3bbbd
-    <uses-library android:name="android.ext.adservices" android:required="false"/>
     <uses-library android:name="androidx.window.extensions" android:required="false"/>
     <uses-static-library android:name="org.chromium.trichromelibrary" android:certDigest="32a2fc74d731105859e5a85df16d95f102d85b22099b8064c5d8915c61dad1e0" android:version="OFFSET=31"/>
   </application>
diff --git a/android_webview/expectations/trichrome_webview_32_bundle.AndroidManifest.expected b/android_webview/expectations/trichrome_webview_32_bundle.AndroidManifest.expected
index 80e10e7782d55..4321e66a7b65f 100644
--- a/android_webview/expectations/trichrome_webview_32_bundle.AndroidManifest.expected
+++ b/android_webview/expectations/trichrome_webview_32_bundle.AndroidManifest.expected
@@ -506,7 +506,6 @@
         android:process=":sandboxed_process9"
         android:visibleToInstantApps="true">
     </service>  # DIFF-ANCHOR: e2f3bbbd
-    <uses-library android:name="android.ext.adservices" android:required="false"/>
     <uses-library android:name="androidx.window.extensions" android:required="false"/>
     <uses-static-library android:name="org.chromium.trichromelibrary" android:certDigest="32a2fc74d731105859e5a85df16d95f102d85b22099b8064c5d8915c61dad1e0" android:version="OFFSET=30"/>
   </application>
diff --git a/android_webview/expectations/trichrome_webview_64_32_bundle.AndroidManifest.expected b/android_webview/expectations/trichrome_webview_64_32_bundle.AndroidManifest.expected
index f0aa677125541..c72b4a97e21d7 100644
--- a/android_webview/expectations/trichrome_webview_64_32_bundle.AndroidManifest.expected
+++ b/android_webview/expectations/trichrome_webview_64_32_bundle.AndroidManifest.expected
@@ -506,7 +506,6 @@
         android:process=":sandboxed_process9"
         android:visibleToInstantApps="true">
     </service>  # DIFF-ANCHOR: e2f3bbbd
-    <uses-library android:name="android.ext.adservices" android:required="false"/>
     <uses-library android:name="androidx.window.extensions" android:required="false"/>
     <uses-static-library android:name="org.chromium.trichromelibrary" android:certDigest="32a2fc74d731105859e5a85df16d95f102d85b22099b8064c5d8915c61dad1e0" android:version="OFFSET=33"/>
   </application>
diff --git a/android_webview/expectations/trichrome_webview_64_bundle.AndroidManifest.expected b/android_webview/expectations/trichrome_webview_64_bundle.AndroidManifest.expected
index 4ce72b0b9f9af..aa9b45a1ccfab 100644
--- a/android_webview/expectations/trichrome_webview_64_bundle.AndroidManifest.expected
+++ b/android_webview/expectations/trichrome_webview_64_bundle.AndroidManifest.expected
@@ -506,7 +506,6 @@
         android:process=":sandboxed_process9"
         android:visibleToInstantApps="true">
     </service>  # DIFF-ANCHOR: e2f3bbbd
-    <uses-library android:name="android.ext.adservices" android:required="false"/>
     <uses-library android:name="androidx.window.extensions" android:required="false"/>
     <uses-static-library android:name="org.chromium.trichromelibrary" android:certDigest="32a2fc74d731105859e5a85df16d95f102d85b22099b8064c5d8915c61dad1e0" android:version="OFFSET=34"/>
   </application>
diff --git a/android_webview/expectations/trichrome_webview_bundle.AndroidManifest.expected b/android_webview/expectations/trichrome_webview_bundle.AndroidManifest.expected
index d14fe818e320a..15b28fd0e9395 100644
--- a/android_webview/expectations/trichrome_webview_bundle.AndroidManifest.expected
+++ b/android_webview/expectations/trichrome_webview_bundle.AndroidManifest.expected
@@ -497,7 +497,6 @@
         android:process=":sandboxed_process9"
         android:visibleToInstantApps="true">
     </service>  # DIFF-ANCHOR: e2f3bbbd
-    <uses-library android:name="android.ext.adservices" android:required="false"/>
     <uses-static-library android:name="org.chromium.trichromelibrary" android:certDigest="32a2fc74d731105859e5a85df16d95f102d85b22099b8064c5d8915c61dad1e0" android:version="OFFSET=31"/>
   </application>
 </manifest>
diff --git a/third_party/androidx/0_privacysandbox_AndroidManifest.xml b/third_party/androidx/0_privacysandbox_AndroidManifest.xml
new file mode 100644
index 0000000000000..da6c78ff7b0cc
--- /dev/null
+++ b/third_party/androidx/0_privacysandbox_AndroidManifest.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    package="org.chromium.privacysandbox.overrides">
+
+    <!-- Library needed for androidx.privacysandbox.ads:ads-adservices to work on Android R & S,
+      which we do not currently support. Removing out of caution to prevent the library from
+      slowing down renderer process start-up.
+      https://crbug.com/1448095
+    -->
+    <application>
+      <uses-library android:name="android.ext.adservices" tools:node="remove" />
+    </application>
+</manifest>
diff --git a/third_party/androidx/customizations.gni b/third_party/androidx/customizations.gni
index 3fe4b8178a536..d51176093da4e 100644
--- a/third_party/androidx/customizations.gni
+++ b/third_party/androidx/customizations.gni
@@ -74,6 +74,12 @@ template("_androidx_prebuilt") {
       # Replace broad library -keep rules with a more limited set in
       # chrome/android/java/proguard.flags instead.
       ignore_proguard_configs = true
+    } else if (target_name ==
+               "androidx_privacysandbox_ads_ads_adservices_java") {
+      if (!is_high_end_android) {
+        # https://crbug.com/1448095
+        mergeable_android_manifests = [ "0_privacysandbox_AndroidManifest.xml" ]
+      }
     } else if (target_name == "androidx_startup_startup_runtime_java") {
       # Keeps emoji2 code. See http://crbug.com/1205141
       ignore_proguard_configs = true
-- 
2.51.2

