Files
cromite/build/patches/Remove-binary-blob-integrations.patch
T

4836 lines
231 KiB
Diff

From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Mon, 5 Apr 2021 21:37:12 +0200
Subject: Remove binary blob integrations
Remove dependency on com.google.android.gms.auth
kill GCM
Remove dependency on com.google.android.gcm
Remove dependency on com.google.android.gms.gcm
It also disables Snippets, auto-update of offline pages and launching browser from background service.
The snippets are already disabled in native codes, this will disable it on Java level.
Remove dependency on com.google.android.play
Remove dependency on vision, clearcut and phenotype
Remove dependency on flags, places and stats
Remove dependency on fido, iid, instantapps, location
Remove dependency on com.google.android.gms.cast
Remove dependency on auth, signin, dynamic and tasks
Remove google_services_gcm
ungoogled-chromium: Disable GCM
Disable Google Cloud Messaging (GCM) client
Disable web authentication phone support
Parts of this patch were developed by csagan5, uazo and others.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
...em_webview_bundle.AndroidManifest.expected | 5 -
build/android/gyp/proguard.py | 2 +
build/config/android/config.gni | 4 +-
chrome/android/BUILD.gn | 32 +-
chrome/android/chrome_java_sources.gni | 5 -
chrome/android/java/AndroidManifest.xml | 50 --
.../browser/ChromeBackgroundService.java | 11 +-
.../browser/PlayServicesVersionInfo.java | 12 +-
.../ChromeBackgroundTaskFactory.java | 3 -
.../settings/PasswordSettings.java | 9 -
chrome/android/javatests/BUILD.gn | 7 -
chrome/android/junit/BUILD.gn | 6 -
chrome/browser/language/android/BUILD.gn | 3 -
.../language/AppLanguagePromoDialog.java | 31 -
.../language/settings/LanguageSettings.java | 6 -
chrome/browser/omaha/android/BUILD.gn | 1 -
.../browser/password_manager/android/BUILD.gn | 5 -
.../password_manager/GmsUpdateLauncher.java | 28 -
.../PasswordManagerAndroidBackendUtil.java | 38 +-
.../PasswordManagerHelper.java | 9 -
...swordSyncControllerDelegateBridgeImpl.java | 7 -
.../android/one_time_passwords/BUILD.gn | 2 -
.../AndroidSmsOtpFetchReceiverBridge.java | 6 +-
.../AndroidSmsOtpFetcher.java | 4 +-
.../push_messaging_service_factory.cc | 8 +-
.../notification_telemetry_service.cc | 1 +
chrome/browser/ui/BUILD.gn | 3 -
chrome/browser/ui/android/omnibox/BUILD.gn | 4 -
.../FullscreenSigninMediator.java | 4 +-
chrome/browser/ui/webauthn/sheet_models.cc | 9 +-
.../browser/ui/webui/chrome_web_ui_configs.cc | 1 -
chrome/browser/webauthn/android/BUILD.gn | 1 -
.../CableAuthenticatorModuleProvider.java | 35 +-
chrome/browser/webauthn/cablev2_devices.cc | 3 +
chrome/browser/webid/BUILD.gn | 3 -
.../DigitalCredentialsCreationDelegate.java | 112 ----
...igitalCredentialsPresentationDelegate.java | 88 +--
chrome/test/android/BUILD.gn | 2 -
.../ExternalNavigationHandler.java | 8 -
components/externalauth/android/BUILD.gn | 3 -
.../externalauth/ExternalAuthUtils.java | 34 +-
.../UserRecoverableErrorHandler.java | 8 -
.../gcm_driver/GoogleCloudMessagingV2.java | 2 +
components/gcm_driver/gcm_client_impl.cc | 4 +
.../gcm_driver/instance_id/android/BUILD.gn | 3 -
.../instance_id/InstanceIDBridge.java | 56 +-
.../InstalledAppProviderImpl.java | 2 +-
.../media_router/browser/android/BUILD.gn | 11 -
.../media_router/BrowserMediaRouter.java | 21 +-
.../components/media_router/MediaSink.java | 44 +-
.../media_router/MediaStatusBridge.java | 40 +-
.../caf/BaseNotificationController.java | 59 --
.../caf/BaseSessionController.java | 112 +---
.../caf/CafBaseMediaRouteProvider.java | 113 +---
.../caf/CafMediaRouteProvider.java | 21 -
.../media_router/caf/CafMessageHandler.java | 106 +---
.../media_router/caf/CastMediaSource.java | 10 +-
.../media_router/caf/CastOptionsProvider.java | 21 +-
.../caf/CastSessionController.java | 87 ---
.../media_router/caf/CastUtils.java | 8 -
.../CafExpandedControllerActivity.java | 46 +-
.../CafRemotingMediaRouteProvider.java | 4 +-
.../remoting/FlingingControllerAdapter.java | 96 ---
.../caf/remoting/RemotingMediaSource.java | 8 +-
.../remoting/RemotingSessionController.java | 31 -
.../test/android/cast_emulator/BUILD.gn | 1 -
components/module_installer/android/BUILD.gn | 4 -
components/omnibox/common/BUILD.gn | 1 -
.../components/omnibox/OmniboxFeatures.java | 8 -
components/signin/public/android/BUILD.gn | 3 -
components/webauthn/android/BUILD.gn | 15 +-
.../webauthn/AuthenticatorImpl.java | 81 +--
.../webauthn/ConditionalUiState.java | 15 +
.../components/webauthn/GmsCoreUtils.java | 28 +-
.../webauthn/WebauthnModeProvider.java | 15 -
.../webauthn/cred_man/CredManHelper.java | 16 +-
.../cred_man/CredManMetricsHelper.java | 2 +-
.../push_messaging/push_messaging_manager.cc | 2 +-
content/public/android/BUILD.gn | 4 -
content/test/BUILD.gn | 4 -
device/BUILD.gn | 3 -
device/fido/features.cc | 1 +
services/BUILD.gn | 10 -
services/device/geolocation/BUILD.gn | 4 -
services/shape_detection/BUILD.gn | 2 -
third_party/android_deps/BUILD.gn | 273 +--------
third_party/android_deps/autorolled/BUILD.gn | 550 ------------------
.../preconditions/javatests/BUILD.gn | 1 -
.../gms/ChromiumPlayServicesAvailability.java | 10 +-
third_party/androidx/customizations.gni | 14 +-
third_party/cardboard/BUILD.gn | 4 -
91 files changed, 124 insertions(+), 2465 deletions(-)
create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java
diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
--- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
+++ b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
@@ -23,10 +23,6 @@
android:label="Android System WebView"
android:multiArch="true"
android:use32bitAbi="true">
- <activity # DIFF-ANCHOR: ea1a94af
- android:name="com.google.android.gms.common.api.GoogleApiActivity"
- android:exported="false"
- android:theme="@android:style/Theme.Translucent.NoTitleBar">
</activity> # DIFF-ANCHOR: ea1a94af
<activity # DIFF-ANCHOR: a4438884
android:name="org.chromium.android_webview.devui.MainActivity"
@@ -70,7 +66,6 @@
android:visibleToInstantApps="true">
</activity-alias> # DIFF-ANCHOR: b7cc06e9
<meta-data android:name="$PACKAGE.WebViewLibrary" android:value="libwebviewchromium.so"/>
- <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
<meta-data android:name="org.chromium.content.browser.NUM_PRIVILEGED_SERVICES" android:value="0"/>
<meta-data android:name="org.chromium.content.browser.NUM_SANDBOXED_SERVICES" android:value="40"/>
<provider # DIFF-ANCHOR: a5e78e63
diff --git a/build/android/gyp/proguard.py b/build/android/gyp/proguard.py
--- a/build/android/gyp/proguard.py
+++ b/build/android/gyp/proguard.py
@@ -53,6 +53,8 @@ _IGNORE_WARNINGS = (
r'EditorDialogToolbar',
# https://crbug.com/1441226
r'PaymentRequest[BH]',
+ # com.google.android.gms.cast is stripped down from the build
+ r'class com\.google\.android\.gms\.',
]) + ')',
# We enforce that this class is removed via -checkdiscard.
r'FastServiceLoader\.class:.*Could not inline ServiceLoader\.load',
diff --git a/build/config/android/config.gni b/build/config/android/config.gni
--- a/build/config/android/config.gni
+++ b/build/config/android/config.gni
@@ -183,9 +183,7 @@ if (is_android) {
# google_play_services_package contains the path where individual client
# targets (e.g. google_play_services_base_java) are located.
- if (!defined(google_play_services_package)) {
- google_play_services_package = "//third_party/android_deps"
- }
+ google_play_services_package = ""
if (!defined(android_protoc_bin)) {
android_protoc_bin = "//third_party/android_build_tools/protoc/cipd/protoc"
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -316,14 +316,6 @@ if (_is_default_toolchain) {
":java_overlay_resources",
":system_ai_service_proto_java",
":usage_stats_proto_java",
- "$google_play_services_package:google_play_services_auth_base_java",
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_cast_framework_java",
- "$google_play_services_package:google_play_services_cast_java",
- "$google_play_services_package:google_play_services_gcm_java",
- "$google_play_services_package:google_play_services_iid_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:content_uri_utils_java",
"//base:service_loader_java",
"//base:task_executor_java",
@@ -736,11 +728,20 @@ if (_is_default_toolchain) {
"//services/shape_detection:shape_detection_java",
"//services/shape_detection/public/mojom:mojom_java",
"//skia/public/mojom:mojom_java",
+ # added for Bromite in place of binary blobs
+ "//third_party/androidx:androidx_annotation_annotation_java",
+ "//third_party/androidx:androidx_lifecycle_lifecycle_common_java",
+ "//third_party/androidx:androidx_appcompat_appcompat_java",
+ "//third_party/androidx:androidx_fragment_fragment_java",
+ "//third_party/androidx:androidx_core_core_java",
+ "//third_party/androidx:androidx_media_media_java",
+ "//third_party/androidx:androidx_recyclerview_recyclerview_java",
+ "//third_party/androidx:androidx_vectordrawable_vectordrawable_java",
+ "//base:base_java",
+ "//third_party/jni_zero:jni_zero_java",
"//third_party/android_deps:chromium_play_services_availability_java",
- "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
"//third_party/android_deps:guava_android_java",
"//third_party/android_deps:material_design_java",
- "//third_party/android_deps:playcore_java",
"//third_party/android_deps:protobuf_lite_runtime_java",
"//third_party/android_media:android_media_java",
"//third_party/android_swipe_refresh:android_swipe_refresh_java",
@@ -1929,7 +1930,6 @@ if (_is_default_toolchain) {
]
deps = [
":chrome_java",
- "$google_play_services_package:google_play_services_gcm_java",
"//base:base_java",
"//base:base_java_test_support",
"//build/android:build_java",
@@ -2033,7 +2033,6 @@ if (_is_default_toolchain) {
# is in a DFM.
android_library("base_module_java") {
sources = [
- "java/src/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java",
"java/src/org/chromium/chrome/app/TrichromeZygotePreload.java",
"java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
"java/src/org/chromium/chrome/browser/DeferredStartupHandler.java",
@@ -2051,8 +2050,6 @@ if (_is_default_toolchain) {
"java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java",
- "java/src/org/chromium/chrome/browser/base/SplitCompatGcmListenerService.java",
- "java/src/org/chromium/chrome/browser/base/SplitCompatGcmTaskService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java",
@@ -2078,15 +2075,10 @@ if (_is_default_toolchain) {
"java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
"java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java",
"java/src/org/chromium/chrome/browser/provider/PageContentProvider.java",
- "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java",
- "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundService.java",
- "java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java",
"java/src/org/chromium/chrome/browser/tracing/TracingNotificationService.java",
]
deps = [
":chrome_base_module_resources",
- "$google_play_services_package:google_firebase_firebase_messaging_java",
- "$google_play_services_package:google_play_services_gcm_java",
"//base:base_java",
"//chrome/browser/autofill/android:third_party_provider_java",
"//chrome/browser/download/android:file_provider_java",
@@ -2101,7 +2093,6 @@ if (_is_default_toolchain) {
"//components/media_router/browser/android:cast_options_provider_java",
"//components/minidump_uploader:minidump_uploader_java",
"//components/module_installer/android:module_installer_java",
- "//third_party/android_deps:playcore_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_collection_collection_java",
"//third_party/jni_zero:jni_zero_java",
@@ -2121,7 +2112,6 @@ if (_is_default_toolchain) {
# Deps to pull services into base module.
# TODO(crbug.com/40148088): Consider moving these to the chrome module to
# reduce base dex size.
- "$google_play_services_package:google_play_services_cast_framework_java",
"//components/background_task_scheduler:background_task_scheduler_java",
"//components/payments/content/android:service_java",
"//third_party/androidx:androidx_annotation_annotation_experimental_java",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -14,7 +14,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java",
"java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java",
"java/src/org/chromium/chrome/browser/ChromeApplicationImpl.java",
- "java/src/org/chromium/chrome/browser/ChromeBackgroundServiceImpl.java",
"java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
"java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java",
"java/src/org/chromium/chrome/browser/ChromeKeyboardVisibilityDelegate.java",
@@ -939,10 +938,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/segmentation_platform/ReaderModeActionProvider.java",
"java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java",
"java/src/org/chromium/chrome/browser/selection/ChromeSelectionDropdownMenuDelegate.java",
- "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerServiceImpl.java",
- "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundServiceImpl.java",
- "java/src/org/chromium/chrome/browser/services/gcm/GCMNativeBackgroundTask.java",
- "java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java",
"java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java",
"java/src/org/chromium/chrome/browser/settings/MainSettings.java",
"java/src/org/chromium/chrome/browser/settings/SettingsActivity.java",
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -133,19 +133,14 @@ by a child template that "extends" this file.
<permission android:name="{{ manifest_package }}.permission.CHILD_SERVICE" android:protectionLevel="signature" />
<permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" android:protectionLevel="signatureOrSystem" />
<permission android:name="{{ manifest_package }}.TOS_ACKED" android:protectionLevel="signatureOrSystem" />
- <!-- Only chrome can receive the messages and registration result -->
- <permission android:name="{{ manifest_package }}.permission.C2D_MESSAGE"
- android:protectionLevel="signature" />
<permission android:name="{{ manifest_package }}.permission.DEBUG"
android:label="Debug web pages"
android:protectionLevel="signature" />
- <uses-permission android:name="{{ manifest_package }}.permission.C2D_MESSAGE" />
<uses-permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" />
<uses-permission android:name="{{ manifest_package }}.TOS_ACKED" />
<uses-permission android:name="com.chrome.permission.DEVICE_EXTRAS" />
- <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />
@@ -800,16 +795,6 @@ by a child template that "extends" this file.
</intent-filter>
</activity>
- <activity android:name="org.chromium.components.media_router.caf.remoting.CafExpandedControllerActivity"
- android:theme="@style/Theme.Chromium.Activity"
- android:label="Chrome.CafExpandedControllerActivity"
- android:hardwareAccelerated="true"
- android:launchMode="singleTask"
- android:noHistory="true"
- android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
- android:excludeFromRecents="true">
- </activity>
-
<!-- This activity is used to restart the main Chrome process. Should never be exported. -->
<activity android:name="org.chromium.chrome.browser.BrowserRestartActivity"
android:launchMode="singleInstance"
@@ -972,26 +957,6 @@ by a child template that "extends" this file.
</intent-filter>
</activity>
- <!-- GcmTaskService for registration for Invalidations. Not actually implemented anymore. -->
- <service android:name="com.google.ipc.invalidation.ticl.android2.channel.GcmRegistrationTaskService"
- android:exported="true"
- android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE" >
- <intent-filter>
- <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/>
- </intent-filter>
- </service>
- <!-- GcmListenerService for messages from GCM. -->
- <service android:name="org.chromium.chrome.browser.services.gcm.ChromeGcmListenerService"
- android:exported="false" >
- <intent-filter>
- <action android:name="com.google.firebase.MESSAGING_EVENT" />
- </intent-filter>
- </service>
- <service android:name="org.chromium.chrome.browser.services.gcm.GCMBackgroundService"
- android:exported="false"/>
- <service android:name="org.chromium.chrome.browser.services.gcm.InvalidationGcmUpstreamSender"
- android:exported="false"/>
-
<!-- Android Notification service listener -->
<service android:name="org.chromium.chrome.browser.notifications.NotificationService"
android:exported="false"/>
@@ -1027,15 +992,6 @@ by a child template that "extends" this file.
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE"/>
- <!-- GcmTaskService implementation to wake Chrome on scheduled events -->
- <service android:name="org.chromium.chrome.browser.ChromeBackgroundService"
- android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
- android:exported="true">
- <intent-filter>
- <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
- </intent-filter>
- </service>
-
<service android:name="org.chromium.chrome.browser.customtabs.CustomTabsConnectionService"
android:exported="true"
tools:ignore="ExportedService">
@@ -1313,12 +1269,6 @@ by a child template that "extends" this file.
<uses-native-library android:name="libopenxr.google.so" android:required="false" />
{% endif %}
- <!-- Cast support -->
- <meta-data
- android:name=
- "com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
- android:value="org.chromium.components.media_router.caf.CastOptionsProvider"/>
-
<!-- These providers are declared in the base module to give the chrome
split preloader more time to work. -->
<provider android:name="org.chromium.chrome.browser.util.ChromeFileProvider"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
@@ -6,16 +6,7 @@ package org.chromium.chrome.browser;
import org.chromium.build.annotations.IdentifierNameString;
import org.chromium.build.annotations.NullMarked;
-import org.chromium.chrome.browser.base.SplitCompatGcmTaskService;
-
/** See {@link ChromeBackgroundServiceImpl}. */
@NullMarked
-public class ChromeBackgroundService extends SplitCompatGcmTaskService {
- @SuppressWarnings("FieldCanBeFinal") // @IdentifierNameString requires non-final
- private static @IdentifierNameString String sImplClassName =
- "org.chromium.chrome.browser.ChromeBackgroundServiceImpl";
-
- public ChromeBackgroundService() {
- super(sImplClassName);
- }
+public class ChromeBackgroundService {
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java
@@ -4,9 +4,6 @@
package org.chromium.chrome.browser;
-
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.jni_zero.CalledByNative;
import org.jni_zero.JniType;
@@ -27,7 +24,7 @@ public class PlayServicesVersionInfo {
*/
@CalledByNative
public static @JniType("std::string") String getGmsInfo() {
- final long sdkVersion = GoogleApiAvailability.GOOGLE_PLAY_SERVICES_VERSION_CODE;
+ final long sdkVersion = 12600000;
final long installedGmsVersion = getApkVersionNumber();
final String accessType;
@@ -52,11 +49,6 @@ public class PlayServicesVersionInfo {
* package is not found.
*/
public static int getApkVersionNumber() {
- int ret =
- PackageUtils.getPackageVersion(GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE);
- if (ret < 0) {
- ret = 0;
- }
- return ret;
+ return 0;
}
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java
@@ -16,7 +16,6 @@ import org.chromium.chrome.browser.notifications.scheduler.NotificationScheduler
import org.chromium.chrome.browser.offlinepages.OfflineBackgroundTask;
import org.chromium.chrome.browser.omaha.OmahaService;
import org.chromium.chrome.browser.safety_hub.SafetyHubFetchTask;
-import org.chromium.chrome.browser.services.gcm.GCMNativeBackgroundTask;
import org.chromium.chrome.browser.webapps.WebApkUpdateTask;
import org.chromium.components.background_task_scheduler.BackgroundTask;
import org.chromium.components.background_task_scheduler.BackgroundTaskFactory;
@@ -58,8 +57,6 @@ public class ChromeBackgroundTaskFactory implements BackgroundTaskFactory {
switch (taskId) {
case TaskIds.OMAHA_JOB_ID:
return new OmahaService();
- case TaskIds.GCM_BACKGROUND_TASK_JOB_ID:
- return new GCMNativeBackgroundTask();
case TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID:
return new OfflineBackgroundTask();
case TaskIds.DOWNLOAD_SERVICE_JOB_ID:
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
@@ -131,7 +131,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
private Preference mLinkPref;
private Menu mMenu;
- private @Nullable PasswordCheck mPasswordCheck;
private @ManagePasswordsReferrer int mManagePasswordsReferrer;
private final ObservableSupplierImpl<String> mPageTitle = new ObservableSupplierImpl<>();
@@ -214,7 +213,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- mPasswordCheck = PasswordCheckFactory.getOrCreate();
computeTrustedVaultBannerState();
}
@@ -319,9 +317,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
if (shouldShowAutoSigninOption()) {
createAutoSignInCheckbox();
}
- if (mPasswordCheck != null) {
- createCheckPasswords();
- }
if (mTrustedVaultBannerState == TrustedVaultBannerState.OPTED_IN) {
createTrustedVaultBanner(
@@ -523,10 +518,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
// by the system.
if (getActivity().isFinishing()) {
PasswordManagerHandlerProvider.getForProfile(getProfile()).removeObserver(this);
- if (mPasswordCheck != null
- && mManagePasswordsReferrer != ManagePasswordsReferrer.CHROME_SETTINGS) {
- PasswordCheckFactory.destroy();
- }
}
}
diff --git a/chrome/android/javatests/BUILD.gn b/chrome/android/javatests/BUILD.gn
--- a/chrome/android/javatests/BUILD.gn
+++ b/chrome/android/javatests/BUILD.gn
@@ -55,13 +55,6 @@ android_library("chrome_test_java_helper") {
]
public_deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_cast_framework_java",
- "$google_play_services_package:google_play_services_cast_java",
- "$google_play_services_package:google_play_services_gcm_java",
- "$google_play_services_package:google_play_services_iid_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_java_test_support_uncommon",
diff --git a/chrome/android/junit/BUILD.gn b/chrome/android/junit/BUILD.gn
--- a/chrome/android/junit/BUILD.gn
+++ b/chrome/android/junit/BUILD.gn
@@ -43,12 +43,6 @@ if (is_android) {
]
public_deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_cast_framework_java",
- "$google_play_services_package:google_play_services_cast_java",
- "$google_play_services_package:google_play_services_gcm_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_java_test_support_uncommon",
diff --git a/chrome/browser/language/android/BUILD.gn b/chrome/browser/language/android/BUILD.gn
--- a/chrome/browser/language/android/BUILD.gn
+++ b/chrome/browser/language/android/BUILD.gn
@@ -10,15 +10,12 @@ android_library("base_module_java") {
sources = [
"java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java",
"java/src/org/chromium/chrome/browser/language/GlobalAppLocaleController.java",
- "java/src/org/chromium/chrome/browser/language/LanguageSplitInstaller.java",
]
deps = [
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//build/android:build_java",
"//chrome/browser/preferences:java",
"//components/language/android:java",
- "//third_party/android_deps:playcore_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//ui/android:ui_no_recycler_view_java",
]
diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java
--- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java
+++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java
@@ -593,12 +593,6 @@ public class AppLanguagePromoDialog {
mLoadingModal.set(ModalDialogProperties.CUSTOM_VIEW, customView);
- // Only show the modal if the selected language is not installed.
- if (!LanguageSplitInstaller.getInstance()
- .isLanguageSplitInstalled(selectedLanguage.getCode())) {
- mModalDialogManager.showDialog(mLoadingModal, ModalDialogManager.ModalDialogType.APP);
- }
-
boolean isSelectedCurrentUi = AppLocaleUtils.isAppLanguagePref(selectedLanguage.getCode());
if (!isSelectedCurrentUi) {
// Only record isTopLanguage if the app language has changed.
@@ -606,31 +600,6 @@ public class AppLanguagePromoDialog {
}
AndroidLanguageMetricsBridge.reportAppLanguagePromptLanguage(
selectedLanguage.isSystemDefault() ? "" : selectedLanguage.getCode());
-
- // Create call back for after language split install completes.
- AppLocaleUtils.setAppLanguagePref(
- selectedLanguage.getCode(),
- (success) -> {
- if (success) {
- if (!isSelectedCurrentUi) {
- // Only restart if the new language is different than the current UI.
- mRestartAction.restart();
- }
- } else {
- // The loading language modal will always already be shown if a download
- // fails.
- CharSequence failedText =
- mActivity
- .getResources()
- .getString(
- R.string.languages_split_failed,
- selectedLanguage.getDisplayName());
- messageView.setText(failedText);
- mLoadingModal.set(
- ModalDialogProperties.POSITIVE_BUTTON_TEXT,
- mActivity.getText(R.string.ok).toString());
- }
- });
}
/**
diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java
--- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java
+++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java
@@ -24,7 +24,6 @@ import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.language.AppLocaleUtils;
import org.chromium.chrome.browser.language.GlobalAppLocaleController;
-import org.chromium.chrome.browser.language.LanguageSplitInstaller;
import org.chromium.chrome.browser.language.R;
import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.preferences.PrefServiceUtil;
@@ -144,11 +143,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment
* translate target language, and detailed translate preferences.
*/
private void createDetailedPreferences() {
- // Log currently installed language splits.
- String installedLanguages =
- TextUtils.join(",", LanguageSplitInstaller.getInstance().getInstalledLanguages());
- Log.i(TAG, TextUtils.concat("Installed Languages: ", installedLanguages).toString());
-
SettingsUtils.addPreferencesFromResource(this, R.xml.languages_detailed_preferences);
setupAppLanguageSection();
diff --git a/chrome/browser/omaha/android/BUILD.gn b/chrome/browser/omaha/android/BUILD.gn
--- a/chrome/browser/omaha/android/BUILD.gn
+++ b/chrome/browser/omaha/android/BUILD.gn
@@ -21,7 +21,6 @@ android_library("java") {
]
deps = [
":update_proto_java",
- "$google_play_services_package:google_play_services_base_java",
"//base:base_java",
"//base:base_shared_preferences_java",
"//base/version_info/android:version_constants_java",
diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn
--- a/chrome/browser/password_manager/android/BUILD.gn
+++ b/chrome/browser/password_manager/android/BUILD.gn
@@ -126,8 +126,6 @@ android_library("java") {
":java_resources",
":settings_interface_java",
":utils_java",
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
"account_storage_notice:java",
"//base:base_java",
"//build/android:build_java",
@@ -266,7 +264,6 @@ android_library("utils_java") {
deps = [
":java_resources",
- "$google_play_services_package:google_play_services_base_java",
"//base:base_java",
"//base:resetters_java",
"//base:tasks_java",
@@ -354,8 +351,6 @@ robolectric_binary("password_manager_junit_tests") {
":test_support_java",
":unified_password_manager_proto_java",
":utils_java",
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
"access_loss:junit",
"account_storage_notice:junit",
"add_username_dialog:junit",
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/GmsUpdateLauncher.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/GmsUpdateLauncher.java
--- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/GmsUpdateLauncher.java
+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/GmsUpdateLauncher.java
@@ -9,8 +9,6 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.build.annotations.NullMarked;
/** Launches the UI through which the user can update Google Play Services/ */
@@ -25,31 +23,5 @@ public class GmsUpdateLauncher {
* @param context to start the new store Activity from.
*/
public static void launch(Context context) {
- Intent intent = new Intent(Intent.ACTION_VIEW);
- String deepLinkUrl =
- "market://details?id="
- + GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE
- + "&referrer="
- + STORE_REFERER;
-
- intent.setPackage("com.android.vending");
- intent.setData(Uri.parse(deepLinkUrl));
- intent.putExtra("callerId", context.getPackageName());
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-
- // Request for overlay flow, Play Store will fallback to the default
- // behaviour if overlay is not available.
- // TODO(crbug.com/40855336): Use AlleyOop v3 overlay UI after fixing Chrome restart
- // during the GMS Core installation.
- // intent.putExtra("overlay", true);
- try {
- context.startActivity(intent);
- } catch (ActivityNotFoundException e) {
- // In case that Google Play Store isn't present on the device, its activity could not
- // have been started.
- // TODO: b/334051261 - Instead of silently failing to open Google Play Store to offer
- // updating GMS Core, either don't offer the option at all or indicate why the update
- // button didn't work.
- }
}
}
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java
--- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java
+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java
@@ -5,10 +5,6 @@ package org.chromium.chrome.browser.password_manager;
import android.app.PendingIntent;
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.api.ApiException;
-import com.google.android.gms.common.api.ResolvableApiException;
-
import org.chromium.base.Log;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -28,9 +24,6 @@ class PasswordManagerAndroidBackendUtil {
if (exception instanceof PasswordStoreAndroidBackend.BackendException) {
return ((PasswordStoreAndroidBackend.BackendException) exception).errorCode;
}
- if (exception instanceof ApiException) {
- return AndroidBackendErrorType.EXTERNAL_ERROR;
- }
return AndroidBackendErrorType.UNCATEGORIZED;
}
@@ -39,41 +32,14 @@ class PasswordManagerAndroidBackendUtil {
return ((PasswordCheckupClientHelper.PasswordCheckBackendException) exception)
.errorCode;
}
- if (exception instanceof ApiException) {
- return CredentialManagerError.API_EXCEPTION;
- }
return CredentialManagerError.OTHER_API_ERROR;
}
static int getApiErrorCode(Exception exception) {
- if (exception instanceof ApiException) {
- return ((ApiException) exception).getStatusCode();
- }
- return 0; // '0' means SUCCESS.
+ return 13; // '13' means ERROR
}
static @Nullable Integer getConnectionResultCode(Exception exception) {
- if (!(exception instanceof ApiException)) return null;
-
- ConnectionResult connectionResult =
- ((ApiException) exception).getStatus().getConnectionResult();
- if (connectionResult == null) return null;
-
- return connectionResult.getErrorCode();
- }
-
- static void handleResolvableApiException(ResolvableApiException exception) {
- // No special resolution for the authentication errors is needed since the user has already
- // been prompted to reauthenticate by Google services and Sync in Chrome.
- if (exception.getStatusCode() == ChromeSyncStatusCode.AUTH_ERROR_RESOLVABLE) return;
-
- // For all other resolvable errors, an intent is launched allowing the user to fix the
- // broken state.
- PendingIntent pendingIntent = exception.getResolution();
- try {
- pendingIntent.send();
- } catch (PendingIntent.CanceledException e) {
- Log.e(TAG, "Can not launch error resolution intent", e);
- }
+ return null;
}
}
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java
--- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java
+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java
@@ -22,8 +22,6 @@ import androidx.annotation.IntDef;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.FragmentActivity;
-import com.google.android.gms.common.api.ApiException;
-
import org.jni_zero.JniType;
import org.jni_zero.NativeMethods;
@@ -739,13 +737,6 @@ public class PasswordManagerHelper {
// If the exception is not a Chrome-defined one, it means that the call failed at the
// API call level. It could have either failed with a known ApiException or because of a
// different error (e.g. a different exception thrown by the implementation of the API).
- if (!(exception instanceof ApiException)) {
- RecordHistogram.recordEnumeratedHistogram(
- kGetIntentErrorHistogram,
- CredentialManagerError.OTHER_API_ERROR,
- CredentialManagerError.COUNT);
- return;
- }
RecordHistogram.recordEnumeratedHistogram(
kGetIntentErrorHistogram,
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java
--- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java
+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java
@@ -4,8 +4,6 @@
package org.chromium.chrome.browser.password_manager;
-import com.google.android.gms.common.api.ApiException;
-
import org.jni_zero.CalledByNative;
import org.jni_zero.NativeMethods;
@@ -78,11 +76,6 @@ class PasswordSyncControllerDelegateBridgeImpl {
error = ((PasswordStoreAndroidBackend.BackendException) exception).errorCode;
}
- if (exception instanceof ApiException) {
- error = AndroidBackendErrorType.EXTERNAL_ERROR;
- apiErrorCode = ((ApiException) exception).getStatusCode();
- }
-
PasswordSyncControllerDelegateBridgeImplJni.get()
.onCredentialManagerError(mNativeDelegateBridgeImpl, error, apiErrorCode);
}
diff --git a/chrome/browser/password_manager/android/one_time_passwords/BUILD.gn b/chrome/browser/password_manager/android/one_time_passwords/BUILD.gn
--- a/chrome/browser/password_manager/android/one_time_passwords/BUILD.gn
+++ b/chrome/browser/password_manager/android/one_time_passwords/BUILD.gn
@@ -47,7 +47,6 @@ android_library("java") {
]
deps = [
- "$google_play_services_package:google_play_services_basement_java",
"//base:base_java",
"//build/android:build_java",
"//chrome/browser/password_manager/android/one_time_passwords:sms_otp_fetching_interface_java",
@@ -61,7 +60,6 @@ android_library("java") {
android_library("sms_otp_fetching_interface_java") {
deps = [
- "$google_play_services_package:google_play_services_basement_java",
"//base:base_java",
"//base:service_loader_java",
]
diff --git a/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetchReceiverBridge.java b/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetchReceiverBridge.java
--- a/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetchReceiverBridge.java
+++ b/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetchReceiverBridge.java
@@ -4,8 +4,6 @@
package org.chromium.chrome.browser.password_manager.one_time_passwords;
-import com.google.android.gms.common.api.ApiException;
-
import org.jni_zero.CalledByNative;
import org.jni_zero.NativeMethods;
@@ -34,11 +32,11 @@ class AndroidSmsOtpFetchReceiverBridge {
.onOtpValueRetrieved(mNativeReceiverBridge, otpValue);
}
- void onOtpValueRetrievalError(ApiException exception) {
+ void onOtpValueRetrievalError(Object exception) {
if (mNativeReceiverBridge == 0) return;
AndroidSmsOtpFetchReceiverBridgeJni.get()
- .onOtpValueRetrievalError(mNativeReceiverBridge, exception.getStatusCode());
+ .onOtpValueRetrievalError(mNativeReceiverBridge, 500);
}
@CalledByNative
diff --git a/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetcher.java b/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetcher.java
--- a/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetcher.java
+++ b/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetcher.java
@@ -3,8 +3,6 @@
// found in the LICENSE file.
package org.chromium.chrome.browser.password_manager.one_time_passwords;
-import com.google.android.gms.common.api.ApiException;
-
import org.chromium.base.Callback;
import org.chromium.build.annotations.NullMarked;
@@ -17,5 +15,5 @@ public interface AndroidSmsOtpFetcher {
* @param otpValueCallback Callback that is called on success with the fetched OTP value string.
* @param failureCallback A callback that is called on failure for any reason.
*/
- void retrieveSmsOtp(Callback<String> otpValueCallback, Callback<ApiException> failureCallback);
+ void retrieveSmsOtp(Callback<String> otpValueCallback, Callback<Object> failureCallback);
}
diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/chrome/browser/push_messaging/push_messaging_service_factory.cc
--- a/chrome/browser/push_messaging/push_messaging_service_factory.cc
+++ b/chrome/browser/push_messaging/push_messaging_service_factory.cc
@@ -21,13 +21,7 @@
// static
PushMessagingServiceImpl* PushMessagingServiceFactory::GetForProfile(
content::BrowserContext* context) {
- // The Push API is not currently supported in incognito mode.
- // See https://crbug.com/401439.
- if (context->IsOffTheRecord())
- return nullptr;
-
- return static_cast<PushMessagingServiceImpl*>(
- GetInstance()->GetServiceForBrowserContext(context, true));
+ return nullptr;
}
// static
diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc b/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc
--- a/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc
+++ b/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc
@@ -116,6 +116,7 @@ NotificationTelemetryService::NotificationTelemetryService(
// Notification Telemetry Service is a keyed service and will outlive
// any invocations of the callback being registered with the push messaging
// service (also a keyed service).
+ if (push_messaging_service)
push_messaging_service->SetSubscribeFromWorkerCallback(base::BindRepeating(
&NotificationTelemetryService::OnNewNotificationServiceWorkerSubscription,
base::Unretained(this)));
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -176,8 +176,6 @@ static_library("ui") {
"webui/flags/flags_ui.h",
"webui/flags/flags_ui_handler.cc",
"webui/flags/flags_ui_handler.h",
- "webui/gcm_internals_ui.cc",
- "webui/gcm_internals_ui.h",
"webui/history_clusters/history_clusters_internals_ui_config.cc",
"webui/history_clusters/history_clusters_internals_ui_config.h",
"webui/interstitials/interstitial_ui.cc",
@@ -486,7 +484,6 @@ static_library("ui") {
"//components/fingerprinting_protection_filter/browser",
"//components/fingerprinting_protection_filter/interventions/browser",
"//components/fingerprinting_protection_filter/interventions/common:features",
- "//components/gcm_driver",
"//components/google/core/common",
"//components/heap_profiling/multi_process",
"//components/history/content/browser",
diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn
--- a/chrome/browser/ui/android/omnibox/BUILD.gn
+++ b/chrome/browser/ui/android/omnibox/BUILD.gn
@@ -154,8 +154,6 @@ android_library("java") {
deps = [
":java_resources",
- "$google_play_services_package:google_play_services_location_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//base/version_info/android:version_constants_java",
"//build/android:build_java",
@@ -478,8 +476,6 @@ robolectric_library("junit") {
deps = [
":java",
":java_resources",
- "$google_play_services_package:google_play_services_location_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java
--- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java
+++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java
@@ -246,11 +246,9 @@ public class FullscreenSigninMediator
* also means that native has been initialized.
*/
void onInitialLoadCompleted(boolean hasPolicies) {
- boolean isMetricsReportingDisabledByPolicy = false;
+ boolean isMetricsReportingDisabledByPolicy = true;
Log.i(TAG, "#onInitialLoadCompleted() hasPolicies:" + hasPolicies);
if (hasPolicies) {
- isMetricsReportingDisabledByPolicy =
- !mPrivacyPreferencesManager.isUsageAndCrashReportingPermittedByPolicy();
mModel.set(
FullscreenSigninProperties.SHOW_ENTERPRISE_MANAGEMENT_NOTICE,
mDelegate.shouldDisplayManagementNoticeOnManagedDevices());
diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/webauthn/sheet_models.cc
--- a/chrome/browser/ui/webauthn/sheet_models.cc
+++ b/chrome/browser/ui/webauthn/sheet_models.cc
@@ -1525,16 +1525,9 @@ AuthenticatorMultiSourcePickerSheetModel::
bool AuthenticatorMultiSourcePickerSheetModel::IsManageDevicesButtonVisible()
const {
- using Mechanism = AuthenticatorRequestDialogModel::Mechanism;
// If any phones or passkeys from a phone are shown then also show a button
// that goes to the settings page to manage them.
- return std::ranges::any_of(
- dialog_model()->mechanisms, [](const Mechanism& mech) {
- return std::holds_alternative<Mechanism::Phone>(mech.type) ||
- (std::holds_alternative<Mechanism::Credential>(mech.type) &&
- std::get<Mechanism::Credential>(mech.type).value().source ==
- device::AuthenticatorType::kPhone);
- });
+ return false;
}
void AuthenticatorMultiSourcePickerSheetModel::OnManageDevices() {
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
@@ -234,7 +234,6 @@ void RegisterChromeWebUIConfigs() {
map.AddWebUIConfig(std::make_unique<DownloadInternalsUIConfig>());
map.AddWebUIConfig(std::make_unique<FamilyLinkUserInternalsUIConfig>());
map.AddWebUIConfig(std::make_unique<FlagsUIConfig>());
- map.AddWebUIConfig(std::make_unique<GCMInternalsUIConfig>());
map.AddWebUIConfig(
std::make_unique<
history_clusters_internals::HistoryClustersInternalsUIConfig>());
diff --git a/chrome/browser/webauthn/android/BUILD.gn b/chrome/browser/webauthn/android/BUILD.gn
--- a/chrome/browser/webauthn/android/BUILD.gn
+++ b/chrome/browser/webauthn/android/BUILD.gn
@@ -16,7 +16,6 @@ android_library("java") {
deps = [
":java_resources",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//build/android:build_java",
"//chrome/android:chrome_app_java_resources",
diff --git a/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browser/webauthn/CableAuthenticatorModuleProvider.java b/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browser/webauthn/CableAuthenticatorModuleProvider.java
--- a/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browser/webauthn/CableAuthenticatorModuleProvider.java
+++ b/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browser/webauthn/CableAuthenticatorModuleProvider.java
@@ -9,8 +9,6 @@ import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.os.Parcel;
-import com.google.android.gms.tasks.Task;
-
import org.jni_zero.CalledByNative;
import org.jni_zero.NativeMethods;
@@ -23,7 +21,6 @@ import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.enterprise.util.EnterpriseInfo;
import org.chromium.components.browser_ui.notifications.NotificationProxyUtils;
import org.chromium.components.externalauth.ExternalAuthUtils;
-import org.chromium.components.webauthn.Fido2ApiCall;
/**
* Provides linking information to the native side.
@@ -83,37 +80,7 @@ public class CableAuthenticatorModuleProvider {
ok = false;
}
- if (!ok) {
- CableAuthenticatorModuleProviderJni.get().onHaveLinkingInformation(pointer, null);
- return;
- }
-
- Fido2ApiCall call =
- new Fido2ApiCall(
- ContextUtils.getApplicationContext(), Fido2ApiCall.FIRST_PARTY_API);
- Parcel args = call.start();
- Fido2ApiCall.ByteArrayResult result = new Fido2ApiCall.ByteArrayResult();
- args.writeStrongBinder(result);
- Task<byte[]> task =
- call.run(
- Fido2ApiCall.METHOD_GET_LINK_INFO,
- Fido2ApiCall.TRANSACTION_GET_LINK_INFO,
- args,
- result);
- task.addOnSuccessListener(
- linkInfo -> {
- CableAuthenticatorModuleProviderJni.get()
- .onHaveLinkingInformation(pointer, linkInfo);
- })
- .addOnFailureListener(
- exception -> {
- Log.e(
- TAG,
- "Call to get linking information from Play Services failed",
- exception);
- CableAuthenticatorModuleProviderJni.get()
- .onHaveLinkingInformation(pointer, null);
- });
+ CableAuthenticatorModuleProviderJni.get().onHaveLinkingInformation(pointer, null);
}
@NativeMethods
diff --git a/chrome/browser/webauthn/cablev2_devices.cc b/chrome/browser/webauthn/cablev2_devices.cc
--- a/chrome/browser/webauthn/cablev2_devices.cc
+++ b/chrome/browser/webauthn/cablev2_devices.cc
@@ -367,6 +367,9 @@ void AddPairing(Profile* profile, std::unique_ptr<Pairing> pairing) {
// This is called when doing a QR-code pairing with a phone and the phone
// sends long-term pairing information during the handshake. The pairing
// information is saved in preferences for future operations.
+ if ((true)) {
+ return;
+ }
ScopedListPrefUpdate update(profile->GetPrefs(),
kWebAuthnCablePairingsPrefName);
diff --git a/chrome/browser/webid/BUILD.gn b/chrome/browser/webid/BUILD.gn
--- a/chrome/browser/webid/BUILD.gn
+++ b/chrome/browser/webid/BUILD.gn
@@ -13,8 +13,6 @@ android_library("java") {
"android/java/src/org/chromium/chrome/browser/webid/IdentityCredentialsDelegate.java",
]
deps = [
- "$google_play_services_package:google_play_services_identity_credentials_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//base:service_loader_java",
"//content/public/android:content_java",
@@ -43,7 +41,6 @@ robolectric_library("junit") {
deps = [
":java",
- "$google_play_services_package:google_play_services_identity_credentials_java",
"//base:base_junit_test_support",
"//content/public/android:content_java",
"//third_party/junit:junit",
diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsCreationDelegate.java b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsCreationDelegate.java
--- a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsCreationDelegate.java
+++ b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsCreationDelegate.java
@@ -21,10 +21,6 @@ import androidx.credentials.exceptions.CreateCredentialException;
import androidx.credentials.exceptions.CreateCredentialUnknownException;
import androidx.credentials.provider.PendingIntentHandler;
-import com.google.android.gms.identitycredentials.CreateCredentialRequest;
-import com.google.android.gms.identitycredentials.IdentityCredentialClient;
-import com.google.android.gms.identitycredentials.IdentityCredentialManager;
-
import org.json.JSONException;
import org.json.JSONObject;
@@ -49,115 +45,7 @@ public class DigitalCredentialsCreationDelegate {
@OptIn(markerClass = androidx.credentials.ExperimentalDigitalCredentialApi.class)
public Promise<DigitalCredential> create(Activity window, String origin, String request) {
- final IdentityCredentialClient client =
- IdentityCredentialManager.Companion.getClient(window);
-
final Promise<DigitalCredential> result = new Promise<DigitalCredential>();
-
- ResultReceiver resultReceiver =
- new ResultReceiver(new Handler(Looper.getMainLooper())) {
- @Override
- protected void onReceiveResult(int code, Bundle data) {
- if (!result.isPending()) {
- // Promises don't support duplicate calls to fulfill/reject. If the
- // promise has been fulfilled/rejected already (e.g. due to erroneous
- // exception during the API call), return immediately.
- return;
- }
- Log.d(TAG, "Received a response");
- Intent providerData =
- Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
- ? data.getParcelable(BUNDLE_KEY_PROVIDER_DATA, Intent.class)
- : data.getParcelable(BUNDLE_KEY_PROVIDER_DATA);
-
- if (providerData == null) {
- Log.d(TAG, "Response doesn't contain providerData");
- result.reject(
- new CreateCredentialUnknownException(
- "Response doesn't contain providerData"));
- return;
- }
-
- var response =
- PendingIntentHandler.retrieveCreateCredentialResponse(
- TYPE_DIGITAL_CREDENTIAL, providerData);
- if (response == null) {
- CreateCredentialException exception =
- PendingIntentHandler.retrieveCreateCredentialException(
- providerData);
- result.reject(
- exception == null
- ? new CreateCredentialUnknownException("empty response")
- : exception);
- return;
- }
- String responseJson =
- response.getData()
- .getString("androidx.credentials.BUNDLE_KEY_RESPONSE_JSON");
- if (responseJson == null) {
- result.reject(
- new CreateCredentialUnknownException(
- "Response doesn't contain responseJson"));
- return;
- }
- Log.d(TAG, "Response JSON: " + responseJson);
-
- DigitalCredential digitalCredential = parseResponse(responseJson);
- if (digitalCredential == null) {
- result.reject(
- new CreateCredentialUnknownException(
- "Failed to parse response"));
- return;
- }
- result.fulfill(digitalCredential);
- }
- };
-
- Bundle requestBundle = new Bundle();
- requestBundle.putString("androidx.credentials.BUNDLE_KEY_REQUEST_JSON", request);
- CreateCredentialRequest createRequest =
- new CreateCredentialRequest(
- TYPE_DIGITAL_CREDENTIAL,
- /* credentialData= */ requestBundle,
- /* candidateQueryData= */ new Bundle(),
- origin,
- request,
- resultReceiver);
-
- client.createCredential(createRequest)
- .addOnSuccessListener(
- response -> {
- if (response.getPendingIntent() == null) {
- Log.d(TAG, "Response doesn't contain pendingIntent");
- result.reject(
- new CreateCredentialUnknownException(
- "Response doesn't contain pendingIntent"));
- return;
- }
- try {
- Log.d(TAG, "Sending an intent for sender");
- Log.d(TAG, request);
- startIntentSenderForResult(
- /* activity= */ window,
- /* intent= */ response.getPendingIntent().getIntentSender(),
- /* requestCode= */ REQUEST_CODE_DIGITAL_CREDENTIALS_CREATION,
- /* fillInIntent= */ null,
- /* flagsMask= */ 0,
- /* flagsValues= */ 0,
- /* extraFlags= */ 0,
- /* options= */ null);
- } catch (SendIntentException e) {
- Log.e(TAG, "Sending an intent for sender failed");
- if (result.isPending()) {
- result.reject(e);
- }
- }
- })
- .addOnFailureListener(
- e -> {
- result.reject(new CreateCredentialUnknownException("unknown error"));
- });
-
return result;
}
diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java
--- a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java
+++ b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java
@@ -21,13 +21,6 @@ import androidx.annotation.RequiresApi;
import androidx.annotation.VisibleForTesting;
import androidx.credentials.GetDigitalCredentialOption;
-import com.google.android.gms.identitycredentials.CredentialOption;
-import com.google.android.gms.identitycredentials.GetCredentialException;
-import com.google.android.gms.identitycredentials.GetCredentialRequest;
-import com.google.android.gms.identitycredentials.IdentityCredentialClient;
-import com.google.android.gms.identitycredentials.IdentityCredentialManager;
-import com.google.android.gms.identitycredentials.IntentHelper;
-
import org.json.JSONException;
import org.json.JSONObject;
@@ -70,78 +63,7 @@ public class DigitalCredentialsPresentationDelegate {
@OptIn(markerClass = androidx.credentials.ExperimentalDigitalCredentialApi.class)
public Promise<DigitalCredential> get(Activity window, String origin, String request) {
- final IdentityCredentialClient client;
- try {
- client = IdentityCredentialManager.Companion.getClient(window);
- } catch (Exception e) {
- // Thrown when running in phones without the most current GMS
- // version.
- return Promise.rejected();
- }
-
- final Promise<DigitalCredential> result = new Promise<DigitalCredential>();
-
- ResultReceiver resultReceiver =
- new ResultReceiver(new Handler(Looper.getMainLooper())) {
- // android.credentials.GetCredentialException requires API level 34
- @SuppressWarnings("NewApi")
- @Override
- protected void onReceiveResult(int code, Bundle data) {
- Log.d(TAG, "Received a response");
- try {
- result.fulfill(extractDigitalCredentialFromResponseBundle(code, data));
- } catch (Exception e) {
- Log.e(TAG, e.toString());
-
- if (e instanceof GetCredentialException
- && Build.VERSION.SDK_INT
- >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
- String exceptionType = ((GetCredentialException) e).getType();
- result.reject(
- new android.credentials.GetCredentialException(
- exceptionType, e.getMessage()));
- } else {
- result.reject(e);
- }
- }
- }
- };
-
- GetDigitalCredentialOption option = new GetDigitalCredentialOption(request);
- client.getCredential(
- new GetCredentialRequest(
- Arrays.asList(
- new CredentialOption(
- option.getType(),
- option.getRequestData(),
- option.getCandidateQueryData(),
- request,
- "",
- "")),
- new Bundle(),
- origin,
- resultReceiver))
- .addOnSuccessListener(
- response -> {
- try {
- Log.d(TAG, "Sending an intent for sender");
- Log.d(TAG, request);
- startIntentSenderForResult(
- /* activity= */ window,
- /* intent= */ response.getPendingIntent().getIntentSender(),
- REQUEST_CODE_DIGITAL_CREDENTIALS,
- /* fillInIntent= */ null,
- /* flagsMask= */ 0,
- /* flagsValues= */ 0,
- /* extraFlags= */ 0,
- /* options= */ null);
- } catch (SendIntentException e) {
- Log.e(TAG, "Sending an intent for sender failed");
- result.reject(e);
- }
- });
-
- return result;
+ return Promise.rejected();
}
/**
@@ -161,7 +83,7 @@ public class DigitalCredentialsPresentationDelegate {
@VisibleForTesting
public static DigitalCredential extractDigitalCredentialFromResponseBundle(
int code, Bundle bundle)
- throws JSONException, NullPointerException, GetCredentialException {
+ throws JSONException, NullPointerException {
// Try to read the new format.
var digitalCredential = extractDigitalCredentialFromModernResponse(bundle);
if (digitalCredential != null) {
@@ -170,11 +92,7 @@ public class DigitalCredentialsPresentationDelegate {
// TODO(crbug.com/336329411) Handle the case when the intent doesn't contain the modern
// response, but contains the modern exception.
- // Fallback to the legacy format.
- var response = IntentHelper.extractGetCredentialResponse(code, bundle);
- var token = response.getCredential().getData().getByteArray(BUNDLE_KEY_IDENTITY_TOKEN);
-
- return new DigitalCredential(null, Objects.requireNonNull(token));
+ throw new NullPointerException();
}
/**
diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
--- a/chrome/test/android/BUILD.gn
+++ b/chrome/test/android/BUILD.gn
@@ -408,8 +408,6 @@ android_library("chrome_java_integration_test_support") {
deps = [
":chrome_java_test_support_common",
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:service_loader_java",
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
@@ -2586,14 +2586,6 @@ public class ExternalNavigationHandler {
* @return Whether the given intent is going to open an Instant App.
*/
private static boolean isIntentToInstantApp(Intent intent) {
- if (INSTANT_APP_SUPERVISOR_PKG.equals(intent.getPackage())) return true;
-
- String intentAction = intent.getAction();
- for (String action : INSTANT_APP_START_ACTIONS) {
- if (action.equals(intentAction)) {
- return true;
- }
- }
return false;
}
diff --git a/components/externalauth/android/BUILD.gn b/components/externalauth/android/BUILD.gn
--- a/components/externalauth/android/BUILD.gn
+++ b/components/externalauth/android/BUILD.gn
@@ -6,8 +6,6 @@ import("//build/config/android/rules.gni")
android_library("java") {
deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
"//base:base_java",
"//base:service_loader_java",
"//components/embedder_support/android:util_java",
@@ -25,7 +23,6 @@ android_library("java") {
robolectric_library("junit") {
deps = [
":java",
- "$google_play_services_package:google_play_services_basement_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
diff --git a/components/externalauth/android/java/src/org/chromium/components/externalauth/ExternalAuthUtils.java b/components/externalauth/android/java/src/org/chromium/components/externalauth/ExternalAuthUtils.java
--- a/components/externalauth/android/java/src/org/chromium/components/externalauth/ExternalAuthUtils.java
+++ b/components/externalauth/android/java/src/org/chromium/components/externalauth/ExternalAuthUtils.java
@@ -17,9 +17,6 @@ import android.text.TextUtils;
import androidx.annotation.VisibleForTesting;
import androidx.annotation.WorkerThread;
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.ResettersForTesting;
@@ -31,7 +28,6 @@ import org.chromium.base.task.TaskTraits;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.components.embedder_support.util.Origin;
-import org.chromium.gms.ChromiumPlayServicesAvailability;
/**
* Utility class for external authentication tools.
@@ -176,9 +172,7 @@ public class ExternalAuthUtils {
* when it is updating.
*/
public boolean isGooglePlayServicesMissing(final Context context) {
- final int resultCode = checkGooglePlayServicesAvailable(context);
- return (resultCode == ConnectionResult.SERVICE_MISSING
- || resultCode == ConnectionResult.SERVICE_INVALID);
+ return true;
}
/**
@@ -193,21 +187,6 @@ public class ExternalAuthUtils {
* @return true if and only if Google Play Services can be used
*/
public boolean canUseGooglePlayServices(final UserRecoverableErrorHandler errorHandler) {
- Context context = ContextUtils.getApplicationContext();
- final int resultCode = checkGooglePlayServicesAvailable(context);
- if (resultCode == ConnectionResult.SUCCESS) return true;
- // resultCode is some kind of error.
- Log.v(TAG, "Unable to use Google Play Services: %s", describeError(resultCode));
- if (isUserRecoverableError(resultCode)) {
- Runnable errorHandlerTask =
- new Runnable() {
- @Override
- public void run() {
- errorHandler.handleError(context, resultCode);
- }
- };
- PostTask.runOrPostTask(TaskTraits.UI_DEFAULT, errorHandlerTask);
- }
return false;
}
@@ -260,12 +239,7 @@ public class ExternalAuthUtils {
* @return The code produced by calling the external code
*/
protected int checkGooglePlayServicesAvailable(final Context context) {
- // TODO(crbug.com/41233964): Temporarily allowing disk access until more permanent fix is
- // in.
- try (StrictModeContext ignored = StrictModeContext.allowDiskWrites();
- TraceEvent e = TraceEvent.scoped("checkGooglePlayServicesAvailable")) {
- return ChromiumPlayServicesAvailability.getGooglePlayServicesConnectionResult(context);
- }
+ return 1; /*SERVICE_MISSING*/
}
/**
@@ -276,7 +250,7 @@ public class ExternalAuthUtils {
* @return true If the code represents a user-recoverable error
*/
protected boolean isUserRecoverableError(final int errorCode) {
- return GoogleApiAvailability.getInstance().isUserResolvableError(errorCode);
+ return false;
}
/**
@@ -286,7 +260,7 @@ public class ExternalAuthUtils {
* @return a textual description of the error code
*/
protected String describeError(final int errorCode) {
- return GoogleApiAvailability.getInstance().getErrorString(errorCode);
+ return "";
}
/**
diff --git a/components/externalauth/android/java/src/org/chromium/components/externalauth/UserRecoverableErrorHandler.java b/components/externalauth/android/java/src/org/chromium/components/externalauth/UserRecoverableErrorHandler.java
--- a/components/externalauth/android/java/src/org/chromium/components/externalauth/UserRecoverableErrorHandler.java
+++ b/components/externalauth/android/java/src/org/chromium/components/externalauth/UserRecoverableErrorHandler.java
@@ -9,8 +9,6 @@ import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.base.ThreadUtils;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.build.annotations.NullMarked;
@@ -90,7 +88,6 @@ public abstract class UserRecoverableErrorHandler {
if (!sNotificationShown.getAndSet(true)) {
return;
}
- GoogleApiAvailability.getInstance().showErrorNotification(context, errorCode);
}
}
@@ -178,14 +175,9 @@ public abstract class UserRecoverableErrorHandler {
}
Dialog dialog = mDialog;
if (dialog == null) {
- dialog =
- GoogleApiAvailability.getInstance()
- .getErrorDialog(mActivity, errorCode, NO_RESPONSE_REQUIRED);
assert dialog != null : "code was " + errorCode;
mDialog = dialog;
mErrorCode = errorCode;
-
- DialogUserActionRecorder.createAndAttachToDialog(dialog);
}
// This can happen if |errorCode| is ConnectionResult.SERVICE_INVALID.
if (!dialog.isShowing()) {
diff --git a/components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GoogleCloudMessagingV2.java b/components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GoogleCloudMessagingV2.java
--- a/components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GoogleCloudMessagingV2.java
+++ b/components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GoogleCloudMessagingV2.java
@@ -136,6 +136,8 @@ public class GoogleCloudMessagingV2 implements GoogleCloudMessagingSubscriber {
}
private Intent registerRpc(Bundle data) throws IOException {
+ if ((true))
+ throw new IOException("Google Play Services missing");
if (Looper.getMainLooper() == Looper.myLooper()) {
throw new IOException(ERROR_MAIN_THREAD);
}
diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc
--- a/components/gcm_driver/gcm_client_impl.cc
+++ b/components/gcm_driver/gcm_client_impl.cc
@@ -431,6 +431,7 @@ void GCMClientImpl::StartGCM() {
void GCMClientImpl::InitializeMCSClient() {
DCHECK(network_connection_tracker_);
+ if ((true)) return;
std::vector<GURL> endpoints;
endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint();
@@ -599,6 +600,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope,
int interval_ms) {
DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
DCHECK(mcs_client_);
+ if ((true)) return;
mcs_client_->AddHeartbeatInterval(scope, interval_ms);
}
@@ -610,6 +612,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) {
void GCMClientImpl::StartCheckin() {
DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
+ if ((true)) return;
// Make sure no checkin is in progress.
if (checkin_request_)
@@ -683,6 +686,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) {
void GCMClientImpl::SchedulePeriodicCheckin() {
DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
+ if ((true)) return;
// Make sure no checkin is in progress.
if (checkin_request_.get() || !device_checkin_info_.accounts_set)
diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm_driver/instance_id/android/BUILD.gn
--- a/components/gcm_driver/instance_id/android/BUILD.gn
+++ b/components/gcm_driver/instance_id/android/BUILD.gn
@@ -16,7 +16,6 @@ generate_jni("test_support_jni_headers") {
android_library("instance_id_driver_java") {
deps = [
- "$google_play_services_package:google_play_services_iid_java",
"//base:base_java",
"//build/android:build_java",
"//components/gcm_driver/android:gcm_driver_java",
@@ -31,14 +30,12 @@ android_library("instance_id_driver_java") {
sources = [
"java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java",
- "java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDWithSubtype.java",
]
}
android_library("instance_id_driver_test_support_java") {
deps = [
":instance_id_driver_java",
- "$google_play_services_package:google_play_services_iid_java",
"//third_party/jni_zero:jni_zero_java",
]
diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
--- a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
+++ b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
@@ -30,8 +30,6 @@ public class InstanceIDBridge {
* Underlying InstanceIDWithSubtype. May be shared by multiple InstanceIDBridges. Must be
* initialized on a background thread.
*/
- @SuppressWarnings("NullAway.Init")
- private InstanceIDWithSubtype mInstanceID;
private static boolean sBlockOnAsyncTasksForTesting;
@@ -76,7 +74,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<String>() {
@Override
protected String doBackgroundWork() {
- return mInstanceID.getId();
+ return "";
}
@Override
@@ -93,7 +91,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<Long>() {
@Override
protected Long doBackgroundWork() {
- return mInstanceID.getCreationTime();
+ return 0L;
}
@Override
@@ -120,21 +118,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<String>() {
@Override
protected String doBackgroundWork() {
- try {
- // TODO(crbug.com/40789764): Migrate stored LazySubscriptionsManager data to
- // SubscriptionFlagManager.
- LazySubscriptionsManager.storeLazinessInformation(
- LazySubscriptionsManager.buildSubscriptionUniqueId(
- mSubtype, authorizedEntity),
- (flags & InstanceIDFlags.IS_LAZY) == InstanceIDFlags.IS_LAZY);
- SubscriptionFlagManager.setFlags(
- SubscriptionFlagManager.buildSubscriptionUniqueId(
- mSubtype, authorizedEntity),
- flags);
- return mInstanceID.getToken(authorizedEntity, scope);
- } catch (IOException ex) {
return "";
- }
}
@Override
@@ -153,22 +137,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<Boolean>() {
@Override
protected Boolean doBackgroundWork() {
- try {
- mInstanceID.deleteToken(authorizedEntity, scope);
- String subscriptionId =
- LazySubscriptionsManager.buildSubscriptionUniqueId(
- mSubtype, authorizedEntity);
- if (LazySubscriptionsManager.isSubscriptionLazy(subscriptionId)) {
- LazySubscriptionsManager.deletePersistedMessagesForSubscriptionId(
- subscriptionId);
- }
- SubscriptionFlagManager.clearFlags(
- SubscriptionFlagManager.buildSubscriptionUniqueId(
- mSubtype, authorizedEntity));
- return true;
- } catch (IOException ex) {
- return false;
- }
+ return false;
}
@Override
@@ -189,12 +158,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<Boolean>() {
@Override
protected Boolean doBackgroundWork() {
- try {
- mInstanceID.deleteInstanceID();
- return true;
- } catch (IOException ex) {
- return false;
- }
+ return true;
}
@Override
@@ -230,24 +194,12 @@ public class InstanceIDBridge {
protected abstract void sendResultToNative(Result result);
public void execute() {
- if (sBlockOnAsyncTasksForTesting) {
- if (mInstanceID == null) {
- mInstanceID = InstanceIDWithSubtype.getInstance(mSubtype);
- }
- sendResultToNative(doBackgroundWork());
- return;
- }
AsyncTask<Result> task =
new AsyncTask<Result>() {
@Override
@SuppressWarnings(
"NoSynchronizedThisCheck") // Only used/accessible by native.
protected Result doInBackground() {
- synchronized (InstanceIDBridge.this) {
- if (mInstanceID == null) {
- mInstanceID = InstanceIDWithSubtype.getInstance(mSubtype);
- }
- }
return doBackgroundWork();
}
diff --git a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
--- a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
+++ b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
@@ -88,7 +88,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider {
// The maximum number of related apps declared in the Web Manifest taken into account when
// determining whether the related app is installed and mutually related.
- @VisibleForTesting static final int MAX_ALLOWED_RELATED_APPS = 3;
+ @VisibleForTesting static final int MAX_ALLOWED_RELATED_APPS = 0;
private static final String TAG = "InstalledAppProvider";
diff --git a/components/media_router/browser/android/BUILD.gn b/components/media_router/browser/android/BUILD.gn
--- a/components/media_router/browser/android/BUILD.gn
+++ b/components/media_router/browser/android/BUILD.gn
@@ -12,10 +12,6 @@ android_library("java") {
resources_package = "org.chromium.components.media_router"
deps = [
":java_resources",
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_cast_framework_java",
- "$google_play_services_package:google_play_services_cast_java",
"//base:base_java",
"//build/android:build_java",
"//components/browser_ui/media/android:java",
@@ -77,8 +73,6 @@ android_library("java") {
android_library("cast_options_provider_java") {
sources = [ "java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java" ]
deps = [
- "$google_play_services_package:google_play_services_cast_framework_java",
- "$google_play_services_package:google_play_services_cast_java",
]
}
@@ -104,7 +98,6 @@ android_library("test_support_java") {
":java",
":java_resources",
":test_jni_headers",
- "$google_play_services_package:google_play_services_cast_java",
"//base:base_java",
"//base:base_java_test_support",
"//components/browser_ui/media/android:java",
@@ -149,10 +142,6 @@ robolectric_library("junit") {
deps = [
":java",
":test_support_java",
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_cast_framework_java",
- "$google_play_services_package:google_play_services_cast_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java
@@ -9,9 +9,6 @@ import static org.chromium.build.NullUtil.assumeNonNull;
import androidx.annotation.VisibleForTesting;
import androidx.mediarouter.media.MediaRouter;
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.jni_zero.CalledByNative;
import org.jni_zero.JNINamespace;
import org.jni_zero.NativeMethods;
@@ -46,23 +43,7 @@ public class BrowserMediaRouter implements MediaRouteManager {
new MediaRouteProvider.Factory() {
@Override
public void addProviders(MediaRouteManager manager) {
- int googleApiAvailabilityResult =
- GoogleApiAvailability.getInstance()
- .isGooglePlayServicesAvailable(
- ContextUtils.getApplicationContext(),
- MIN_GOOGLE_PLAY_SERVICES_APK_VERSION);
- if (googleApiAvailabilityResult != ConnectionResult.SUCCESS) {
- GoogleApiAvailability.getInstance()
- .showErrorNotification(
- ContextUtils.getApplicationContext(),
- googleApiAvailabilityResult);
- return;
- }
- MediaRouteProvider cafProvider = CafMediaRouteProvider.create(manager);
- manager.addMediaRouteProvider(cafProvider);
- MediaRouteProvider remotingProvider =
- CafRemotingMediaRouteProvider.create(manager);
- manager.addMediaRouteProvider(remotingProvider);
+ return;
}
};
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java
@@ -7,8 +7,6 @@ package org.chromium.components.media_router;
import androidx.mediarouter.media.MediaRouter;
import androidx.mediarouter.media.MediaRouter.RouteInfo;
-import com.google.android.gms.cast.CastDevice;
-
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -16,30 +14,15 @@ import org.chromium.build.annotations.Nullable;
@NullMarked
public class MediaSink {
private static final String CAST_SINK_URN_PREFIX = "urn:x-org.chromium:media:sink:cast-";
- private final String mId;
- private final String mName;
- private final @Nullable CastDevice mDevice;
-
- /**
- * Constructor.
- * @param id A unique identifier of the sink.
- * @param name A user friendly name of the sink.
- * @param device {@link CastDevice} corresponding to this sink.
- */
- public MediaSink(String id, String name, @Nullable CastDevice device) {
- mId = id;
- mName = name;
- mDevice = device;
- }
/** @return The unique identifier of the sink. */
public String getId() {
- return mId;
+ return "";
}
/** @return The user friendly name of the sink. */
public String getName() {
- return mName;
+ return "";
}
/** @return The valid URN representing the sink. */
@@ -47,17 +30,8 @@ public class MediaSink {
return CAST_SINK_URN_PREFIX + getId();
}
- public @Nullable CastDevice getDevice() {
- return mDevice;
- }
-
@Override
public boolean equals(Object o) {
- if (o == this) return true;
- if (o instanceof MediaSink) {
- MediaSink other = (MediaSink) o;
- return mId.equals(other.getId()) && mName.equals(other.getName());
- }
return false;
}
@@ -65,23 +39,15 @@ public class MediaSink {
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + ((mId == null) ? 0 : mId.hashCode());
- result = prime * result + ((mName == null) ? 0 : mName.hashCode());
return result;
}
- @Override
- public String toString() {
- return String.format("MediaSink: %s, %s", getId(), getName());
- }
-
/**
* @param route The route information provided by Android.
* @return A new MediaSink instance corresponding to the specified {@link RouteInfo}.
*/
public static MediaSink fromRoute(MediaRouter.RouteInfo route) {
- return new MediaSink(
- route.getId(), route.getName(), CastDevice.getFromBundle(route.getExtras()));
+ return null;
}
/**
@@ -91,10 +57,6 @@ public class MediaSink {
* found, null otherwise.
*/
public static @Nullable MediaSink fromSinkId(String sinkId, MediaRouter router) {
- for (MediaRouter.RouteInfo route : router.getRoutes()) {
- MediaSink sink = MediaSink.fromRoute(route);
- if (sink.getId().equals(sinkId)) return sink;
- }
return null;
}
}
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaStatusBridge.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaStatusBridge.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaStatusBridge.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaStatusBridge.java
@@ -4,10 +4,6 @@
package org.chromium.components.media_router;
-import com.google.android.gms.cast.MediaInfo;
-import com.google.android.gms.cast.MediaMetadata;
-import com.google.android.gms.cast.MediaStatus;
-
import org.jni_zero.CalledByNative;
import org.jni_zero.JNINamespace;
@@ -21,11 +17,6 @@ import org.chromium.build.annotations.Nullable;
@JNINamespace("media_router")
@NullMarked
public class MediaStatusBridge {
- private final MediaStatus mStatus;
-
- public MediaStatusBridge(MediaStatus status) {
- mStatus = status;
- }
/**
* Gets the play state of the stream. Return values are defined as such:
@@ -38,7 +29,7 @@ public class MediaStatusBridge {
*/
@CalledByNative
public int playerState() {
- return mStatus.getPlayerState();
+ return 0;
}
/**
@@ -52,7 +43,7 @@ public class MediaStatusBridge {
*/
@CalledByNative
public int idleReason() {
- return mStatus.getIdleReason();
+ return 0;
}
/**
@@ -61,43 +52,37 @@ public class MediaStatusBridge {
*/
@CalledByNative
public @Nullable String title() {
- MediaInfo info = mStatus.getMediaInfo();
- if (info == null) return "";
-
- MediaMetadata metadata = info.getMetadata();
- if (metadata == null) return "";
-
- return metadata.getString(MediaMetadata.KEY_TITLE);
+ return "";
}
/** If this is true, the media can be played and paused. */
@CalledByNative
public boolean canPlayPause() {
- return mStatus.isMediaCommandSupported(MediaStatus.COMMAND_PAUSE);
+ return false;
}
/** If this is true, the media can be muted and unmuted. */
@CalledByNative
public boolean canMute() {
- return mStatus.isMediaCommandSupported(MediaStatus.COMMAND_TOGGLE_MUTE);
+ return false;
}
/** If this is true, the media's volume can be changed. */
@CalledByNative
public boolean canSetVolume() {
- return mStatus.isMediaCommandSupported(MediaStatus.COMMAND_SET_VOLUME);
+ return false;
}
/** If this is true, the media's current playback position can be chaxnged. */
@CalledByNative
public boolean canSeek() {
- return mStatus.isMediaCommandSupported(MediaStatus.COMMAND_SEEK);
+ return false;
}
/** Returns the stream's mute state. */
@CalledByNative
public boolean isMuted() {
- return mStatus.isMute();
+ return false;
}
/**
@@ -107,7 +92,7 @@ public class MediaStatusBridge {
*/
@CalledByNative
public double volume() {
- return mStatus.getStreamVolume();
+ return 0.0;
}
/**
@@ -116,15 +101,12 @@ public class MediaStatusBridge {
*/
@CalledByNative
public long duration() {
- MediaInfo info = mStatus.getMediaInfo();
- if (info == null) return 0;
-
- return info.getStreamDuration();
+ return 0;
}
/** Current playback position, in ms. Must be less than or equal to |duration|. */
@CalledByNative
public long currentTime() {
- return mStatus.getStreamPosition();
+ return 0;
}
}
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java
@@ -8,10 +8,6 @@ import static org.chromium.build.NullUtil.assumeNonNull;
import android.content.Intent;
-import com.google.android.gms.cast.CastDevice;
-import com.google.android.gms.cast.MediaStatus;
-import com.google.android.gms.cast.framework.media.RemoteMediaClient;
-
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.build.annotations.RequiresNonNull;
@@ -68,22 +64,6 @@ public abstract class BaseNotificationController
public void onStatusUpdated() {
if (mNotificationBuilder == null) return;
if (!mSessionController.isConnected()) return;
- assumeNonNull(mSessionController.getRemoteMediaClient());
-
- MediaStatus mediaStatus = mSessionController.getRemoteMediaClient().getMediaStatus();
- if (mediaStatus == null) return;
-
- int playerState = mediaStatus.getPlayerState();
- if (playerState == MediaStatus.PLAYER_STATE_PAUSED
- || playerState == MediaStatus.PLAYER_STATE_PLAYING) {
- mNotificationBuilder.setPaused(playerState != MediaStatus.PLAYER_STATE_PLAYING);
- mNotificationBuilder.setActions(
- MediaNotificationInfo.ACTION_STOP | MediaNotificationInfo.ACTION_PLAY_PAUSE);
- } else {
- mNotificationBuilder.setActions(MediaNotificationInfo.ACTION_STOP);
- }
- assumeNonNull(MediaRouterClient.getInstance());
- MediaRouterClient.getInstance().showNotification(mNotificationBuilder.build());
}
/** Called when media metadata updated. */
@@ -103,37 +83,6 @@ public abstract class BaseNotificationController
mNotificationBuilder.setMetadata(notificationMetadata);
if (!mSessionController.isConnected()) return;
- assumeNonNull(mSessionController.getSession());
-
- CastDevice castDevice = mSessionController.getSession().getCastDevice();
- if (castDevice != null) {
- String friendlyName = castDevice.getFriendlyName();
- if (friendlyName != null && !friendlyName.isEmpty()) {
- notificationMetadata.setTitle(friendlyName);
- }
- }
-
- RemoteMediaClient remoteMediaClient = mSessionController.getRemoteMediaClient();
- assumeNonNull(remoteMediaClient);
-
- com.google.android.gms.cast.MediaInfo info = remoteMediaClient.getMediaInfo();
- if (info == null) return;
-
- com.google.android.gms.cast.MediaMetadata metadata = info.getMetadata();
- if (metadata == null) return;
-
- String title = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_TITLE);
- if (title != null && !title.isEmpty()) notificationMetadata.setTitle(title);
-
- String artist = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ARTIST);
- if (artist == null) {
- artist = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ALBUM_ARTIST);
- }
- if (artist != null) notificationMetadata.setArtist(artist);
-
- String album =
- metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ALBUM_TITLE);
- if (album != null) notificationMetadata.setAlbum(album);
}
/////////////////////////////////////////////////////////////////////////////////////////////
@@ -141,18 +90,10 @@ public abstract class BaseNotificationController
@Override
public void onPlay(int actionSource) {
- if (!mSessionController.isConnected()) return;
- assumeNonNull(mSessionController.getRemoteMediaClient());
-
- mSessionController.getRemoteMediaClient().play();
}
@Override
public void onPause(int actionSource) {
- if (!mSessionController.isConnected()) return;
- assumeNonNull(mSessionController.getRemoteMediaClient());
-
- mSessionController.getRemoteMediaClient().pause();
}
@Override
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java
@@ -6,15 +6,10 @@ package org.chromium.components.media_router.caf;
import static org.chromium.build.NullUtil.assumeNonNull;
-import com.google.android.gms.cast.CastDevice;
-import com.google.android.gms.cast.framework.CastSession;
-import com.google.android.gms.cast.framework.media.RemoteMediaClient;
-
import org.chromium.base.Log;
import org.chromium.build.annotations.EnsuresNonNullIf;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
-import org.chromium.components.media_router.CastSessionUtil;
import org.chromium.components.media_router.FlingingController;
import org.chromium.components.media_router.MediaSink;
import org.chromium.components.media_router.MediaSource;
@@ -47,15 +42,12 @@ public abstract class BaseSessionController {
void onMetadataUpdated();
}
- private @Nullable CastSession mCastSession;
private final CafBaseMediaRouteProvider mProvider;
private @Nullable CreateRouteRequestInfo mRouteCreationInfo;
- private final RemoteMediaClient.Callback mRemoteMediaClientCallback;
private final List<Callback> mCallbacks = new ArrayList<>();
public BaseSessionController(CafBaseMediaRouteProvider provider) {
mProvider = provider;
- mRemoteMediaClientCallback = new RemoteMediaClientCallback();
}
public void addCallback(Callback callback) {
@@ -68,10 +60,6 @@ public abstract class BaseSessionController {
public void requestSessionLaunch() {
mRouteCreationInfo = mProvider.getPendingCreateRouteRequestInfo();
- assumeNonNull(mRouteCreationInfo);
- CastUtils.getCastContext()
- .setReceiverApplicationId(mRouteCreationInfo.getMediaSource().getApplicationId());
-
// When the user clicks a route on the MediaRouteChooserDialog, we intercept the click event
// and do not select the route. Instead the route selection is postponed to here. This will
// trigger CAF to launch the session.
@@ -90,137 +78,43 @@ public abstract class BaseSessionController {
return mRouteCreationInfo;
}
- public @Nullable CastSession getSession() {
- return mCastSession;
- }
-
- public @Nullable RemoteMediaClient getRemoteMediaClient() {
- return isConnected() ? mCastSession.getRemoteMediaClient() : null;
- }
-
public abstract BaseNotificationController getNotificationController();
public void endSession() {
- CastUtils.getCastContext().getSessionManager().endCurrentSession(/* stopCasting= */ true);
- CastUtils.getCastContext().setReceiverApplicationId(null);
}
public List<String> getCapabilities() {
List<String> capabilities = new ArrayList<>();
- if (mCastSession == null || !mCastSession.isConnected()) return capabilities;
- CastDevice device = mCastSession.getCastDevice();
- assumeNonNull(device);
- if (device.hasCapability(CastDevice.CAPABILITY_AUDIO_IN)) {
- capabilities.add("audio_in");
- }
- if (device.hasCapability(CastDevice.CAPABILITY_AUDIO_OUT)) {
- capabilities.add("audio_out");
- }
- if (device.hasCapability(CastDevice.CAPABILITY_VIDEO_IN)) {
- capabilities.add("video_in");
- }
- if (device.hasCapability(CastDevice.CAPABILITY_VIDEO_OUT)) {
- capabilities.add("video_out");
- }
return capabilities;
}
@EnsuresNonNullIf("mCastSession")
public boolean isConnected() {
- return mCastSession != null && mCastSession.isConnected();
+ return false;
}
private void updateRemoteMediaClient(String message) {
if (!isConnected()) return;
- assumeNonNull(mCastSession.getRemoteMediaClient());
-
- mCastSession
- .getRemoteMediaClient()
- .onMessageReceived(
- mCastSession.getCastDevice(), CastSessionUtil.MEDIA_NAMESPACE, message);
- }
-
- /** Attaches the controller to the current {@link CastSession}. */
- public void attachToCastSession(CastSession session) {
- mCastSession = session;
- RemoteMediaClient uncheckedRemoteMediaClient = mCastSession.getRemoteMediaClient();
- if (uncheckedRemoteMediaClient != null) {
- uncheckedRemoteMediaClient.registerCallback(mRemoteMediaClientCallback);
- }
- }
-
- /** Detaches the controller from any {@link CastSession}. */
- public void detachFromCastSession() {
- if (mCastSession == null) return;
-
- RemoteMediaClient uncheckedRemoteMediaClient = mCastSession.getRemoteMediaClient();
- if (uncheckedRemoteMediaClient != null) {
- uncheckedRemoteMediaClient.unregisterCallback(mRemoteMediaClientCallback);
- }
- mCastSession = null;
}
/** Called when session started. */
public void onSessionStarted() {
- notifyCallback((Callback callback) -> callback.onSessionStarted());
}
/** Called when session ended. */
public void onSessionEnded() {
- notifyCallback((Callback callback) -> callback.onSessionEnded());
}
protected final CafBaseMediaRouteProvider getProvider() {
return mProvider;
}
- /**
- * All sub-classes need to register this method to listen to messages of the namespaces they are
- * interested in.
- */
- protected void onMessageReceived(CastDevice castDevice, String namespace, String message) {
- Log.d(
- TAG,
- "Received message from Cast device: namespace=\""
- + namespace
- + "\" message=\""
- + message
- + "\"");
- if (CastSessionUtil.MEDIA_NAMESPACE.equals(namespace)) {
- updateRemoteMediaClient(message);
- }
- }
-
- private class RemoteMediaClientCallback extends RemoteMediaClient.Callback {
- @Override
- public void onStatusUpdated() {
- BaseSessionController.this.onStatusUpdated();
- }
-
- @Override
- public void onMetadataUpdated() {
- BaseSessionController.this.onMetadataUpdated();
- }
- }
-
- protected void onStatusUpdated() {
- notifyCallback((Callback callback) -> callback.onStatusUpdated());
- }
-
- protected void onMetadataUpdated() {
- notifyCallback((Callback callback) -> callback.onMetadataUpdated());
- }
-
- public @Nullable FlingingController getFlingingController() {
- return null;
- }
-
/**
* Helper message to get the session ID of the attached session. For stubbing in tests as
* {@link CastSession#getSessionId()} is final.
*/
- public @Nullable String getSessionId() {
- return isConnected() ? mCastSession.getSessionId() : null;
+ public String getSessionId() {
+ return null;
}
private void notifyCallback(NotifyCallbackAction action) {
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java
@@ -12,9 +12,6 @@ import androidx.mediarouter.media.MediaRouteSelector;
import androidx.mediarouter.media.MediaRouter;
import androidx.mediarouter.media.MediaRouter.RouteInfo;
-import com.google.android.gms.cast.framework.CastSession;
-import com.google.android.gms.cast.framework.SessionManagerListener;
-
import org.chromium.base.Log;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -39,7 +36,7 @@ import java.util.Set;
/** A base provider containing common implementation for CAF-based {@link MediaRouteProvider}s. */
@NullMarked
public abstract class CafBaseMediaRouteProvider
- implements MediaRouteProvider, DiscoveryDelegate, SessionManagerListener<CastSession> {
+ implements MediaRouteProvider, DiscoveryDelegate {
private static final String TAG = "CafMR";
protected static final List<MediaSink> NO_SINKS = Collections.emptyList();
@@ -176,7 +173,6 @@ public abstract class CafBaseMediaRouteProvider
// current session and clean up the routes (can't wait for session ending as the signal
// might be delayed).
sessionController().endSession();
- handleSessionEnd();
}
if (mPendingCreateRouteRequestInfo != null) {
cancelPendingRequest("Request replaced");
@@ -205,10 +201,6 @@ public abstract class CafBaseMediaRouteProvider
mManager.onCreateRouteRequestError("The sink does not exist", nativeRequestId);
}
- CastUtils.getCastContext()
- .getSessionManager()
- .addSessionManagerListener(this, CastSession.class);
-
mPendingCreateRouteRequestInfo =
new CreateRouteRequestInfo(
source,
@@ -243,109 +235,6 @@ public abstract class CafBaseMediaRouteProvider
removeRoute(routeId, /* error= */ null);
}
- ///////////////////////////////////////////////////////
- // SessionManagerListener implementation begin
- ///////////////////////////////////////////////////////
-
- @Override
- public final void onSessionStarting(CastSession session) {
- // The session is not connected yet at this point so this is no-op.
- }
-
- @Override
- public void onSessionStartFailed(CastSession session, int error) {
- removeAllRoutes("Launch error");
- cancelPendingRequest("Launch error");
- }
-
- @Override
- public void onSessionStarted(CastSession session, String sessionId) {
- Log.d(TAG, "onSessionStarted");
-
- if (session != CastUtils.getCastContext().getSessionManager().getCurrentCastSession()) {
- // Sometimes the session start signal might come in for an earlier launch request, which
- // should be ignored.
- return;
- }
-
- if (session == sessionController().getSession() || mPendingCreateRouteRequestInfo == null) {
- // Early return for any possible case that the session start signal comes in twice for
- // the same session.
- return;
- }
- handleSessionStart(session, sessionId);
- }
-
- @Override
- public final void onSessionResumed(CastSession session, boolean wasSuspended) {
- sessionController().attachToCastSession(session);
- }
-
- @Override
- public final void onSessionResuming(CastSession session, String sessionId) {}
-
- @Override
- public final void onSessionResumeFailed(CastSession session, int error) {}
-
- @Override
- public final void onSessionEnding(CastSession session) {
- handleSessionEnd();
- }
-
- @Override
- public final void onSessionEnded(CastSession session, int error) {
- Log.d(TAG, "Session ended with error code " + error);
- handleSessionEnd();
- }
-
- @Override
- public final void onSessionSuspended(CastSession session, int reason) {
- sessionController().detachFromCastSession();
- }
-
- ///////////////////////////////////////////////////////
- // SessionManagerListener implementation end
- ///////////////////////////////////////////////////////
-
- protected void handleSessionStart(CastSession session, String sessionId) {
- sessionController().attachToCastSession(session);
- sessionController().onSessionStarted();
- assumeNonNull(mPendingCreateRouteRequestInfo);
-
- MediaSink sink = mPendingCreateRouteRequestInfo.sink;
- MediaSource source = mPendingCreateRouteRequestInfo.getMediaSource();
- MediaRoute route =
- new MediaRoute(
- sink.getId(),
- source.getSourceId(),
- mPendingCreateRouteRequestInfo.presentationId);
- addRoute(
- route,
- mPendingCreateRouteRequestInfo.origin,
- mPendingCreateRouteRequestInfo.tabId,
- mPendingCreateRouteRequestInfo.nativeRequestId,
- /* wasLaunched= */ true);
-
- mPendingCreateRouteRequestInfo = null;
- }
-
- private void handleSessionEnd() {
- if (mPendingCreateRouteRequestInfo != null) {
- // The Cast SDK notifies about session ending when a route is unselected, even when
- // there's no current session. Because CastSessionController unselects the route to set
- // the receiver app ID, this needs to be guarded by a pending request null check to make
- // sure the listener is not unregistered during a session relaunch.
- return;
- }
- sessionController().onSessionEnded();
- sessionController().detachFromCastSession();
- mAndroidMediaRouter.selectRoute(mAndroidMediaRouter.getDefaultRoute());
- terminateAllRoutes();
- CastUtils.getCastContext()
- .getSessionManager()
- .removeSessionManagerListener(this, CastSession.class);
- }
-
private void cancelPendingRequest(String error) {
if (mPendingCreateRouteRequestInfo == null) return;
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java
@@ -10,8 +10,6 @@ import static org.chromium.components.media_router.caf.CastUtils.isSameOrigin;
import androidx.annotation.VisibleForTesting;
import androidx.mediarouter.media.MediaRouter;
-import com.google.android.gms.cast.framework.CastSession;
-
import org.chromium.base.Log;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -147,25 +145,6 @@ public class CafMediaRouteProvider extends CafBaseMediaRouteProvider {
return mMessageHandler;
}
- @Override
- protected void handleSessionStart(CastSession session, String sessionId) {
- super.handleSessionStart(session, sessionId);
-
- for (ClientRecord clientRecord : mClientIdToRecords.values()) {
- // Should be exactly one instance of MediaRoute/ClientRecord at this moment.
- assert sessionController().getSink() != null;
- mMessageHandler.sendReceiverActionToClient(
- clientRecord.routeId,
- sessionController().getSink(),
- clientRecord.clientId,
- "cast");
- }
-
- mMessageHandler.onSessionStarted();
- assumeNonNull(assumeNonNull(sessionController().getSession()).getRemoteMediaClient())
- .requestStatus();
- }
-
@Override
protected void addRoute(
MediaRoute route, String origin, int tabId, int nativeRequestId, boolean wasLaunched) {
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java
@@ -14,10 +14,6 @@ import android.util.SparseArray;
import androidx.annotation.VisibleForTesting;
import androidx.collection.ArrayMap;
-import com.google.android.gms.cast.ApplicationMetadata;
-import com.google.android.gms.common.api.PendingResult;
-import com.google.android.gms.common.api.Status;
-
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -335,51 +331,7 @@ public class CafMessageHandler {
throws JSONException {
if (volumeMessage == null) return false;
if (!mSessionController.isConnected()) return false;
- assumeNonNull(mSessionController.getSession());
- boolean shouldWaitForVolumeChange = false;
- try {
- if (!volumeMessage.isNull("muted")) {
- boolean newMuted = volumeMessage.getBoolean("muted");
- if (mSessionController.getSession().isMute() != newMuted) {
- mSessionController.getSession().setMute(newMuted);
- shouldWaitForVolumeChange = true;
- }
- }
- if (!volumeMessage.isNull("level")) {
- double newLevel = volumeMessage.getDouble("level");
- double currentLevel = mSessionController.getSession().getVolume();
- if (!Double.isNaN(currentLevel)
- && Math.abs(currentLevel - newLevel)
- > CastSessionUtil.MIN_VOLUME_LEVEL_DELTA) {
- mSessionController.getSession().setVolume(newLevel);
- shouldWaitForVolumeChange = true;
- }
- }
- } catch (IOException | IllegalStateException e) {
- Log.e(TAG, "Failed to send volume command: " + e);
- return false;
- }
-
- // For each successful volume message we need to respond with an empty "v2_message" so the
- // Cast Web SDK can call the success callback of the page. If we expect the volume to change
- // as the result of the command, we're relying on {@link Cast.CastListener#onVolumeChanged}
- // to get called by the Android Cast SDK when the receiver status is updated. We keep the
- // sequence number until then. If the volume doesn't change as the result of the command, we
- // won't get notified by the Android SDK
- if (shouldWaitForVolumeChange) {
- mVolumeRequests.add(new RequestRecord(clientId, sequenceNumber));
- } else {
- // It's usually bad to have request and response on the same call stack so post the
- // response to the Android message loop.
- mHandler.post(
- new Runnable() {
- @Override
- public void run() {
- onVolumeChanged(clientId, sequenceNumber);
- }
- });
- }
- return true;
+ return false;
}
@VisibleForTesting
@@ -673,26 +625,15 @@ public class CafMessageHandler {
/** @return A message containing the information of the {@link CastSession}. */
public String buildSessionMessage() {
if (!mSessionController.isConnected()) return "{}";
- assumeNonNull(mSessionController.getSession());
try {
// "volume" is a part of "receiver" initialized below.
JSONObject jsonVolume = new JSONObject();
- jsonVolume.put("level", mSessionController.getSession().getVolume());
- jsonVolume.put("muted", mSessionController.getSession().isMute());
// "receiver" is a part of "message" initialized below.
JSONObject jsonReceiver = new JSONObject();
- jsonReceiver.put(
- "label",
- assumeNonNull(mSessionController.getSession().getCastDevice()).getDeviceId());
- jsonReceiver.put(
- "friendlyName",
- mSessionController.getSession().getCastDevice().getFriendlyName());
jsonReceiver.put("capabilities", toJSONArray(mSessionController.getCapabilities()));
jsonReceiver.put("volume", jsonVolume);
- jsonReceiver.put(
- "isActiveInput", mSessionController.getSession().getActiveInputState());
jsonReceiver.put("displayStatus", null);
jsonReceiver.put("receiverType", "cast");
@@ -705,28 +646,12 @@ public class CafMessageHandler {
JSONObject jsonMessage = new JSONObject();
jsonMessage.put("sessionId", mSessionController.getSessionId());
- jsonMessage.put("statusText", mSessionController.getSession().getApplicationStatus());
jsonMessage.put("receiver", jsonReceiver);
jsonMessage.put("namespaces", jsonNamespaces);
jsonMessage.put("media", toJSONArray(new ArrayList<>()));
jsonMessage.put("status", "connected");
jsonMessage.put("transportId", "web-4");
- ApplicationMetadata applicationMetadata =
- mSessionController.getSession().getApplicationMetadata();
- if (applicationMetadata != null) {
- jsonMessage.put("appId", applicationMetadata.getApplicationId());
- } else {
- jsonMessage.put(
- "appId",
- assumeNonNull(mSessionController.getRouteCreationInfo())
- .getMediaSource()
- .getApplicationId());
- }
- jsonMessage.put(
- "displayName",
- mSessionController.getSession().getCastDevice().getFriendlyName());
-
return jsonMessage.toString();
} catch (JSONException e) {
Log.w(TAG, "Building session message failed", e);
@@ -804,33 +729,6 @@ public class CafMessageHandler {
boolean sendStringCastMessage(
String message, String namespace, String clientId, int sequenceNumber) {
if (!mSessionController.isConnected()) return false;
- assumeNonNull(mSessionController.getSession());
-
- PendingResult<Status> pendingResult =
- mSessionController.getSession().sendMessage(namespace, message);
- if (!TextUtils.equals(namespace, CastSessionUtil.MEDIA_NAMESPACE)) {
- // Media commands wait for the media status update as a result.
- pendingResult.setResultCallback(
- (Status result) -> onSendAppMessageResult(result, clientId, sequenceNumber));
- }
- return true;
- }
-
- /**
- * Notifies a client that an app message has been sent.
- * @param clientId The client id the message is sent from.
- * @param sequenceNumber The sequence number of the message.
- */
- void onSendAppMessageResult(Status result, String clientId, int sequenceNumber) {
- if (!result.isSuccess()) {
- // TODO(avayvod): should actually report back to the page.
- // See https://crbug.com/550445.
- Log.e(TAG, "Failed to send the message: " + result);
- return;
- }
-
- // App messages wait for the empty message with the sequence
- // number.
- sendEnclosedMessageToClient(clientId, "app_message", null, sequenceNumber);
+ return false;
}
}
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java
@@ -8,8 +8,6 @@ import android.net.Uri;
import androidx.mediarouter.media.MediaRouteSelector;
-import com.google.android.gms.cast.CastMediaControlIntent;
-
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.components.media_router.MediaSource;
@@ -97,13 +95,7 @@ public class CastMediaSource implements MediaSource {
*/
@Override
public @Nullable MediaRouteSelector buildRouteSelector() {
- try {
- return new MediaRouteSelector.Builder()
- .addControlCategory(CastMediaControlIntent.categoryForCast(mApplicationId))
- .build();
- } catch (IllegalArgumentException e) {
- return null;
- }
+ return null;
}
/** @return the Cast application id corresponding to the source. */
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java
@@ -6,11 +6,6 @@ package org.chromium.components.media_router.caf;
import android.content.Context;
-import com.google.android.gms.cast.LaunchOptions;
-import com.google.android.gms.cast.framework.CastOptions;
-import com.google.android.gms.cast.framework.OptionsProvider;
-import com.google.android.gms.cast.framework.SessionProvider;
-
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -18,19 +13,5 @@ import java.util.List;
/** {@link OptionsProvider} implementation for Chrome MR. */
@NullMarked
-public class CastOptionsProvider implements OptionsProvider {
- @Override
- public CastOptions getCastOptions(Context context) {
- return new CastOptions.Builder()
- .setEnableReconnectionService(false)
- .setLaunchOptions(new LaunchOptions.Builder().setRelaunchIfRunning(true).build())
- .setResumeSavedSession(false)
- .setStopReceiverApplicationWhenEndingSession(true)
- .build();
- }
-
- @Override
- public @Nullable List<SessionProvider> getAdditionalSessionProviders(Context context) {
- return null;
- }
+public class CastOptionsProvider {
}
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java
@@ -8,11 +8,6 @@ import static org.chromium.build.NullUtil.assumeNonNull;
import androidx.annotation.VisibleForTesting;
-import com.google.android.gms.cast.ApplicationMetadata;
-import com.google.android.gms.cast.Cast;
-import com.google.android.gms.cast.CastDevice;
-import com.google.android.gms.cast.framework.CastSession;
-
import org.chromium.base.Log;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -28,12 +23,10 @@ public class CastSessionController extends BaseSessionController {
private static final String TAG = "CafSessionCtrl";
private final List<String> mNamespaces = new ArrayList<String>();
- private CastListener mCastListener;
private final CafNotificationController mNotificationController;
public CastSessionController(CafBaseMediaRouteProvider provider) {
super(provider);
- mCastListener = new CastListener();
mNotificationController = new CafNotificationController(this);
}
@@ -41,31 +34,6 @@ public class CastSessionController extends BaseSessionController {
return mNamespaces;
}
- /**
- * Init nested fields for testing. The reason is that nested classes are bound to the original
- * instance instead of the spyed instance.
- */
- void initNestedFieldsForTesting() {
- mCastListener = new CastListener();
- }
-
- @Override
- public void attachToCastSession(CastSession session) {
- super.attachToCastSession(session);
- assumeNonNull(getSession());
- getSession().addCastListener(mCastListener);
- updateNamespaces();
- }
-
- @Override
- public void detachFromCastSession() {
- if (getSession() == null) return;
-
- mNamespaces.clear();
- getSession().removeCastListener(mCastListener);
- super.detachFromCastSession();
- }
-
@Override
public void onSessionEnded() {
getMessageHandler().onSessionEnded();
@@ -77,24 +45,6 @@ public class CastSessionController extends BaseSessionController {
return mNotificationController;
}
- private class CastListener extends Cast.Listener {
- @Override
- public void onApplicationStatusChanged() {
- CastSessionController.this.onApplicationStatusChanged();
- }
-
- @Override
- public void onApplicationMetadataChanged(@Nullable ApplicationMetadata metadata) {
- CastSessionController.this.onApplicationStatusChanged();
- }
-
- @Override
- public void onVolumeChanged() {
- CastSessionController.this.onApplicationStatusChanged();
- getMessageHandler().onVolumeChanged();
- }
- }
-
private void onApplicationStatusChanged() {
updateNamespaces();
@@ -106,55 +56,18 @@ public class CastSessionController extends BaseSessionController {
@VisibleForTesting
void updateNamespaces() {
if (!isConnected()) return;
- assumeNonNull(getSession());
-
- if (getSession().getApplicationMetadata() == null
- || getSession().getApplicationMetadata().getSupportedNamespaces() == null) {
- return;
- }
-
- Set<String> namespacesToAdd =
- new HashSet<>(getSession().getApplicationMetadata().getSupportedNamespaces());
- Set<String> namespacesToRemove = new HashSet<String>(mNamespaces);
-
- namespacesToRemove.removeAll(namespacesToAdd);
- namespacesToAdd.removeAll(mNamespaces);
-
- for (String namespace : namespacesToRemove) unregisterNamespace(namespace);
- for (String namespace : namespacesToAdd) registerNamespace(namespace);
}
private void registerNamespace(String namespace) {
assert !mNamespaces.contains(namespace);
if (!isConnected()) return;
-
- try {
- assumeNonNull(getSession())
- .setMessageReceivedCallbacks(namespace, this::onMessageReceived);
- mNamespaces.add(namespace);
- } catch (Exception e) {
- Log.e(TAG, "Failed to register namespace listener for %s", namespace, e);
- }
}
private void unregisterNamespace(String namespace) {
assert mNamespaces.contains(namespace);
if (!isConnected()) return;
-
- try {
- assumeNonNull(getSession()).removeMessageReceivedCallbacks(namespace);
- mNamespaces.remove(namespace);
- } catch (Exception e) {
- Log.e(TAG, "Failed to remove the namespace listener for %s", namespace, e);
- }
- }
-
- @Override
- protected void onMessageReceived(CastDevice castDevice, String namespace, String message) {
- super.onMessageReceived(castDevice, namespace, message);
- getMessageHandler().onMessageReceived(namespace, message);
}
private CafMessageHandler getMessageHandler() {
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java
@@ -6,20 +6,12 @@ package org.chromium.components.media_router.caf;
import static org.chromium.build.NullUtil.assumeNonNull;
-import com.google.android.gms.cast.framework.CastContext;
-
import org.chromium.build.annotations.NullMarked;
import org.chromium.components.media_router.MediaRouterClient;
/** Utility methods for Cast. */
@NullMarked
public class CastUtils {
- /** Helper method to return the {@link CastContext} instance. */
- public static CastContext getCastContext() {
- return CastContext.getSharedInstance(
- assumeNonNull(MediaRouterClient.getInstance()).getContextForRemoting());
- }
-
/**
* Compares two origins. Empty origin strings correspond to unique origins in
* url::Origin.
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java
@@ -19,8 +19,6 @@ import android.widget.TextView;
import androidx.fragment.app.FragmentActivity;
import androidx.mediarouter.app.MediaRouteButton;
-import com.google.android.gms.cast.framework.media.RemoteMediaClient;
-
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.components.media_router.R;
@@ -43,55 +41,34 @@ public class CafExpandedControllerActivity extends FragmentActivity
private TextView mTitleView;
private Runnable mUpdateProgressRunnable;
- private RemoteMediaClient getRemoteMediaClient() {
- RemoteMediaClient ret =
- assumeNonNull(mSessionController.getSession()).getRemoteMediaClient();
- assert ret != null;
- return ret;
- }
-
/** Handle actions from on-screen media controls. */
private final MediaController.Delegate mControllerDelegate =
new MediaController.Delegate() {
@Override
public void play() {
- if (!mSessionController.isConnected()) return;
-
- getRemoteMediaClient().play();
}
@Override
public void pause() {
- if (!mSessionController.isConnected()) return;
-
- getRemoteMediaClient().pause();
}
@Override
public long getDuration() {
- if (!mSessionController.isConnected()) return 0;
- return assumeNonNull(mSessionController.getFlingingController()).getDuration();
+ return 0;
}
@Override
public long getPosition() {
- if (!mSessionController.isConnected()) return 0;
- return assumeNonNull(mSessionController.getFlingingController())
- .getApproximateCurrentTime();
+ return 0;
}
@Override
public void seekTo(long pos) {
- if (!mSessionController.isConnected()) return;
-
- getRemoteMediaClient().seek(pos);
}
@Override
public boolean isPlaying() {
- if (!mSessionController.isConnected()) return false;
-
- return getRemoteMediaClient().isPlaying();
+ return false;
}
@Override
@@ -99,11 +76,6 @@ public class CafExpandedControllerActivity extends FragmentActivity
long flags =
PlaybackStateCompat.ACTION_REWIND
| PlaybackStateCompat.ACTION_FAST_FORWARD;
- if (mSessionController.isConnected() && getRemoteMediaClient().isPlaying()) {
- flags |= PlaybackStateCompat.ACTION_PAUSE;
- } else {
- flags |= PlaybackStateCompat.ACTION_PLAY;
- }
return flags;
}
};
@@ -203,22 +175,10 @@ public class CafExpandedControllerActivity extends FragmentActivity
private void updateUi() {
if (!mSessionController.isConnected()) return;
- String deviceName =
- assumeNonNull(assumeNonNull(mSessionController.getSession()).getCastDevice())
- .getFriendlyName();
- String titleText = "";
- if (deviceName != null) {
- titleText = getString(R.string.cast_casting_video, deviceName);
- }
- mTitleView.setText(titleText);
-
mMediaController.refresh();
mMediaController.updateProgress();
cancelProgressUpdateTask();
- if (getRemoteMediaClient().isPlaying()) {
- scheduleProgressUpdateTask();
- }
}
private void scheduleProgressUpdateTask() {
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java
@@ -72,7 +72,7 @@ public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider {
if (!mRoutes.containsKey(routeId)) return null;
- return sessionController().getFlingingController();
+ return null;
}
@Override
@@ -81,7 +81,7 @@ public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider {
var controller = sessionController();
// There is no active remote playback media route.
- if (!hasSession() || controller.getFlingingController() == null) return;
+ if (!hasSession() || (true)) return;
// Do not update media source for a detached session.
if (!mRoutes.containsKey(assumeNonNull(controller.getRouteCreationInfo()).routeId)) return;
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java
@@ -6,11 +6,6 @@ package org.chromium.components.media_router.caf.remoting;
import static org.chromium.build.NullUtil.assumeNonNull;
-import com.google.android.gms.cast.MediaInfo;
-import com.google.android.gms.cast.MediaStatus;
-import com.google.android.gms.cast.framework.media.RemoteMediaClient;
-import com.google.android.gms.common.api.Result;
-
import org.chromium.base.Log;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -85,16 +80,6 @@ public class FlingingControllerAdapter implements FlingingController, MediaContr
/** Starts loading the media URL, from the given position. */
public void load(long position, boolean autoplay) {
if (!mSessionController.isConnected()) return;
- assumeNonNull(mSessionController.getRemoteMediaClient());
-
- mLoaded = true;
-
- MediaInfo mediaInfo =
- new MediaInfo.Builder(mMediaUrl)
- .setContentType("*/*")
- .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
- .build();
- mSessionController.getRemoteMediaClient().load(mediaInfo, autoplay, position);
}
////////////////////////////////////////////
@@ -104,114 +89,33 @@ public class FlingingControllerAdapter implements FlingingController, MediaContr
@Override
public void play() {
if (!mSessionController.isConnected()) return;
- assumeNonNull(mSessionController.getRemoteMediaClient());
if (!mLoaded) {
load(/* position= */ 0, /* autoplay= */ true);
return;
}
-
- mSessionController
- .getRemoteMediaClient()
- .play()
- .setResultCallback(this::onMediaCommandResult);
}
@Override
public void pause() {
if (!mSessionController.isConnected()) return;
- assumeNonNull(mSessionController.getRemoteMediaClient());
- mSessionController
- .getRemoteMediaClient()
- .pause()
- .setResultCallback(this::onMediaCommandResult);
}
@Override
public void setMute(boolean mute) {
if (!mSessionController.isConnected()) return;
- assumeNonNull(mSessionController.getRemoteMediaClient());
- mSessionController
- .getRemoteMediaClient()
- .setStreamMute(mute)
- .setResultCallback(this::onMediaCommandResult);
}
@Override
public void setVolume(double volume) {
if (!mSessionController.isConnected()) return;
- assumeNonNull(mSessionController.getRemoteMediaClient());
- mSessionController
- .getRemoteMediaClient()
- .setStreamVolume(volume)
- .setResultCallback(this::onMediaCommandResult);
}
@Override
public void seek(long position) {
- if (!mSessionController.isConnected()) return;
- assumeNonNull(mSessionController.getRemoteMediaClient());
-
- if (!mLoaded) {
- load(position, /* autoplay= */ true);
- return;
- }
-
- mSessionController
- .getRemoteMediaClient()
- .seek(position)
- .setResultCallback(this::onMediaCommandResult);
- mStreamPositionExtrapolator.onSeek(position);
}
////////////////////////////////////////////
// MediaController implementation end
////////////////////////////////////////////
-
- public void onStatusUpdated() {
- if (mMediaStatusObserver == null) return;
-
- RemoteMediaClient remoteMediaClient = mSessionController.getRemoteMediaClient();
- assumeNonNull(remoteMediaClient);
-
- MediaStatus mediaStatus = remoteMediaClient.getMediaStatus();
- if (mediaStatus != null) {
- mHasEverReceivedValidMediaSession = true;
- if (mediaStatus.getPlayerState() == MediaStatus.PLAYER_STATE_IDLE
- && mediaStatus.getIdleReason() == MediaStatus.IDLE_REASON_FINISHED) {
- mLoaded = false;
- mStreamPositionExtrapolator.onFinish();
- } else {
- mStreamPositionExtrapolator.update(
- remoteMediaClient.getStreamDuration(),
- remoteMediaClient.getApproximateStreamPosition(),
- remoteMediaClient.isPlaying(),
- mediaStatus.getPlaybackRate());
- }
-
- mMediaStatusObserver.onMediaStatusUpdate(new MediaStatusBridge(mediaStatus));
-
- } else if (mHasEverReceivedValidMediaSession) {
- // We can receive a null |mediaStatus| while we are in the process of loading the video.
- // We should wait until we receive one valid media status before considering the video
- // unloaded. Otherwise, the first call to seek or play will reload the video.
- // See b/144325733.
- mLoaded = false;
- mStreamPositionExtrapolator.clear();
- }
- }
-
- private void onMediaCommandResult(Result result) {
- // When multiple API calls are made in quick succession, "Results have already been set"
- // IllegalStateExceptions might be thrown from GMS code. We prefer to catch the exception
- // and noop it, than to crash. This might lead to some API calls never getting their
- // onResult() called, so we should not rely on onResult() being called for every API call.
- // See https://crbug.com/853923.
- if (!result.getStatus().isSuccess()) {
- Log.e(
- TAG,
- "Error when sending command. Status code: %d",
- result.getStatus().getStatusCode());
- }
- }
}
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java
@@ -13,8 +13,6 @@ import android.util.Base64;
import androidx.mediarouter.media.MediaRouteSelector;
-import com.google.android.gms.cast.CastMediaControlIntent;
-
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.build.annotations.NullMarked;
@@ -85,9 +83,7 @@ public class RemotingMediaSource implements MediaSource {
*/
@Override
public MediaRouteSelector buildRouteSelector() {
- return new MediaRouteSelector.Builder()
- .addControlCategory(CastMediaControlIntent.categoryForCast(getApplicationId()))
- .build();
+ return null;
}
/**
@@ -117,7 +113,7 @@ public class RemotingMediaSource implements MediaSource {
sApplicationId =
(customAppId != null && !customAppId.isEmpty())
? customAppId
- : CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID;
+ : "CC1AD845"; /*DEFAULT_MEDIA_RECEIVER_APPLICATION_ID*/
}
return sApplicationId;
diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java
--- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java
+++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java
@@ -6,8 +6,6 @@ package org.chromium.components.media_router.caf.remoting;
import static org.chromium.build.NullUtil.assumeNonNull;
-import com.google.android.gms.cast.framework.CastSession;
-
import org.chromium.base.Log;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -51,23 +49,6 @@ public class RemotingSessionController extends BaseSessionController {
getProvider().updateRouteMediaSource(getRouteCreationInfo().routeId, source.getSourceId());
}
- @Override
- public void attachToCastSession(CastSession session) {
- super.attachToCastSession(session);
-
- try {
- assumeNonNull(getSession())
- .setMessageReceivedCallbacks(
- CastSessionUtil.MEDIA_NAMESPACE, this::onMessageReceived);
- } catch (Exception e) {
- Log.e(
- TAG,
- "Failed to register namespace listener for %s",
- CastSessionUtil.MEDIA_NAMESPACE,
- e);
- }
- }
-
@Override
public void onSessionStarted() {
super.onSessionStarted();
@@ -79,18 +60,6 @@ public class RemotingSessionController extends BaseSessionController {
}
}
- @Override
- protected void onStatusUpdated() {
- assumeNonNull(mFlingingControllerAdapter);
- mFlingingControllerAdapter.onStatusUpdated();
- super.onStatusUpdated();
- }
-
- @Override
- public @Nullable FlingingControllerAdapter getFlingingController() {
- return mFlingingControllerAdapter;
- }
-
@Override
public BaseNotificationController getNotificationController() {
return mNotificationController;
diff --git a/components/media_router/test/android/cast_emulator/BUILD.gn b/components/media_router/test/android/cast_emulator/BUILD.gn
--- a/components/media_router/test/android/cast_emulator/BUILD.gn
+++ b/components/media_router/test/android/cast_emulator/BUILD.gn
@@ -20,7 +20,6 @@ android_library("cast_emulator_java") {
"src/org/chromium/components/media_router/cast_emulator/router/DummyRoutePublisher.java",
]
deps = [
- "$google_play_services_package:google_play_services_cast_java",
"//base:base_java",
"//third_party/androidx:androidx_mediarouter_mediarouter_java",
]
diff --git a/components/module_installer/android/BUILD.gn b/components/module_installer/android/BUILD.gn
--- a/components/module_installer/android/BUILD.gn
+++ b/components/module_installer/android/BUILD.gn
@@ -28,10 +28,8 @@ android_library("module_installer_java") {
]
deps = [
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//components/crash/android:java",
- "//third_party/android_deps:playcore_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/jni_zero:jni_zero_java",
]
@@ -49,11 +47,9 @@ robolectric_binary("module_installer_junit_tests") {
]
deps = [
":module_installer_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
- "//third_party/android_deps:playcore_java",
"//third_party/hamcrest:hamcrest_java",
]
}
diff --git a/components/omnibox/common/BUILD.gn b/components/omnibox/common/BUILD.gn
--- a/components/omnibox/common/BUILD.gn
+++ b/components/omnibox/common/BUILD.gn
@@ -54,7 +54,6 @@ if (is_android) {
":jni_headers",
]
deps = [
- "$google_play_services_package:google_play_services_location_java",
"//base:base_java",
"//chrome/browser/feedback/android:java",
"//components/cached_flags:java",
diff --git a/components/omnibox/common/android/java/src/org/chromium/components/omnibox/OmniboxFeatures.java b/components/omnibox/common/android/java/src/org/chromium/components/omnibox/OmniboxFeatures.java
--- a/components/omnibox/common/android/java/src/org/chromium/components/omnibox/OmniboxFeatures.java
+++ b/components/omnibox/common/android/java/src/org/chromium/components/omnibox/OmniboxFeatures.java
@@ -10,8 +10,6 @@ import android.text.format.DateUtils;
import androidx.annotation.IntDef;
import androidx.annotation.VisibleForTesting;
-import com.google.android.gms.location.Priority;
-
import org.chromium.base.BaseSwitches;
import org.chromium.base.CommandLine;
import org.chromium.base.ContextUtils;
@@ -152,12 +150,6 @@ public class OmniboxFeatures {
"geolocation_request_min_update_interval_millis",
(int) (9 * DateUtils.MINUTE_IN_MILLIS));
- public static final IntCachedFeatureParam sGeolocationRequestPriority =
- newIntParam(
- sUseFusedLocationProvider,
- "geolocation_request_priority",
- Priority.PRIORITY_BALANCED_POWER_ACCURACY);
-
public static final IntCachedFeatureParam sTouchDownTriggerMaxPrefetchesPerSession =
newIntParam(
sTouchDownTriggerForPrefetch,
diff --git a/components/signin/public/android/BUILD.gn b/components/signin/public/android/BUILD.gn
--- a/components/signin/public/android/BUILD.gn
+++ b/components/signin/public/android/BUILD.gn
@@ -3,8 +3,6 @@ import("//third_party/jni_zero/jni_zero.gni")
android_library("java") {
deps = [
- "$google_play_services_package:google_play_services_auth_base_java",
- "$google_play_services_package:google_play_services_base_java",
"//base:base_java",
"//base:service_loader_java",
"//build/android:build_java",
@@ -196,7 +194,6 @@ robolectric_library("junit") {
deps = [
":java",
":signin_java_test_support",
- "$google_play_services_package:google_play_services_auth_base_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_java_test_support_uncommon",
diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/BUILD.gn
--- a/components/webauthn/android/BUILD.gn
+++ b/components/webauthn/android/BUILD.gn
@@ -7,8 +7,6 @@ import("//third_party/jni_zero/jni_zero.gni")
generate_jni("jni_headers") {
sources = [
- "java/src/org/chromium/components/webauthn/Fido2Api.java",
- "java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java",
"java/src/org/chromium/components/webauthn/InternalAuthenticator.java",
"java/src/org/chromium/components/webauthn/WebauthnBrowserBridge.java",
"java/src/org/chromium/components/webauthn/WebauthnModeProvider.java",
@@ -37,12 +35,7 @@ android_library("java") {
"java/src/org/chromium/components/webauthn/AuthenticatorImpl.java",
"java/src/org/chromium/components/webauthn/Barrier.java",
"java/src/org/chromium/components/webauthn/CreateConfirmationUiDelegate.java",
- "java/src/org/chromium/components/webauthn/Fido2Api.java",
- "java/src/org/chromium/components/webauthn/Fido2ApiCall.java",
- "java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java",
- "java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java",
- "java/src/org/chromium/components/webauthn/Fido2GetCredentialsComparator.java",
- "java/src/org/chromium/components/webauthn/FidoErrorResponseCallback.java",
+ "java/src/org/chromium/components/webauthn/ConditionalUiState.java",
"java/src/org/chromium/components/webauthn/FidoIntentSender.java",
"java/src/org/chromium/components/webauthn/GetAssertionResponseCallback.java",
"java/src/org/chromium/components/webauthn/GetMatchingCredentialIdsResponseCallback.java",
@@ -68,9 +61,6 @@ android_library("java") {
]
deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//base:service_loader_java",
"//base/version_info/android:version_constants_java",
@@ -141,8 +131,6 @@ android_library("test_support_java") {
source_set("android") {
sources = [
"cred_man_support.h",
- "fido2api_native_android.cc",
- "fido2credentialrequest_native_android.cc",
"internal_authenticator_android.cc",
"internal_authenticator_android.h",
"webauthn_browser_bridge.cc",
@@ -212,7 +200,6 @@ robolectric_library("junit") {
deps = [
":java",
":test_support_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
@@ -71,18 +71,10 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
private @Nullable MakeCredential_Response mMakeCredentialCallback;
private @Nullable GetCredential_Response mGetCredentialCallback;
- private @Nullable Fido2CredentialRequest mPendingFido2CredentialRequest;
- private final Set<Fido2CredentialRequest> mUnclosedFido2CredentialRequests = new HashSet<>();
-
// Information about the request cached here for metric reporting purposes.
private boolean mIsConditionalRequest;
private boolean mIsPaymentRequest;
- // StaticFieldLeak complains that this is a memory leak because
- // `Fido2CredentialRequest` contains a `Context`. But this field is only
- // used in tests so a memory leak is irrelevent.
- @SuppressLint("StaticFieldLeak")
- private static @Nullable Fido2CredentialRequest sFido2CredentialRequestOverrideForTesting;
/**
* Builds the Authenticator service implementation.
@@ -116,19 +108,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
mCreateConfirmationUiDelegate = createConfirmationUiDelegate;
}
- public static void overrideFido2CredentialRequestForTesting(Fido2CredentialRequest request) {
- sFido2CredentialRequestOverrideForTesting = request;
- }
-
- private Fido2CredentialRequest getFido2CredentialRequest() {
- if (sFido2CredentialRequestOverrideForTesting != null) {
- return sFido2CredentialRequestOverrideForTesting;
- }
- Fido2CredentialRequest request = new Fido2CredentialRequest(this);
- mUnclosedFido2CredentialRequests.add(request);
- return request;
- }
-
/**
* Called by InternalAuthenticatorAndroid, which facilitates WebAuthn for processes that
* originate from the browser process. Since the request is from the browser process, the
@@ -181,16 +160,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
}
private void continueMakeCredential(PublicKeyCredentialCreationOptions options) {
- mPendingFido2CredentialRequest = getFido2CredentialRequest();
- mPendingFido2CredentialRequest.handleMakeCredentialRequest(
- options,
- maybeCreateBrowserOptions(),
- assertNonNull(mOrigin),
- mTopOrigin,
- mPayment,
- this::onRegisterResponse,
- this::onError,
- this::recordOutcomeEvent);
}
private @Nullable Bundle maybeCreateBrowserOptions() {
@@ -224,16 +193,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
onError(AuthenticatorStatus.NOT_IMPLEMENTED);
return;
}
-
- mPendingFido2CredentialRequest = getFido2CredentialRequest();
- mPendingFido2CredentialRequest.handleGetAssertionRequest(
- options,
- assertNonNull(mOrigin),
- mTopOrigin,
- mPayment,
- this::onSignResponse,
- this::onError,
- this::recordOutcomeEvent);
}
@Override
@@ -266,10 +225,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
decoratedCallback.call(false);
return;
}
-
- getFido2CredentialRequest()
- .handleIsUserVerifyingPlatformAuthenticatorAvailableRequest(
- isUvpaa -> decoratedCallback.call(isUvpaa));
}
@Override
@@ -299,19 +254,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
return;
}
- getFido2CredentialRequest()
- .handleIsUserVerifyingPlatformAuthenticatorAvailableRequest(
- isUvpaa -> {
- capabilities.add(
- createWebAuthnClientCapability(
- AuthenticatorConstants.CAPABILITY_CONDITIONAL_GET,
- couldSupportConditionalMediation() && isUvpaa));
- capabilities.add(
- createWebAuthnClientCapability(
- AuthenticatorConstants.CAPABILITY_UVPAA,
- couldSupportUvpaa() && isUvpaa));
- callback.call(capabilities.toArray(new WebAuthnClientCapability[0]));
- });
+ callback.call(capabilities.toArray(new WebAuthnClientCapability[0]));
}
// Helper function to create WebAuthnClientCapability instances
@@ -341,14 +284,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
callback.onResponse(new ArrayList<byte[]>());
return;
}
-
- getFido2CredentialRequest()
- .handleGetMatchingCredentialIdsRequest(
- relyingPartyId,
- credentialIds,
- requireThirdPartyPayment,
- callback,
- this::onError);
}
@Override
@@ -358,13 +293,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
callback.call(false);
return;
}
-
- // If the gmscore and chromium versions are out of sync for some reason, this method will
- // return true but chrome will ignore conditional requests. Android surfaces only platform
- // credentials on conditional requests, use IsUVPAA as a proxy for availability.
- getFido2CredentialRequest()
- .handleIsUserVerifyingPlatformAuthenticatorAvailableRequest(
- isUvpaa -> callback.call(isUvpaa));
}
@Override
@@ -376,9 +304,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
if (!mIsOperationPending || mGetCredentialCallback == null) {
return;
}
-
- assumeNonNull(mPendingFido2CredentialRequest);
- mPendingFido2CredentialRequest.cancelConditionalGetAssertion();
}
/** Callbacks for receiving responses from the internal handlers. */
@@ -424,7 +349,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
} else if (mGetCredentialCallback != null) {
mGetCredentialCallback.call(getCredentialResponseForAssertion(status, null));
}
- if (mPendingFido2CredentialRequest != null) mPendingFido2CredentialRequest.destroyBridge();
cleanupRequest();
}
@@ -462,13 +386,10 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
mIsOperationPending = false;
mMakeCredentialCallback = null;
mGetCredentialCallback = null;
- mPendingFido2CredentialRequest = null;
}
@Override
public void close() {
- mUnclosedFido2CredentialRequests.forEach(Fido2CredentialRequest::destroyBridge);
- mUnclosedFido2CredentialRequests.clear();
cleanupRequest();
}
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java
new file mode 100644
--- /dev/null
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java
@@ -0,0 +1,15 @@
+// Copyright 2018 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.components.webauthn;
+
+public enum ConditionalUiState {
+ NONE,
+ WAITING_FOR_RP_ID_VALIDATION,
+ WAITING_FOR_CREDENTIAL_LIST,
+ WAITING_FOR_SELECTION,
+ REQUEST_SENT_TO_PLATFORM,
+ CANCEL_PENDING,
+ CANCEL_PENDING_RP_ID_VALIDATION_COMPLETE,
+}
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java
@@ -9,27 +9,13 @@ import org.chromium.build.annotations.NullMarked;
@NullMarked
public class GmsCoreUtils {
- private static final String GMSCORE_PACKAGE_NAME = "com.google.android.gms";
- private static final int GMSCORE_MIN_VERSION_GET_MATCHING_CRED_IDS = 223300000;
- private static final int GMSCORE_MIN_VERSION_HYBRID_API = 231206000;
- private static final int GMSCORE_MIN_VERSION_RESULT_RECEIVER = 240700000;
- // This version is the minimum needed for dynamic lookup of services, which
- // the persistent API requires.
- static final int GMSCORE_MIN_VERSION_DYNAMIC_LOOKUP = 17895000;
- static final int GMSCORE_MIN_VERSION = 16890000;
-
- private static int sGmsCorePackageVersion;
-
public static int getGmsCoreVersion() {
- if (sGmsCorePackageVersion == 0) {
- sGmsCorePackageVersion = PackageUtils.getPackageVersion(GMSCORE_PACKAGE_NAME);
- }
- return sGmsCorePackageVersion;
+ return 0;
}
/** Returns whether WebAuthn APIs are supported in GMSCore. */
public static boolean isWebauthnSupported() {
- return getGmsCoreVersion() >= GMSCORE_MIN_VERSION;
+ return false;
}
/**
@@ -38,20 +24,16 @@ public class GmsCoreUtils {
* version.
*/
public static boolean isGetMatchingCredentialIdsSupported() {
- return getGmsCoreVersion() >= GMSCORE_MIN_VERSION_GET_MATCHING_CRED_IDS;
+ return false;
}
/** Returns whether the hybrid sign in API is supported. */
public static boolean isHybridClientApiSupported() {
- return getGmsCoreVersion() >= GMSCORE_MIN_VERSION_HYBRID_API;
+ return false;
}
/** Returns whether makeCredential / getAssertion APIs support responding via ResultReceiver. */
static boolean isResultReceiverSupported() {
- return getGmsCoreVersion() >= GMSCORE_MIN_VERSION_RESULT_RECEIVER;
- }
-
- public static void setGmsCoreVersionForTesting(int version) {
- sGmsCorePackageVersion = version;
+ return false;
}
}
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnModeProvider.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnModeProvider.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnModeProvider.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnModeProvider.java
@@ -9,7 +9,6 @@ import org.jni_zero.NativeMethods;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
-import org.chromium.components.webauthn.Fido2ApiCall.Fido2ApiCallParams;
import org.chromium.components.webauthn.cred_man.AppCredManRequestDecorator;
import org.chromium.components.webauthn.cred_man.BrowserCredManRequestDecorator;
import org.chromium.components.webauthn.cred_man.CredManRequestDecorator;
@@ -51,20 +50,6 @@ public class WebauthnModeProvider {
return null;
}
- public @Nullable Fido2ApiCallParams getFido2ApiCallParams(@Nullable WebContents webContents) {
- int mode = getWebauthnMode(webContents);
- if (mode == WebauthnMode.APP) {
- return Fido2ApiCall.APP_API;
- } else if (mode == WebauthnMode.BROWSER
- || mode == WebauthnMode.CHROME
- || mode == WebauthnMode.CHROME_3PP_ENABLED) {
- return Fido2ApiCall.BROWSER_API;
- } else {
- assert false : "WebauthnMode not set! See this class's JavaDoc.";
- }
- return null;
- }
-
public @WebauthnMode int getWebauthnMode(@Nullable WebContents webContents) {
if (mGlobalMode != WebauthnMode.NONE) return mGlobalMode;
return WebauthnModeProviderJni.get().getWebauthnModeForWebContents(webContents);
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManHelper.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManHelper.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManHelper.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManHelper.java
@@ -39,8 +39,7 @@ import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.components.webauthn.AuthenticationContextProvider;
import org.chromium.components.webauthn.Barrier;
-import org.chromium.components.webauthn.Fido2CredentialRequest.ConditionalUiState;
-import org.chromium.components.webauthn.Fido2CredentialRequestJni;
+import org.chromium.components.webauthn.ConditionalUiState;
import org.chromium.components.webauthn.GetAssertionOutcome;
import org.chromium.components.webauthn.GetAssertionResponseCallback;
import org.chromium.components.webauthn.MakeCredentialOutcome;
@@ -109,8 +108,7 @@ public class CredManHelper {
@Nullable MakeCredentialResponseCallback makeCallback,
ErrorCallback errorCallback) {
mClientDataJson = clientDataJson;
- final String requestAsJson =
- Fido2CredentialRequestJni.get().createOptionsToJson(options.serialize());
+ final String requestAsJson = "";
OutcomeReceiver<CreateCredentialResponse, CreateCredentialException> receiver =
new OutcomeReceiver<>() {
@@ -154,9 +152,7 @@ public class CredManHelper {
data.getString(
CRED_MAN_PREFIX + "BUNDLE_KEY_REGISTRATION_RESPONSE_JSON");
assertNonNull(json);
- byte[] responseSerialized =
- Fido2CredentialRequestJni.get()
- .makeCredentialResponseFromJson(json);
+ byte[] responseSerialized = null;
if (responseSerialized == null) {
Log.e(
TAG,
@@ -445,8 +441,7 @@ public class CredManHelper {
CRED_MAN_PREFIX
+ "BUNDLE_KEY_AUTHENTICATION_RESPONSE_JSON");
assertNonNull(json);
- byte[] responseSerialized =
- Fido2CredentialRequestJni.get().getCredentialResponseFromJson(json);
+ byte[] responseSerialized = null;
if (responseSerialized == null) {
Log.e(
TAG,
@@ -613,8 +608,7 @@ public class CredManHelper {
boolean requestPasswords,
boolean preferImmediatelyAvailable,
boolean ignoreGpm) {
- final String requestAsJson =
- Fido2CredentialRequestJni.get().getOptionsToJson(options.serialize());
+ final String requestAsJson = "";
boolean hasAllowCredentials =
options.allowCredentials != null && options.allowCredentials.length != 0;
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManMetricsHelper.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManMetricsHelper.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManMetricsHelper.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManMetricsHelper.java
@@ -8,7 +8,7 @@ import androidx.annotation.IntDef;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.build.annotations.NullMarked;
-import org.chromium.components.webauthn.Fido2CredentialRequest.ConditionalUiState;
+import org.chromium.components.webauthn.ConditionalUiState;
/**
* This class is responsible for emitting histograms regarding CredMan usage in
diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/browser/push_messaging/push_messaging_manager.cc
--- a/content/browser/push_messaging/push_messaging_manager.cc
+++ b/content/browser/push_messaging/push_messaging_manager.cc
@@ -806,7 +806,7 @@ void PushMessagingManager::GetSubscriptionInfo(
}
PushMessagingService* PushMessagingManager::GetService() {
- return render_process_host_->GetBrowserContext()->GetPushMessagingService();
+ return nullptr;
}
} // namespace content
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
--- a/content/public/android/BUILD.gn
+++ b/content/public/android/BUILD.gn
@@ -161,10 +161,6 @@ android_library("content_full_java") {
":content_java_resources",
":content_main_dex_java",
":content_util_java",
- "$google_play_services_package:google_play_services_auth_api_phone_java",
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//base:process_launcher_java",
"//base:service_loader_java",
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -3713,10 +3713,6 @@ if (is_android) {
testonly = true
sources = content_java_sources_needing_jni
deps = [
- "$google_play_services_package:google_play_services_auth_api_phone_java",
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//content/public/android:content_java",
"//third_party/jni_zero:jni_zero_java",
diff --git a/device/BUILD.gn b/device/BUILD.gn
--- a/device/BUILD.gn
+++ b/device/BUILD.gn
@@ -521,9 +521,6 @@ if (is_android) {
"vr/public/junit/src/org/chromium/device/vr/XrFeatureStatusTest.java",
]
deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_location_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
diff --git a/device/fido/features.cc b/device/fido/features.cc
--- a/device/fido/features.cc
+++ b/device/fido/features.cc
@@ -107,6 +107,7 @@ BASE_FEATURE(kWebAuthnAmbientSignin,
BASE_FEATURE(kWebAuthnHybridLinking,
"WebAuthenticationHybridLinking",
base::FEATURE_DISABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kWebAuthnHybridLinking);
// This is a deprecation flag. It is now enabled by default, but we want to
// disable it eventually.
diff --git a/services/BUILD.gn b/services/BUILD.gn
--- a/services/BUILD.gn
+++ b/services/BUILD.gn
@@ -158,12 +158,6 @@ if (is_android) {
"shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java",
]
deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_location_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "$google_play_services_package:google_play_services_vision_common_java",
- "$google_play_services_package:google_play_services_vision_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
@@ -194,10 +188,6 @@ if (is_android) {
"shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java",
]
deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_vision_common_java",
- "$google_play_services_package:google_play_services_vision_java",
"//base:base_java",
"//base:base_java_test_support",
"//mojo/public/java:base_java",
diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
--- a/services/device/geolocation/BUILD.gn
+++ b/services/device/geolocation/BUILD.gn
@@ -156,10 +156,6 @@ if (is_android) {
deps = [
":geolocation_jni_headers",
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_location_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//build/android:build_java",
"//components/location/android:location_java",
diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn
--- a/services/shape_detection/BUILD.gn
+++ b/services/shape_detection/BUILD.gn
@@ -114,8 +114,6 @@ if (is_android) {
]
deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
"//base:base_java",
"//mojo/public/java:base_java",
"//mojo/public/java:bindings_java",
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
--- a/third_party/android_deps/BUILD.gn
+++ b/third_party/android_deps/BUILD.gn
@@ -94,22 +94,13 @@ if (!limit_android_deps) {
android_library("chromium_play_services_availability_java") {
sources = [ "util/org/chromium/gms/ChromiumPlayServicesAvailability.java" ]
- deps = [ "$google_play_services_package:google_play_services_base_java" ]
+ deps = [ ]
}
robolectric_library("chromium_play_services_availability_shadows_java") {
sources = [ "util/org/chromium/gms/shadows/ShadowChromiumPlayServicesAvailability.java" ]
deps = [ ":chromium_play_services_availability_java" ]
}
-
- java_group("playcore_java") {
- preferred_dep = true
- if (defined(playcore_target)) {
- deps = [ playcore_target ]
- } else {
- deps = [ "//third_party/android_deps:com_google_android_play_feature_delivery_java" ]
- }
- }
}
# The section below is generated by running
@@ -233,94 +224,6 @@ if (!limit_android_deps) {
}
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_datatransport_java") {
- aar_path = "cipd/libs/com_google_firebase_firebase_datatransport/firebase-datatransport-19.0.0.aar"
- info_path = "libs/com_google_firebase_firebase_datatransport/com_google_firebase_firebase_datatransport.info"
- enable_bytecode_checks = false
- deps = [
- ":google_android_datatransport_transport_api_java",
- ":google_android_datatransport_transport_backend_cct_java",
- ":google_android_datatransport_transport_runtime_java",
- "$google_play_services_package:google_firebase_firebase_common_java",
- "$google_play_services_package:google_firebase_firebase_components_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_iid_java") {
- aar_path =
- "cipd/libs/com_google_firebase_firebase_iid/firebase-iid-21.1.0.aar"
- info_path = "libs/com_google_firebase_firebase_iid/com_google_firebase_firebase_iid.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_firebase_firebase_common_java",
- "$google_play_services_package:google_firebase_firebase_components_java",
- "$google_play_services_package:google_firebase_firebase_iid_interop_java",
- "$google_play_services_package:google_firebase_firebase_installations_interop_java",
- "$google_play_services_package:google_firebase_firebase_installations_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_cloud_messaging_java",
- "$google_play_services_package:google_play_services_stats_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/androidx:androidx_collection_collection_java",
- "//third_party/androidx:androidx_core_core_java",
- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt(
- "google_firebase_firebase_measurement_connector_java") {
- aar_path = "cipd/libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector-20.0.1.aar"
- info_path = "libs/com_google_firebase_firebase_measurement_connector/com_google_firebase_firebase_measurement_connector.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_firebase_firebase_annotations_java",
- "$google_play_services_package:google_play_services_basement_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_messaging_java") {
- aar_path = "cipd/libs/com_google_firebase_firebase_messaging/firebase-messaging-24.1.0.aar"
- info_path = "libs/com_google_firebase_firebase_messaging/com_google_firebase_firebase_messaging.info"
- enable_bytecode_checks = false
- deps = [
- ":com_google_errorprone_error_prone_annotations_java",
- ":google_android_datatransport_transport_api_java",
- ":google_android_datatransport_transport_backend_cct_java",
- ":google_android_datatransport_transport_runtime_java",
- "$google_play_services_package:google_firebase_firebase_common_java",
- "$google_play_services_package:google_firebase_firebase_common_ktx_java",
- "$google_play_services_package:google_firebase_firebase_components_java",
- "$google_play_services_package:google_firebase_firebase_datatransport_java",
- "$google_play_services_package:google_firebase_firebase_encoders_java",
- "$google_play_services_package:google_firebase_firebase_encoders_json_java",
- "$google_play_services_package:google_firebase_firebase_encoders_proto_java",
- "$google_play_services_package:google_firebase_firebase_iid_interop_java",
- "$google_play_services_package:google_firebase_firebase_installations_interop_java",
- "$google_play_services_package:google_firebase_firebase_installations_java",
- "$google_play_services_package:google_firebase_firebase_measurement_connector_java",
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_cloud_messaging_java",
- "$google_play_services_package:google_play_services_stats_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
- }
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_googlecode_java_diff_utils_diffutils_java") {
@@ -500,180 +403,6 @@ if (!limit_android_deps) {
deps = [ ":org_mockito_mockito_core_java" ]
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_cloud_messaging_java") {
- aar_path = "cipd/libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging-17.2.0.aar"
- info_path = "libs/com_google_android_gms_play_services_cloud_messaging/com_google_android_gms_play_services_cloud_messaging.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- java_prebuilt("google_firebase_firebase_annotations_java") {
- jar_path = "cipd/libs/com_google_firebase_firebase_annotations/firebase-annotations-16.2.0.jar"
- output_name = "com_google_firebase_firebase_annotations"
- supports_android = true
- requires_android = true
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [ ":javax_inject_javax_inject_java" ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_common_java") {
- aar_path = "cipd/libs/com_google_firebase_firebase_common/firebase-common-21.0.0.aar"
- info_path = "libs/com_google_firebase_firebase_common/com_google_firebase_firebase_common.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- ":org_jetbrains_kotlinx_kotlinx_coroutines_play_services_java",
- "$google_play_services_package:google_firebase_firebase_annotations_java",
- "$google_play_services_package:google_firebase_firebase_components_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- "//third_party/androidx:androidx_concurrent_concurrent_futures_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_common_ktx_java") {
- aar_path = "cipd/libs/com_google_firebase_firebase_common_ktx/firebase-common-ktx-21.0.0.aar"
- info_path = "libs/com_google_firebase_firebase_common_ktx/com_google_firebase_firebase_common_ktx.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- "$google_play_services_package:google_firebase_firebase_annotations_java",
- "$google_play_services_package:google_firebase_firebase_common_java",
- "$google_play_services_package:google_firebase_firebase_components_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_components_java") {
- aar_path = "cipd/libs/com_google_firebase_firebase_components/firebase-components-18.0.0.aar"
- info_path = "libs/com_google_firebase_firebase_components/com_google_firebase_firebase_components.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- ":com_google_errorprone_error_prone_annotations_java",
- "$google_play_services_package:google_firebase_firebase_annotations_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_iid_interop_java") {
- aar_path = "cipd/libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop-17.1.0.aar"
- info_path = "libs/com_google_firebase_firebase_iid_interop/com_google_firebase_firebase_iid_interop.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_installations_java") {
- aar_path = "cipd/libs/com_google_firebase_firebase_installations/firebase-installations-17.2.0.aar"
- info_path = "libs/com_google_firebase_firebase_installations/com_google_firebase_firebase_installations.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- "$google_play_services_package:google_firebase_firebase_annotations_java",
- "$google_play_services_package:google_firebase_firebase_common_java",
- "$google_play_services_package:google_firebase_firebase_common_ktx_java",
- "$google_play_services_package:google_firebase_firebase_components_java",
- "$google_play_services_package:google_firebase_firebase_installations_interop_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt(
- "google_firebase_firebase_installations_interop_java") {
- aar_path = "cipd/libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop-17.1.1.aar"
- info_path = "libs/com_google_firebase_firebase_installations_interop/com_google_firebase_firebase_installations_interop.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- "$google_play_services_package:google_firebase_firebase_annotations_java",
- "$google_play_services_package:google_play_services_tasks_java",
- ]
- }
- }
-
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("jakarta_inject_jakarta_inject_api_java") {
jar_path = "cipd/libs/jakarta_inject_jakarta_inject_api/jakarta.inject-api-2.0.1.jar"
diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_deps/autorolled/BUILD.gn
--- a/third_party/android_deps/autorolled/BUILD.gn
+++ b/third_party/android_deps/autorolled/BUILD.gn
@@ -139,342 +139,6 @@ template("define_autorolled_targets") {
deps = [ "//third_party/android_deps:org_ow2_asm_asm_tree_java" ]
}
if (!limit_android_deps) {
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt(
- "google_android_datatransport_transport_backend_cct_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_backend_cct/transport-backend-cct-4.0.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_datatransport_transport_backend_cct/com_google_android_datatransport_transport_backend_cct.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_firebase_firebase_encoders_java",
- "$google_play_services_package:google_firebase_firebase_encoders_json_java",
- "//third_party/android_deps:google_android_datatransport_transport_api_java",
- "//third_party/android_deps:google_android_datatransport_transport_runtime_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_auth_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth/play-services-auth-21.3.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth/com_google_android_gms_play_services_auth.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_auth_api_phone_java",
- "$google_play_services_package:google_play_services_auth_base_java",
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_fido_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/androidx:androidx_fragment_fragment_java",
- "//third_party/androidx:androidx_loader_loader_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_auth_api_phone_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone-18.2.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth_api_phone/com_google_android_gms_play_services_auth_api_phone.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_java",
- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_play_services_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_auth_base_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_base/play-services-auth-base-18.1.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth_base/com_google_android_gms_play_services_auth_base.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/androidx:androidx_collection_collection_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_auth_blockstore_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_blockstore/play-services-auth-blockstore-16.4.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth_blockstore/com_google_android_gms_play_services_auth_blockstore.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_base_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_base/play-services-base-18.7.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/androidx:androidx_collection_collection_java",
- "//third_party/androidx:androidx_core_core_java",
- "//third_party/androidx:androidx_fragment_fragment_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_basement_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_basement/play-services-basement-18.7.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info"
- enable_bytecode_checks = false
- deps = [
- "//third_party/androidx:androidx_collection_collection_java",
- "//third_party/androidx:androidx_core_core_java",
- "//third_party/androidx:androidx_fragment_fragment_java",
- ]
-
- jar_excluded_patterns = []
- if (!enable_java_asserts) {
- # Omit the file since we use our own copy.
- jar_excluded_patterns +=
- [ "com/google/android/gms/common/internal/Preconditions.class" ]
- deps += [ "//third_party/android_deps/local_modifications/preconditions:gms_stub_preconditions_java" ]
- }
-
- # https://crbug.com/989505
- jar_excluded_patterns += [ "META-INF/proguard/*" ]
- input_jars_paths =
- [ "$android_sdk/optional/org.apache.http.legacy.jar" ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_cast_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cast/play-services-cast-22.1.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_flags_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/androidx:androidx_core_core_java",
- "//third_party/androidx:androidx_mediarouter_mediarouter_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_cast_framework_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-22.1.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_cast_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/android_deps:google_android_datatransport_transport_api_java",
- "//third_party/android_deps:google_android_datatransport_transport_backend_cct_java",
- "//third_party/android_deps:google_android_datatransport_transport_runtime_java",
- "//third_party/android_deps:guava_android_java",
- "//third_party/androidx:androidx_appcompat_appcompat_java",
- "//third_party/androidx:androidx_collection_collection_java",
- "//third_party/androidx:androidx_concurrent_concurrent_futures_java",
- "//third_party/androidx:androidx_core_core_java",
- "//third_party/androidx:androidx_fragment_fragment_java",
- "//third_party/androidx:androidx_media_media_java",
- "//third_party/androidx:androidx_mediarouter_mediarouter_java",
- "//third_party/androidx:androidx_recyclerview_recyclerview_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_fido_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_fido/play-services-fido-21.2.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_gcm_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_iid_java",
- "$google_play_services_package:google_play_services_stats_java",
- "//third_party/androidx:androidx_collection_collection_java",
- "//third_party/androidx:androidx_core_core_java",
- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_identity_credentials_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_identity_credentials/play-services-identity-credentials-16.0.0-alpha07.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_identity_credentials/com_google_android_gms_play_services_identity_credentials.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_iid_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_stats_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/androidx:androidx_collection_collection_java",
- "//third_party/androidx:androidx_core_core_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_instantapps_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-18.1.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_location_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_location/play-services-location-21.3.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_location/com_google_android_gms_play_services_location.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_android_java",
- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_stats_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_stats/play-services-stats-17.1.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_stats/com_google_android_gms_play_services_stats.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_basement_java",
- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_tasks_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_tasks/play-services-tasks-18.3.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_basement_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_vision_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision/play-services-vision-20.1.3.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_vision_common_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_vision_common_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-19.1.3.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_vision_common/com_google_android_gms_play_services_vision_common.info"
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_clearcut_java",
- "$google_play_services_package:google_play_services_flags_java",
- "$google_play_services_package:google_play_services_phenotype_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- android_aar_prebuilt(
- "com_google_android_libraries_identity_googleid_googleid_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_libraries_identity_googleid_googleid/googleid-1.1.1.aar"
- info_path = "autorolled/committed/libs/com_google_android_libraries_identity_googleid_googleid/com_google_android_libraries_identity_googleid_googleid.info"
- enable_bytecode_checks = false
- deps = [
- "//third_party/androidx:androidx_credentials_credentials_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
-
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
if (!defined(material_design_target)) {
android_aar_prebuilt("com_google_android_material_material_java") {
@@ -523,24 +187,6 @@ template("define_autorolled_targets") {
}
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (!defined(playcore_target)) {
- android_aar_prebuilt("com_google_android_play_feature_delivery_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_play_feature_delivery/feature-delivery-2.1.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_play_feature_delivery/com_google_android_play_feature_delivery.info"
- enable_bytecode_checks = false
-
- # Target is swapped out when internal code is enabled.
- # Please depend on //third_party/android_deps:playcore_java instead.
- visibility = [ "//third_party/android_deps:*" ]
- deps = [
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/android_deps:com_google_android_play_core_common_java",
- ]
- }
- }
-
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_code_findbugs_jsr305_java") {
jar_path = "autorolled/cipd/libs/com_google_code_findbugs_jsr305/jsr305-3.0.2.jar"
@@ -642,21 +288,6 @@ template("define_autorolled_targets") {
deps = [ "//third_party/kotlin_stdlib:kotlin_stdlib_java" ]
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- java_prebuilt(
- "org_jetbrains_kotlinx_kotlinx_coroutines_play_services_java") {
- jar_path = "autorolled/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_play_services/kotlinx-coroutines-play-services-1.10.1.jar"
- output_name = "org_jetbrains_kotlinx_kotlinx_coroutines_play_services"
- supports_android = true
- requires_android = true
- enable_bytecode_checks = false
- deps = [
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_java",
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
- ]
- }
-
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("org_jetbrains_kotlinx_kotlinx_serialization_core_jvm_java") {
jar_path = "autorolled/cipd/libs/org_jetbrains_kotlinx_kotlinx_serialization_core_jvm/kotlinx-serialization-core-jvm-1.7.2.jar"
@@ -695,126 +326,6 @@ template("define_autorolled_targets") {
]
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_android_datatransport_transport_api_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_api/transport-api-4.0.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_datatransport_transport_api/com_google_android_datatransport_transport_api.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/autorolled/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt(
- "google_android_datatransport_transport_runtime_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_runtime/transport-runtime-4.0.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_datatransport_transport_runtime/com_google_android_datatransport_transport_runtime.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/autorolled/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- "$google_play_services_package:google_firebase_firebase_encoders_java",
- "$google_play_services_package:google_firebase_firebase_encoders_proto_java",
- "//third_party/android_deps:google_android_datatransport_transport_api_java",
- "//third_party/android_deps:javax_inject_javax_inject_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_clearcut_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/autorolled/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_phenotype_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/androidx:androidx_core_core_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_flags_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_flags/play-services-flags-18.1.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/autorolled/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_phenotype_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-17.0.0.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/autorolled/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
- "//third_party/androidx:androidx_core_core_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- android_aar_prebuilt("com_google_android_play_core_common_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_play_core_common/core-common-2.0.3.aar"
- info_path = "autorolled/committed/libs/com_google_android_play_core_common/com_google_android_play_core_common.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/autorolled/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- }
-
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_auto_value_auto_value_annotations_java") {
jar_path = "autorolled/cipd/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations-1.11.0.jar"
@@ -831,67 +342,6 @@ template("define_autorolled_targets") {
testonly = true
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- java_prebuilt("google_firebase_firebase_encoders_java") {
- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders/firebase-encoders-17.0.0.jar"
- output_name = "com_google_firebase_firebase_encoders"
- supports_android = true
- requires_android = true
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/autorolled/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_encoders_json_java") {
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json-18.0.0.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_encoders_json/com_google_firebase_firebase_encoders_json.info"
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/autorolled/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- "$google_play_services_package:google_firebase_firebase_encoders_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- java_prebuilt("google_firebase_firebase_encoders_proto_java") {
- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders_proto/firebase-encoders-proto-16.0.0.jar"
- output_name = "com_google_firebase_firebase_encoders_proto"
- supports_android = true
- requires_android = true
- enable_bytecode_checks = false
-
- # To remove visibility constraint, add this dependency to
- # //third_party/android_deps/autorolled/build.gradle.
- visibility = [
- ":*",
- "//third_party/androidx:*",
- ]
- deps = [
- "$google_play_services_package:google_firebase_firebase_encoders_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- ]
- }
- }
-
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt(
"com_google_testparameterinjector_test_parameter_injector_java") {
diff --git a/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn b/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn
--- a/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn
+++ b/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn
@@ -8,7 +8,6 @@ android_library("javatests") {
testonly = true
sources = [ "org/chromium/preconditions/PreconditionsTest.java" ]
deps = [
- "$google_play_services_package:google_play_services_basement_java",
"//base:base_java_test_support",
"//base/test:test_support_java",
"//build/android:build_java",
diff --git a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java b/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java
--- a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java
+++ b/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java
@@ -5,9 +5,6 @@ package org.chromium.gms;
import android.content.Context;
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.build.annotations.NullMarked;
// Refer to go/doubledown-play-services#new-apis for more detail.
@@ -33,9 +30,7 @@ public final class ChromiumPlayServicesAvailability {
* PM/UX.
*/
public static boolean isGooglePlayServicesAvailable(final Context context) {
- return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- context, GMS_VERSION_NUMBER)
- == ConnectionResult.SUCCESS;
+ return false;
}
/**
@@ -53,7 +48,6 @@ public final class ChromiumPlayServicesAvailability {
* PM/UX.
*/
public static int getGooglePlayServicesConnectionResult(final Context context) {
- return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- context, GMS_VERSION_NUMBER);
+ return 16; // API_UNAVAILABLE
}
}
diff --git a/third_party/androidx/customizations.gni b/third_party/androidx/customizations.gni
--- a/third_party/androidx/customizations.gni
+++ b/third_party/androidx/customizations.gni
@@ -151,7 +151,7 @@ template("androidx_java_prebuilt") {
}
}
-template("androidx_android_aar_prebuilt") {
+template("androidx_android_aar_prebuilt_cromite") {
_androidx_prebuilt(target_name) {
forward_variables_from(invoker, "*")
target_type = "android_aar_prebuilt"
@@ -172,6 +172,18 @@ template("androidx_android_aar_prebuilt") {
}
}
+template("androidx_android_aar_prebuilt") {
+ if (target_name == "androidx_credentials_credentials_play_services_auth_java"
+ || target_name == "androidx_credentials_registry_registry_provider_play_services_java") {
+ forward_variables_from(invoker, "*")
+ not_needed(["deps", "aar_path", "info_path", "enable_bytecode_checks"])
+ } else {
+ androidx_android_aar_prebuilt_cromite(target_name) {
+ forward_variables_from(invoker, "*")
+ }
+ }
+}
+
template("androidx_java_group") {
_androidx_prebuilt(target_name) {
forward_variables_from(invoker, "*")
diff --git a/third_party/cardboard/BUILD.gn b/third_party/cardboard/BUILD.gn
--- a/third_party/cardboard/BUILD.gn
+++ b/third_party/cardboard/BUILD.gn
@@ -51,10 +51,6 @@ android_library("cardboard_java") {
deps = [
":cardboard_proto_java",
":cardboard_resources",
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_vision_common_java",
- "$google_play_services_package:google_play_services_vision_java",
"//third_party/android_deps:protobuf_lite_runtime_java",
"//third_party/androidx:androidx_annotation_annotation_jvm_java",
"//third_party/androidx:androidx_appcompat_appcompat_java",
--