5168 lines
249 KiB
Diff
5168 lines
249 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/config/android/config.gni | 4 +-
|
|
chrome/android/BUILD.gn | 21 +-
|
|
chrome/android/chrome_java_sources.gni | 4 -
|
|
chrome/android/java/AndroidManifest.xml | 33 -
|
|
.../browser/PlayServicesVersionInfo.java | 12 +-
|
|
.../ChromeBackgroundTaskFactory.java | 3 -
|
|
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 -
|
|
.../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 -
|
|
.../browser/ui/webui/chrome_web_ui_configs.cc | 1 -
|
|
chrome/browser/webauthn/android/BUILD.gn | 1 -
|
|
.../CableAuthenticatorModuleProvider.java | 35 +-
|
|
chrome/browser/webid/BUILD.gn | 3 -
|
|
.../DigitalCredentialsCreationDelegate.java | 172 +---
|
|
...igitalCredentialsPresentationDelegate.java | 144 +--
|
|
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 -
|
|
.../android/backend/common/BUILD.gn | 2 -
|
|
.../backend/OneTimeTokensMetricsRecorder.java | 16 -
|
|
.../android/backend/sms/BUILD.gn | 3 -
|
|
.../sms/AndroidSmsOtpFetchReceiverBridge.java | 11 +-
|
|
components/signin/public/android/BUILD.gn | 3 -
|
|
components/webauthn/android/BUILD.gn | 12 +-
|
|
.../webauthn/ConditionalUiState.java | 15 +
|
|
.../webauthn/Fido2CredentialRequest.java | 113 +--
|
|
.../webauthn/GmsCoreGetCredentialsHelper.java | 79 +-
|
|
.../components/webauthn/GmsCoreUtils.java | 76 +-
|
|
.../webauthn/IdentityCredentialsHelper.java | 144 +--
|
|
.../webauthn/WebauthnModeProvider.java | 15 -
|
|
.../cred_man/CredManMetricsHelper.java | 17 +-
|
|
.../push_messaging/push_messaging_manager.cc | 2 +-
|
|
content/public/android/BUILD.gn | 4 -
|
|
content/test/BUILD.gn | 4 -
|
|
device/BUILD.gn | 3 -
|
|
services/BUILD.gn | 10 -
|
|
services/device/geolocation/BUILD.gn | 4 -
|
|
services/shape_detection/BUILD.gn | 2 -
|
|
third_party/android_deps/BUILD.gn | 11 -
|
|
third_party/android_deps/autorolled/BUILD.gn | 882 ------------------
|
|
.../preconditions/javatests/BUILD.gn | 1 -
|
|
.../gms/ChromiumPlayServicesAvailability.java | 17 +-
|
|
third_party/androidx/customizations.gni | 14 +-
|
|
third_party/cardboard/BUILD.gn | 4 -
|
|
86 files changed, 135 insertions(+), 2898 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
|
|
@@ -22,10 +22,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"
|
|
@@ -69,7 +65,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/config/android/config.gni b/build/config/android/config.gni
|
|
--- a/build/config/android/config.gni
|
|
+++ b/build/config/android/config.gni
|
|
@@ -201,9 +201,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
|
|
@@ -302,14 +302,6 @@ if (_is_default_toolchain) {
|
|
":system_ai_service_proto_java",
|
|
":usage_stats_proto_java",
|
|
":xr_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:flagged_apis_java",
|
|
"//base:process_launcher_java",
|
|
@@ -773,11 +765,9 @@ if (_is_default_toolchain) {
|
|
"//skia/public/mojom:mojom_java",
|
|
"//third_party/android_deps:chromium_play_services_availability_java",
|
|
"//third_party/android_deps:com_airbnb_android_lottie_java",
|
|
- "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
|
|
"//third_party/android_deps:com_google_errorprone_error_prone_annotations_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",
|
|
@@ -1980,7 +1970,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",
|
|
@@ -2089,7 +2078,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/SplitCompatIntentService.java",
|
|
"java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java",
|
|
"java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java",
|
|
@@ -2117,14 +2105,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",
|
|
"//base:base_java",
|
|
"//chrome/browser/autofill/android:third_party_provider_java",
|
|
"//chrome/browser/download/android:file_provider_java",
|
|
@@ -2143,7 +2127,6 @@ if (_is_default_toolchain) {
|
|
"//components/module_installer/android:module_installer_java",
|
|
"//components/policy/android:policy_java",
|
|
"//components/variations/android:variations_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",
|
|
@@ -2177,8 +2160,8 @@ if (_is_default_toolchain) {
|
|
"//chrome/browser/ui/android/app_rating:play_review_aar_for_clank_java",
|
|
]
|
|
} else {
|
|
- deps +=
|
|
- [ "//third_party/android_deps:com_google_android_play_review_java" ]
|
|
+ # deps +=
|
|
+ # [ "//third_party/android_deps:com_google_android_play_review_java" ]
|
|
}
|
|
|
|
if (dfmify_dev_ui) {
|
|
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
|
|
@@ -1037,10 +1037,6 @@ chrome_java_sources = [
|
|
"java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java",
|
|
"java/src/org/chromium/chrome/browser/segmentation_platform/TabGroupingActionProvider.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",
|
|
|
|
# LINT.IfChange(MainSettingsBuildRule)
|
|
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
|
|
@@ -146,19 +146,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" />
|
|
@@ -817,16 +812,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"
|
|
@@ -1003,18 +988,6 @@ by a child template that "extends" this file.
|
|
</intent-filter>
|
|
</activity>
|
|
|
|
- <!-- 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"/>
|
|
@@ -1367,12 +1340,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/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
|
|
@@ -19,7 +19,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;
|
|
@@ -63,8 +62,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/javatests/BUILD.gn b/chrome/android/javatests/BUILD.gn
|
|
--- a/chrome/android/javatests/BUILD.gn
|
|
+++ b/chrome/android/javatests/BUILD.gn
|
|
@@ -50,13 +50,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
|
|
@@ -47,12 +47,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
|
|
@@ -26,7 +26,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;
|
|
@@ -150,11 +149,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
|
|
@@ -116,8 +116,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",
|
|
"//base:base_java",
|
|
"//build/android:build_java",
|
|
"//chrome/browser/device_reauth/android:java",
|
|
@@ -247,7 +245,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",
|
|
@@ -323,8 +320,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",
|
|
"add_username_dialog:junit",
|
|
"bottom_sheet:junit",
|
|
"grouped_affiliations: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;
|
|
}
|
|
|
|
@@ -38,41 +31,14 @@ class PasswordManagerAndroidBackendUtil {
|
|
if (exception instanceof PasswordCheckupClientHelper.PasswordManagerUnavailableException) {
|
|
return CredentialManagerError.PASSWORD_MANAGER_NOT_AVAILABLE;
|
|
}
|
|
- 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
|
|
@@ -16,8 +16,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;
|
|
|
|
@@ -489,13 +487,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/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
|
|
@@ -28,13 +28,7 @@
|
|
// static
|
|
PushMessagingServiceImpl* PushMessagingServiceFactory::GetForProfile(
|
|
content::BrowserContext* context) {
|
|
- // The Push API is not currently supported in incognito mode.
|
|
- // See https://crbug.com/41124656.
|
|
- 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
|
|
@@ -127,6 +127,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
|
|
@@ -126,8 +126,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",
|
|
@@ -510,7 +508,6 @@ static_library("ui") {
|
|
"//components/feedback/content",
|
|
"//components/feedback/redaction_tool",
|
|
"//components/find_in_page",
|
|
- "//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
|
|
@@ -191,8 +191,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:supplier_java",
|
|
"//base/version_info/android:version_constants_java",
|
|
@@ -554,8 +552,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/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
|
|
@@ -262,7 +262,6 @@ void RegisterChromeWebUIConfigs() {
|
|
map.AddWebUIConfig(std::make_unique<FamilyLinkUserInternalsUIConfig>());
|
|
map.AddWebUIConfig(std::make_unique<FlagsUIConfig>());
|
|
map.AddWebUIConfig(std::make_unique<glic::GlicUIConfig>());
|
|
- 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/webid/BUILD.gn b/chrome/browser/webid/BUILD.gn
|
|
--- a/chrome/browser/webid/BUILD.gn
|
|
+++ b/chrome/browser/webid/BUILD.gn
|
|
@@ -16,8 +16,6 @@ if (is_android) {
|
|
"android/java/src/org/chromium/chrome/browser/webid/TestIdP.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",
|
|
@@ -49,7 +47,6 @@ if (is_android) {
|
|
|
|
deps = [
|
|
":java",
|
|
- "$google_play_services_package:google_play_services_identity_credentials_java",
|
|
"//base:base_junit_test_support",
|
|
"//content/public/android:content_java",
|
|
"//third_party/androidx:androidx_credentials_credentials_java",
|
|
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
|
|
@@ -19,10 +19,6 @@ import androidx.credentials.exceptions.CreateCredentialInterruptedException;
|
|
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;
|
|
|
|
@@ -52,173 +48,7 @@ public class DigitalCredentialsCreationDelegate {
|
|
@OptIn(markerClass = androidx.credentials.ExperimentalDigitalCredentialApi.class)
|
|
public Promise<DigitalCredential> create(
|
|
WindowAndroid windowAndroid, String origin, String request) {
|
|
- Activity window = windowAndroid.getActivity().get();
|
|
- if (window == null) return Promise.rejected();
|
|
-
|
|
- 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<>();
|
|
-
|
|
- 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 =
|
|
- data == null
|
|
- ? null
|
|
- : IntentUtils.safeGetParcelable(
|
|
- data, BUNDLE_KEY_PROVIDER_DATA);
|
|
-
|
|
- if (code != Activity.RESULT_OK) {
|
|
- androidx.credentials.exceptions.CreateCredentialException exception =
|
|
- providerData != null
|
|
- ? PendingIntentHandler
|
|
- .retrieveCreateCredentialException(providerData)
|
|
- : null;
|
|
- handleCreateCredentialException(code, exception, result);
|
|
- return;
|
|
- }
|
|
-
|
|
- 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) {
|
|
- androidx.credentials.exceptions.CreateCredentialException exception =
|
|
- PendingIntentHandler.retrieveCreateCredentialException(
|
|
- providerData);
|
|
- if (exception != null) {
|
|
- handleCreateCredentialException(code, exception, result);
|
|
- } else {
|
|
- result.reject(
|
|
- new CreateCredentialUnknownException("empty response"));
|
|
- }
|
|
- 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;
|
|
- }
|
|
- Log.d(TAG, "Sending an intent for sender");
|
|
- Log.d(TAG, request);
|
|
- int requestCode =
|
|
- windowAndroid.showCancelableIntent(
|
|
- response.getPendingIntent(),
|
|
- (resultCode, intent) -> {
|
|
- if (resultCode != Activity.RESULT_OK
|
|
- && result.isPending()) {
|
|
- androidx.credentials.exceptions
|
|
- .CreateCredentialException
|
|
- exception =
|
|
- intent != null
|
|
- ? PendingIntentHandler
|
|
- .retrieveCreateCredentialException(
|
|
- intent)
|
|
- : null;
|
|
- handleCreateCredentialException(
|
|
- resultCode, exception, result);
|
|
- }
|
|
- },
|
|
- null);
|
|
- if (requestCode == WindowAndroid.START_INTENT_FAILURE) {
|
|
- Log.e(TAG, "Sending an intent for sender failed");
|
|
- result.reject(
|
|
- new CreateCredentialUnknownException(
|
|
- "Failed to start intent"));
|
|
- }
|
|
- })
|
|
- .addOnFailureListener(
|
|
- e -> {
|
|
- if (!result.isPending()) {
|
|
- return;
|
|
- }
|
|
- if (e
|
|
- instanceof
|
|
- com.google.android.gms.identitycredentials
|
|
- .CreateCredentialException) {
|
|
- String exceptionType =
|
|
- ((com.google.android.gms.identitycredentials
|
|
- .CreateCredentialException)
|
|
- e)
|
|
- .getType();
|
|
- if (TYPE_USER_CANCELED.equals(exceptionType)) {
|
|
- result.reject(
|
|
- new CreateCredentialCancellationException(
|
|
- e.getMessage()));
|
|
- } else if (TYPE_INTERRUPTED.equals(exceptionType)) {
|
|
- result.reject(
|
|
- new CreateCredentialInterruptedException(
|
|
- e.getMessage()));
|
|
- } else {
|
|
- result.reject(
|
|
- new CreateCredentialUnknownException(e.getMessage()));
|
|
- }
|
|
- } else {
|
|
- result.reject(e);
|
|
- }
|
|
- });
|
|
-
|
|
- return result;
|
|
+ return Promise.rejected();
|
|
}
|
|
|
|
private static @Nullable DigitalCredential parseResponse(String responseJson) {
|
|
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,11 +21,6 @@ import androidx.credentials.exceptions.GetCredentialUnknownException;
|
|
import androidx.credentials.exceptions.NoCredentialException;
|
|
import androidx.credentials.provider.PendingIntentHandler;
|
|
|
|
-import com.google.android.gms.identitycredentials.CredentialOption;
|
|
-import com.google.android.gms.identitycredentials.GetCredentialRequest;
|
|
-import com.google.android.gms.identitycredentials.IdentityCredentialClient;
|
|
-import com.google.android.gms.identitycredentials.IdentityCredentialManager;
|
|
-
|
|
import org.json.JSONException;
|
|
import org.json.JSONObject;
|
|
|
|
@@ -63,141 +58,7 @@ public class DigitalCredentialsPresentationDelegate {
|
|
Activity window = windowAndroid.getActivity().get();
|
|
if (window == null) return Promise.rejected();
|
|
|
|
- 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<>();
|
|
-
|
|
- ResultReceiver resultReceiver =
|
|
- new ResultReceiver(new Handler(Looper.getMainLooper())) {
|
|
- @Override
|
|
- protected void onReceiveResult(int code, Bundle data) {
|
|
- if (!result.isPending()) {
|
|
- return;
|
|
- }
|
|
- Log.d(TAG, "Received a response");
|
|
- try {
|
|
- Intent providerData =
|
|
- data == null
|
|
- ? null
|
|
- : IntentUtils.safeGetParcelable(
|
|
- data, BUNDLE_KEY_PROVIDER_DATA);
|
|
- if (code != Activity.RESULT_OK) {
|
|
- androidx.credentials.exceptions.GetCredentialException exception =
|
|
- providerData != null
|
|
- ? PendingIntentHandler
|
|
- .retrieveGetCredentialException(
|
|
- providerData)
|
|
- : null;
|
|
- handleGetCredentialException(code, exception, result);
|
|
- return;
|
|
- }
|
|
- var credential = extractDigitalCredentialFromIntent(providerData);
|
|
- if (credential == null) {
|
|
- result.reject(
|
|
- new GetCredentialUnknownException(
|
|
- "Response does not contain a credential"));
|
|
- } else {
|
|
- result.fulfill(credential);
|
|
- }
|
|
- } catch (androidx.credentials.exceptions.GetCredentialException e) {
|
|
- handleGetCredentialException(code, e, result);
|
|
- } catch (Exception e) {
|
|
- Log.e(TAG, e.toString());
|
|
- result.reject(new GetCredentialUnknownException(e.getMessage()));
|
|
- }
|
|
- }
|
|
- };
|
|
-
|
|
- 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 -> {
|
|
- if (response.getPendingIntent() == null) {
|
|
- Log.d(TAG, "Response doesn't contain pendingIntent");
|
|
- result.reject(
|
|
- new GetCredentialUnknownException(
|
|
- "Response doesn't contain pendingIntent"));
|
|
- return;
|
|
- }
|
|
- Log.d(TAG, "Sending an intent for sender");
|
|
- Log.d(TAG, request);
|
|
- int requestCode =
|
|
- windowAndroid.showCancelableIntent(
|
|
- response.getPendingIntent(),
|
|
- (resultCode, intent) -> {
|
|
- if (resultCode != Activity.RESULT_OK
|
|
- && result.isPending()) {
|
|
- androidx.credentials.exceptions
|
|
- .GetCredentialException
|
|
- exception =
|
|
- intent != null
|
|
- ? PendingIntentHandler
|
|
- .retrieveGetCredentialException(
|
|
- intent)
|
|
- : null;
|
|
- handleGetCredentialException(
|
|
- resultCode, exception, result);
|
|
- }
|
|
- },
|
|
- null);
|
|
- if (requestCode == WindowAndroid.START_INTENT_FAILURE) {
|
|
- Log.e(TAG, "Sending an intent for sender failed");
|
|
- result.reject(
|
|
- new GetCredentialUnknownException(
|
|
- "Failed to start intent"));
|
|
- }
|
|
- })
|
|
- .addOnFailureListener(
|
|
- e -> {
|
|
- if (!result.isPending()) {
|
|
- return;
|
|
- }
|
|
- if (e
|
|
- instanceof
|
|
- com.google.android.gms.identitycredentials
|
|
- .GetCredentialException) {
|
|
- String exceptionType =
|
|
- ((com.google.android.gms.identitycredentials
|
|
- .GetCredentialException)
|
|
- e)
|
|
- .getType();
|
|
- if (TYPE_USER_CANCELED.equals(exceptionType)) {
|
|
- result.reject(
|
|
- new GetCredentialCancellationException(e.getMessage()));
|
|
- } else if (TYPE_NO_CREDENTIAL.equals(exceptionType)) {
|
|
- result.reject(new NoCredentialException(e.getMessage()));
|
|
- } else if (TYPE_INTERRUPTED.equals(exceptionType)) {
|
|
- result.reject(
|
|
- new GetCredentialInterruptedException(e.getMessage()));
|
|
- } else {
|
|
- result.reject(
|
|
- new GetCredentialUnknownException(e.getMessage()));
|
|
- }
|
|
- } else {
|
|
- result.reject(e);
|
|
- }
|
|
- });
|
|
-
|
|
- return result;
|
|
+ return Promise.rejected();
|
|
}
|
|
|
|
/**
|
|
@@ -210,9 +71,10 @@ public class DigitalCredentialsPresentationDelegate {
|
|
* @throws JSONException If JSON parsing fails.
|
|
*/
|
|
@VisibleForTesting
|
|
- public static @Nullable DigitalCredential extractDigitalCredentialFromIntent(
|
|
+ public static @Nullable DigitalCredential extractDigitalCredentialFromResponseBundle(
|
|
@Nullable Intent intent)
|
|
throws androidx.credentials.exceptions.GetCredentialException, JSONException {
|
|
+ if ((true)) throw new JSONException("not reached");
|
|
if (intent == null) {
|
|
return null;
|
|
}
|
|
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
|
|
@@ -397,8 +397,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:holder_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
|
|
@@ -2946,14 +2946,6 @@ public class ExternalNavigationHandler implements ExternalNavigationHelper {
|
|
* @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
|
|
@@ -31,8 +31,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;
|
|
|
|
@@ -78,7 +76,7 @@ public class InstanceIDBridge {
|
|
new BridgeAsyncTask<String>() {
|
|
@Override
|
|
protected String doBackgroundWork() {
|
|
- return mInstanceID.getId();
|
|
+ return "";
|
|
}
|
|
|
|
@Override
|
|
@@ -94,7 +92,7 @@ public class InstanceIDBridge {
|
|
new BridgeAsyncTask<Long>() {
|
|
@Override
|
|
protected Long doBackgroundWork() {
|
|
- return mInstanceID.getCreationTime();
|
|
+ return 0L;
|
|
}
|
|
|
|
@Override
|
|
@@ -119,21 +117,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
|
|
@@ -152,22 +136,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
|
|
@@ -184,12 +153,7 @@ public class InstanceIDBridge {
|
|
new BridgeAsyncTask<Boolean>() {
|
|
@Override
|
|
protected Boolean doBackgroundWork() {
|
|
- try {
|
|
- mInstanceID.deleteInstanceID();
|
|
- return true;
|
|
- } catch (IOException ex) {
|
|
- return false;
|
|
- }
|
|
+ return true;
|
|
}
|
|
|
|
@Override
|
|
@@ -220,24 +184,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<>() {
|
|
@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
|
|
@@ -65,7 +65,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",
|
|
@@ -148,10 +141,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.JniType;
|
|
@@ -47,23 +44,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();
|
|
@@ -175,7 +172,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");
|
|
@@ -204,10 +200,6 @@ public abstract class CafBaseMediaRouteProvider
|
|
mManager.onCreateRouteRequestError("The sink does not exist", nativeRequestId);
|
|
}
|
|
|
|
- CastUtils.getCastContext()
|
|
- .getSessionManager()
|
|
- .addSessionManagerListener(this, CastSession.class);
|
|
-
|
|
mPendingCreateRouteRequestInfo =
|
|
new CreateRouteRequestInfo(
|
|
source,
|
|
@@ -242,109 +234,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;
|
|
@@ -146,25 +144,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;
|
|
@@ -336,51 +332,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
|
|
@@ -674,26 +626,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");
|
|
|
|
@@ -706,28 +647,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);
|
|
@@ -805,33 +730,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.base.ResettersForTesting;
|
|
import org.chromium.build.annotations.NullMarked;
|
|
import org.chromium.build.annotations.Nullable;
|
|
@@ -110,13 +108,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<>();
|
|
- 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<>(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;
|
|
@@ -83,9 +81,7 @@ public class RemotingMediaSource implements MediaSource {
|
|
*/
|
|
@Override
|
|
public MediaRouteSelector buildRouteSelector() {
|
|
- return new MediaRouteSelector.Builder()
|
|
- .addControlCategory(CastMediaControlIntent.categoryForCast(getApplicationId()))
|
|
- .build();
|
|
+ return null;
|
|
}
|
|
|
|
/**
|
|
@@ -115,7 +111,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
|
|
@@ -27,10 +27,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",
|
|
]
|
|
@@ -48,11 +46,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
|
|
@@ -62,7 +62,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
|
|
@@ -9,8 +9,6 @@ import android.text.format.DateUtils;
|
|
|
|
import androidx.annotation.IntDef;
|
|
|
|
-import com.google.android.gms.location.Priority;
|
|
-
|
|
import org.chromium.base.BaseSwitches;
|
|
import org.chromium.base.CommandLine;
|
|
import org.chromium.base.ContextUtils;
|
|
@@ -212,12 +210,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/one_time_tokens/android/backend/common/BUILD.gn b/components/one_time_tokens/android/backend/common/BUILD.gn
|
|
--- a/components/one_time_tokens/android/backend/common/BUILD.gn
|
|
+++ b/components/one_time_tokens/android/backend/common/BUILD.gn
|
|
@@ -11,7 +11,6 @@ android_library("java") {
|
|
"java/src/org/chromium/components/one_time_tokens/backend/OneTimeTokensMetricsRecorder.java",
|
|
]
|
|
deps = [
|
|
- "$google_play_services_package:google_play_services_basement_java",
|
|
"//base:base_java",
|
|
"//build/android:build_java",
|
|
"//third_party/androidx:androidx_annotation_annotation_java",
|
|
@@ -23,7 +22,6 @@ robolectric_library("junit") {
|
|
sources = [ "java/src/org/chromium/components/one_time_tokens/backend/OneTimeTokensMetricsRecorderTest.java" ]
|
|
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/one_time_tokens/android/backend/common/java/src/org/chromium/components/one_time_tokens/backend/OneTimeTokensMetricsRecorder.java b/components/one_time_tokens/android/backend/common/java/src/org/chromium/components/one_time_tokens/backend/OneTimeTokensMetricsRecorder.java
|
|
--- a/components/one_time_tokens/android/backend/common/java/src/org/chromium/components/one_time_tokens/backend/OneTimeTokensMetricsRecorder.java
|
|
+++ b/components/one_time_tokens/android/backend/common/java/src/org/chromium/components/one_time_tokens/backend/OneTimeTokensMetricsRecorder.java
|
|
@@ -6,9 +6,6 @@ package org.chromium.components.one_time_tokens.backend;
|
|
|
|
import android.os.SystemClock;
|
|
|
|
-import com.google.android.gms.common.api.ApiException;
|
|
-import com.google.android.gms.common.api.CommonStatusCodes;
|
|
-
|
|
import org.chromium.base.metrics.RecordHistogram;
|
|
import org.chromium.build.annotations.NullMarked;
|
|
import org.chromium.build.annotations.Nullable;
|
|
@@ -62,18 +59,5 @@ public class OneTimeTokensMetricsRecorder {
|
|
}
|
|
|
|
private void reportErrorMetrics(Exception exception) {
|
|
- if (exception instanceof OneTimeTokensBackendException backendException) {
|
|
- RecordHistogram.recordEnumeratedHistogram(
|
|
- getHistogramName(ERROR_CODE_METRIC_NAME),
|
|
- backendException.getErrorCode(),
|
|
- OneTimeTokensBackendErrorCode.MAX_VALUE);
|
|
- return;
|
|
- }
|
|
-
|
|
- int errorCode = CommonStatusCodes.ERROR;
|
|
- if (exception instanceof ApiException apiException) {
|
|
- errorCode = apiException.getStatusCode();
|
|
- }
|
|
- RecordHistogram.recordSparseHistogram(getHistogramName(API_ERROR_METRIC_NAME), errorCode);
|
|
}
|
|
}
|
|
diff --git a/components/one_time_tokens/android/backend/sms/BUILD.gn b/components/one_time_tokens/android/backend/sms/BUILD.gn
|
|
--- a/components/one_time_tokens/android/backend/sms/BUILD.gn
|
|
+++ b/components/one_time_tokens/android/backend/sms/BUILD.gn
|
|
@@ -48,7 +48,6 @@ android_library("java") {
|
|
]
|
|
|
|
deps = [
|
|
- "$google_play_services_package:google_play_services_basement_java",
|
|
"//base:base_java",
|
|
"//build/android:build_java",
|
|
"//components/one_time_tokens/android/backend/common:java",
|
|
@@ -73,7 +72,6 @@ robolectric_binary("one_time_tokens_junit_tests") {
|
|
deps = [
|
|
":java",
|
|
":sms_otp_fetching_interface_java",
|
|
- "$google_play_services_package:google_play_services_basement_java",
|
|
"//base:base_java",
|
|
"//base:base_java_test_support",
|
|
"//base:base_junit_test_support",
|
|
@@ -84,7 +82,6 @@ robolectric_binary("one_time_tokens_junit_tests") {
|
|
|
|
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/components/one_time_tokens/android/backend/sms/java/src/org/chromium/components/one_time_tokens/backend/sms/AndroidSmsOtpFetchReceiverBridge.java b/components/one_time_tokens/android/backend/sms/java/src/org/chromium/components/one_time_tokens/backend/sms/AndroidSmsOtpFetchReceiverBridge.java
|
|
--- a/components/one_time_tokens/android/backend/sms/java/src/org/chromium/components/one_time_tokens/backend/sms/AndroidSmsOtpFetchReceiverBridge.java
|
|
+++ b/components/one_time_tokens/android/backend/sms/java/src/org/chromium/components/one_time_tokens/backend/sms/AndroidSmsOtpFetchReceiverBridge.java
|
|
@@ -4,9 +4,6 @@
|
|
|
|
package org.chromium.components.one_time_tokens.backend.sms;
|
|
|
|
-import com.google.android.gms.common.api.ApiException;
|
|
-import com.google.android.gms.common.api.CommonStatusCodes;
|
|
-
|
|
import org.jni_zero.CalledByNative;
|
|
import org.jni_zero.JNINamespace;
|
|
import org.jni_zero.NativeClassQualifiedName;
|
|
@@ -42,13 +39,7 @@ class AndroidSmsOtpFetchReceiverBridge {
|
|
void onOtpValueRetrievalError(Exception exception) {
|
|
if (mNativeReceiverBridge == 0) return;
|
|
|
|
- int errorCode = CommonStatusCodes.ERROR;
|
|
- if (exception instanceof OneTimeTokensBackendException backendException) {
|
|
- errorCode = backendException.getErrorCode();
|
|
- }
|
|
- if (exception instanceof ApiException apiException) {
|
|
- errorCode = apiException.getStatusCode();
|
|
- }
|
|
+ int errorCode = /* CommonStatusCodes.ERROR */ 13;
|
|
AndroidSmsOtpFetchReceiverBridgeJni.get()
|
|
.onOtpValueRetrievalError(mNativeReceiverBridge, errorCode);
|
|
}
|
|
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",
|
|
@@ -195,7 +193,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
|
|
@@ -41,8 +41,6 @@ android_library("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/FidoIntentSender.java",
|
|
"java/src/org/chromium/components/webauthn/GetMatchingCredentialIdsDelegate.java",
|
|
@@ -74,11 +72,11 @@ android_library("java") {
|
|
"java/src/org/chromium/components/webauthn/cred_man/GpmCredManRequestDecorator.java",
|
|
]
|
|
|
|
+ sources += [
|
|
+ "java/src/org/chromium/components/webauthn/ConditionalUiState.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_identity_credentials_java",
|
|
- "$google_play_services_package:google_play_services_tasks_java",
|
|
"//base:base_java",
|
|
"//base:service_loader_java",
|
|
"//base/version_info/android:version_constants_java",
|
|
@@ -232,8 +230,6 @@ robolectric_library("junit") {
|
|
deps = [
|
|
":java",
|
|
":test_support_java",
|
|
- "$google_play_services_package:google_play_services_identity_credentials_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/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/Fido2CredentialRequest.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java
|
|
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java
|
|
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java
|
|
@@ -27,8 +27,6 @@ import androidx.annotation.IntDef;
|
|
import androidx.annotation.RequiresApi;
|
|
import androidx.annotation.VisibleForTesting;
|
|
|
|
-import com.google.android.gms.tasks.Task;
|
|
-
|
|
import org.jni_zero.JNINamespace;
|
|
import org.jni_zero.NativeMethods;
|
|
|
|
@@ -51,7 +49,6 @@ import org.chromium.blink_public.common.BlinkFeatures;
|
|
import org.chromium.build.annotations.NullMarked;
|
|
import org.chromium.build.annotations.Nullable;
|
|
import org.chromium.components.password_manager.BrowserAssistedLoginType;
|
|
-import org.chromium.components.webauthn.Fido2ApiCall.Fido2ApiCallParams;
|
|
import org.chromium.components.webauthn.cred_man.CredManHelper;
|
|
import org.chromium.components.webauthn.cred_man.CredManSupportProvider;
|
|
import org.chromium.content_public.browser.ClientDataJson;
|
|
@@ -154,12 +151,7 @@ public class Fido2CredentialRequest implements WebauthnBrowserBridge.Provider {
|
|
*/
|
|
public Fido2CredentialRequest(AuthenticationContextProvider authenticationContextProvider) {
|
|
mAuthenticationContextProvider = authenticationContextProvider;
|
|
- boolean playServicesAvailable;
|
|
- try {
|
|
- playServicesAvailable = Fido2ApiCallHelper.getInstance().arePlayServicesAvailable();
|
|
- } catch (Exception e) {
|
|
- playServicesAvailable = false;
|
|
- }
|
|
+ boolean playServicesAvailable = false;
|
|
mPlayServicesAvailable = playServicesAvailable;
|
|
mCredManHelper =
|
|
new CredManHelper(mAuthenticationContextProvider, this, mPlayServicesAvailable);
|
|
@@ -357,29 +349,6 @@ public class Fido2CredentialRequest implements WebauthnBrowserBridge.Provider {
|
|
/* credentialRequestResult= */ null);
|
|
return;
|
|
}
|
|
- try {
|
|
- Fido2ApiCallHelper.getInstance()
|
|
- .invokeFido2MakeCredential(
|
|
- mAuthenticationContextProvider,
|
|
- options,
|
|
- Uri.parse(convertOriginToString(origin)),
|
|
- clientDataHash,
|
|
- maybeBrowserOptions,
|
|
- getMaybeResultReceiver(Fido2ApiRequestType.MAKE_CREDENTIAL),
|
|
- (pendingIntent) ->
|
|
- onGotPendingIntent(
|
|
- pendingIntent,
|
|
- Fido2ApiRequestType.MAKE_CREDENTIAL),
|
|
- (e) ->
|
|
- onBinderCallException(
|
|
- e, Fido2ApiRequestType.MAKE_CREDENTIAL));
|
|
- } catch (NoSuchAlgorithmException e) {
|
|
- returnErrorAndResetCallback(
|
|
- AuthenticatorStatus.ALGORITHM_UNSUPPORTED,
|
|
- MakeCredentialOutcome.ALGORITHM_NOT_SUPPORTED,
|
|
- /* credentialRequestResult= */ null);
|
|
- return;
|
|
- }
|
|
return;
|
|
}
|
|
int result =
|
|
@@ -436,27 +405,6 @@ public class Fido2CredentialRequest implements WebauthnBrowserBridge.Provider {
|
|
/* credentialRequestResult= */ null);
|
|
return;
|
|
}
|
|
-
|
|
- try {
|
|
- Fido2ApiCallHelper.getInstance()
|
|
- .invokeFido2MakeCredential(
|
|
- mAuthenticationContextProvider,
|
|
- options,
|
|
- Uri.parse(convertOriginToString(origin)),
|
|
- clientDataHash,
|
|
- maybeBrowserOptions,
|
|
- getMaybeResultReceiver(Fido2ApiRequestType.MAKE_CREDENTIAL),
|
|
- (pendingIntent) ->
|
|
- onGotPendingIntent(
|
|
- pendingIntent, Fido2ApiRequestType.MAKE_CREDENTIAL),
|
|
- (e) -> onBinderCallException(e, Fido2ApiRequestType.MAKE_CREDENTIAL));
|
|
- } catch (NoSuchAlgorithmException e) {
|
|
- returnErrorAndResetCallback(
|
|
- AuthenticatorStatus.ALGORITHM_UNSUPPORTED,
|
|
- MakeCredentialOutcome.ALGORITHM_NOT_SUPPORTED,
|
|
- /* credentialRequestResult= */ null);
|
|
- return;
|
|
- }
|
|
}
|
|
|
|
@SuppressWarnings("NewApi")
|
|
@@ -911,32 +859,6 @@ public class Fido2CredentialRequest implements WebauthnBrowserBridge.Provider {
|
|
callback.onIsUserVerifyingPlatformAuthenticatorAvailableResponse(false);
|
|
return;
|
|
}
|
|
-
|
|
- Fido2ApiCallParams params =
|
|
- WebauthnModeProvider.getInstance()
|
|
- .getFido2ApiCallParams(mAuthenticationContextProvider.getWebContents());
|
|
- assertNonNull(mAuthenticationContextProvider.getContext());
|
|
- assertNonNull(params);
|
|
- Fido2ApiCall call = new Fido2ApiCall(mAuthenticationContextProvider.getContext(), params);
|
|
- Fido2ApiCall.BooleanResult result = new Fido2ApiCall.BooleanResult();
|
|
- Parcel args = call.start();
|
|
- args.writeStrongBinder(result);
|
|
-
|
|
- Task<Boolean> task =
|
|
- call.run(
|
|
- params.mIsUserVerifyingPlatformAuthenticatorAvailableMethodId,
|
|
- Fido2ApiCall.TRANSACTION_ISUVPAA,
|
|
- args,
|
|
- result);
|
|
- task.addOnSuccessListener(
|
|
- (isUvpaa) -> {
|
|
- callback.onIsUserVerifyingPlatformAuthenticatorAvailableResponse(isUvpaa);
|
|
- });
|
|
- task.addOnFailureListener(
|
|
- (e) -> {
|
|
- logError(TAG, "FIDO2 API call failed", e);
|
|
- callback.onIsUserVerifyingPlatformAuthenticatorAvailableResponse(false);
|
|
- });
|
|
}
|
|
|
|
public void handleReportRequest(PublicKeyCredentialReportOptions options, Origin origin) {
|
|
@@ -1280,16 +1202,6 @@ public class Fido2CredentialRequest implements WebauthnBrowserBridge.Provider {
|
|
if (options.mediation == Mediation.CONDITIONAL) {
|
|
mCancellableUiState = CancellableUiState.REQUEST_SENT_TO_PLATFORM;
|
|
}
|
|
-
|
|
- Fido2ApiCallHelper.getInstance()
|
|
- .invokeFido2GetAssertion(
|
|
- mAuthenticationContextProvider,
|
|
- publicKeyOptions,
|
|
- Uri.parse(callerOriginString),
|
|
- clientDataHash,
|
|
- getMaybeResultReceiver(requestType),
|
|
- (pendingIntent) -> onGotPendingIntent(pendingIntent, requestType),
|
|
- (e) -> onBinderCallException(e, requestType));
|
|
}
|
|
|
|
private void handleNonCredentialReturn(GetCredentialOptions options, Integer reason) {
|
|
@@ -1334,29 +1246,6 @@ public class Fido2CredentialRequest implements WebauthnBrowserBridge.Provider {
|
|
assert mCancellableUiState == CancellableUiState.NONE
|
|
|| mCancellableUiState == CancellableUiState.REQUEST_SENT_TO_PLATFORM
|
|
|| mCancellableUiState == CancellableUiState.WAITING_FOR_SELECTION;
|
|
-
|
|
- if (mCancellableUiState == CancellableUiState.REQUEST_SENT_TO_PLATFORM) {
|
|
- logError(
|
|
- TAG,
|
|
- "Received a second credential selection while the first still in progress.");
|
|
- return;
|
|
- }
|
|
- if (isConditional) {
|
|
- mCancellableUiState = CancellableUiState.REQUEST_SENT_TO_PLATFORM;
|
|
- } else {
|
|
- mCancellableUiState = CancellableUiState.NONE;
|
|
- }
|
|
-
|
|
- Fido2ApiCallHelper.getInstance()
|
|
- .invokeFido2HybridGetAssertion(
|
|
- mAuthenticationContextProvider,
|
|
- options,
|
|
- Uri.parse(callerOriginString),
|
|
- clientDataHash,
|
|
- (pendingIntent) ->
|
|
- onGotPendingIntent(
|
|
- pendingIntent, Fido2ApiRequestType.GET_ASSERTION_HYBRID),
|
|
- (e) -> onBinderCallException(e, Fido2ApiRequestType.GET_ASSERTION_HYBRID));
|
|
}
|
|
|
|
// Handles a PendingIntent from the GMSCore FIDO library.
|
|
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreGetCredentialsHelper.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreGetCredentialsHelper.java
|
|
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreGetCredentialsHelper.java
|
|
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreGetCredentialsHelper.java
|
|
@@ -8,8 +8,6 @@ import static org.chromium.components.webauthn.WebauthnLogger.log;
|
|
|
|
import android.os.SystemClock;
|
|
|
|
-import com.google.android.gms.tasks.OnFailureListener;
|
|
-
|
|
import org.chromium.base.ResettersForTesting;
|
|
import org.chromium.base.metrics.RecordHistogram;
|
|
import org.chromium.build.annotations.NullMarked;
|
|
@@ -80,6 +78,9 @@ public class GmsCoreGetCredentialsHelper {
|
|
public interface GetCredentialsCallback {
|
|
void onCredentialsReceived(List<WebauthnCredentialDetails> credentials);
|
|
}
|
|
+ public interface OnFailureListener {
|
|
+ void onFailure(Exception exception);
|
|
+ }
|
|
|
|
public static GmsCoreGetCredentialsHelper getInstance() {
|
|
if (sInstance == null) {
|
|
@@ -109,79 +110,7 @@ public class GmsCoreGetCredentialsHelper {
|
|
GetCredentialsCallback successCallback,
|
|
OnFailureListener failureCallback) {
|
|
log(TAG, "getCredentials with reason: " + reason);
|
|
- final long startTimeMs = SystemClock.elapsedRealtime();
|
|
- if (reason == Reason.GET_ASSERTION_NON_GOOGLE
|
|
- && GmsCoreUtils.isPasskeyCacheSupported()
|
|
- && WebauthnFeatureMap.getInstance()
|
|
- .isEnabled(WebauthnFeatures.WEBAUTHN_ANDROID_PASSKEY_CACHE_MIGRATION)) {
|
|
- Fido2ApiCallHelper.getInstance()
|
|
- .invokePasskeyCacheGetCredentials(
|
|
- authenticationContextProvider,
|
|
- relyingPartyId,
|
|
- (credentials) -> {
|
|
- recordSuccessMetrics(
|
|
- credentials,
|
|
- reason,
|
|
- GmsCoreGetCredentialsResult.CACHE_SUCCESS,
|
|
- startTimeMs);
|
|
- successCallback.onCredentialsReceived(credentials);
|
|
- },
|
|
- (e) -> {
|
|
- log(
|
|
- TAG,
|
|
- "invokePasskeyCacheGetCredentials() failed. Falling back to"
|
|
- + " FIDO2. ",
|
|
- e);
|
|
- getCredentialsFromFido2Api(
|
|
- authenticationContextProvider,
|
|
- relyingPartyId,
|
|
- reason,
|
|
- successCallback,
|
|
- failureCallback,
|
|
- GmsCoreGetCredentialsResult.CACHE_FAILURE_FALLBACK_SUCCESS,
|
|
- GmsCoreGetCredentialsResult.CACHE_FAILURE_FALLBACK_FAILURE,
|
|
- startTimeMs);
|
|
- });
|
|
- } else {
|
|
- recordNoCacheReason(reason);
|
|
- getCredentialsFromFido2Api(
|
|
- authenticationContextProvider,
|
|
- relyingPartyId,
|
|
- reason,
|
|
- successCallback,
|
|
- failureCallback,
|
|
- GmsCoreGetCredentialsResult.FIDO2_SUCCESS,
|
|
- GmsCoreGetCredentialsResult.FIDO2_FAILURE,
|
|
- startTimeMs);
|
|
- }
|
|
- }
|
|
-
|
|
- private void getCredentialsFromFido2Api(
|
|
- AuthenticationContextProvider authenticationContextProvider,
|
|
- String relyingPartyId,
|
|
- Reason reason,
|
|
- GetCredentialsCallback successCallback,
|
|
- OnFailureListener failureCallback,
|
|
- @GmsCoreGetCredentialsResult int successMetric,
|
|
- @GmsCoreGetCredentialsResult int failureMetric,
|
|
- long startTimeMs) {
|
|
- log(TAG, "getCredentialsFromFido2Api");
|
|
- Fido2ApiCallHelper.getInstance()
|
|
- .invokeFido2GetCredentials(
|
|
- authenticationContextProvider,
|
|
- relyingPartyId,
|
|
- (credentials) -> {
|
|
- recordSuccessMetrics(credentials, reason, successMetric, startTimeMs);
|
|
- successCallback.onCredentialsReceived(credentials);
|
|
- },
|
|
- (e) -> {
|
|
- log(TAG, "invokeFido2GetCredentials() failed. ", e);
|
|
- RecordHistogram.recordEnumeratedHistogram(
|
|
- GET_CREDENTIALS_RESULT_HISTOGRAM,
|
|
- failureMetric,
|
|
- GmsCoreGetCredentialsResult.NUM_ENTRIES);
|
|
- failureCallback.onFailure(e);
|
|
- });
|
|
+ failureCallback.onFailure(new Exception());
|
|
}
|
|
|
|
private void recordSuccessMetrics(
|
|
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
|
|
@@ -4,9 +4,6 @@
|
|
|
|
package org.chromium.components.webauthn;
|
|
|
|
-import com.google.android.gms.tasks.OnFailureListener;
|
|
-import com.google.android.gms.tasks.OnSuccessListener;
|
|
-
|
|
import org.chromium.base.PackageUtils;
|
|
import org.chromium.base.ResettersForTesting;
|
|
import org.chromium.base.task.PostTask;
|
|
@@ -15,28 +12,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_PASSKEY_CACHE = 244400000;
|
|
- 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;
|
|
}
|
|
|
|
/**
|
|
@@ -45,28 +27,22 @@ 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;
|
|
+ return false;
|
|
}
|
|
|
|
/** Returns whether the passkey cache is supported. */
|
|
public static boolean isPasskeyCacheSupported() {
|
|
- return getGmsCoreVersion() >= GMSCORE_MIN_VERSION_PASSKEY_CACHE;
|
|
- }
|
|
-
|
|
- public static void setGmsCoreVersionForTesting(int version) {
|
|
- int previousVersion = sGmsCorePackageVersion;
|
|
- sGmsCorePackageVersion = version;
|
|
- ResettersForTesting.register(() -> sGmsCorePackageVersion = previousVersion);
|
|
+ return false;
|
|
}
|
|
|
|
/**
|
|
@@ -74,30 +50,30 @@ public class GmsCoreUtils {
|
|
* inner callback's invocation to the UI thread to avoid contention over state. Intent callbacks
|
|
* can be run on a different thread from the one on which they were originally invoked.
|
|
*/
|
|
- public static <T> OnSuccessListener<T> wrapSuccessCallback(OnSuccessListener<T> callback) {
|
|
- return (result) -> {
|
|
- PostTask.runOrPostTask(
|
|
- TaskTraits.UI_USER_VISIBLE,
|
|
- () -> {
|
|
- callback.onSuccess(result);
|
|
- });
|
|
- };
|
|
- }
|
|
+ // public static <T> OnSuccessListener<T> wrapSuccessCallback(OnSuccessListener<T> callback) {
|
|
+ // return (result) -> {
|
|
+ // PostTask.runOrPostTask(
|
|
+ // TaskTraits.UI_USER_VISIBLE,
|
|
+ // () -> {
|
|
+ // callback.onSuccess(result);
|
|
+ // });
|
|
+ // };
|
|
+ // }
|
|
|
|
/**
|
|
* Returns a FailureListener callback that wraps another FailureListener callback, but posts the
|
|
* inner callback's invocation to the UI thread to avoid contention over state. Intent callbacks
|
|
* can be run on a different thread from the one on which they were originally invoked.
|
|
*/
|
|
- public static OnFailureListener wrapFailureCallback(OnFailureListener callback) {
|
|
- // Post callbacks to UI thread to avoid contention over state, since this can be called
|
|
- // on a different thread than was originally used to invoke the Intent.
|
|
- return (e) -> {
|
|
- PostTask.runOrPostTask(
|
|
- TaskTraits.UI_USER_VISIBLE,
|
|
- () -> {
|
|
- callback.onFailure(e);
|
|
- });
|
|
- };
|
|
- }
|
|
+ // public static OnFailureListener wrapFailureCallback(OnFailureListener callback) {
|
|
+ // // Post callbacks to UI thread to avoid contention over state, since this can be called
|
|
+ // // on a different thread than was originally used to invoke the Intent.
|
|
+ // return (e) -> {
|
|
+ // PostTask.runOrPostTask(
|
|
+ // TaskTraits.UI_USER_VISIBLE,
|
|
+ // () -> {
|
|
+ // callback.onFailure(e);
|
|
+ // });
|
|
+ // };
|
|
+ // }
|
|
}
|
|
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java
|
|
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java
|
|
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java
|
|
@@ -13,12 +13,6 @@ import android.os.Bundle;
|
|
|
|
import androidx.annotation.VisibleForTesting;
|
|
|
|
-import com.google.android.gms.identitycredentials.CreateCredentialHandle;
|
|
-import com.google.android.gms.identitycredentials.CreateCredentialRequest;
|
|
-import com.google.android.gms.identitycredentials.IdentityCredentialClient;
|
|
-import com.google.android.gms.identitycredentials.IdentityCredentialManager;
|
|
-import com.google.android.gms.identitycredentials.SignalCredentialStateRequest;
|
|
-
|
|
import org.jni_zero.JNINamespace;
|
|
|
|
import org.chromium.blink.mojom.AuthenticatorStatus;
|
|
@@ -57,70 +51,15 @@ public class IdentityCredentialsHelper {
|
|
log(TAG, "handleConditionalCreateRequest");
|
|
WebauthnRequestCallback callback =
|
|
assertNonNull(mAuthenticationContextProvider.getRequestCallback());
|
|
- try {
|
|
- IdentityCredentialClient client =
|
|
- IdentityCredentialManager.Companion.getClient(
|
|
- assertNonNull(mAuthenticationContextProvider.getContext()));
|
|
- client.createCredential(buildConditionalCreateRequest(options, origin, clientDataHash))
|
|
- .addOnSuccessListener(
|
|
- GmsCoreUtils.wrapSuccessCallback(
|
|
- (handle) ->
|
|
- onConditionalCreateSuccess(
|
|
- clientDataJson, options, handle)))
|
|
- .addOnFailureListener(
|
|
- GmsCoreUtils.wrapFailureCallback(this::onConditionalCreateFailure));
|
|
- } catch (Exception e) {
|
|
- logError(TAG, "CreateCredential failed ", e);
|
|
- callback.onComplete(
|
|
- WebauthnRequestResponse.forFailedMakeCredential(
|
|
- AuthenticatorStatus.NOT_ALLOWED_ERROR,
|
|
- new RequestMetrics.Builder()
|
|
- .setMakeCredentialOutcome(MakeCredentialOutcome.OTHER_FAILURE)
|
|
- .setMakeCredentialResult(
|
|
- CredentialRequestResult
|
|
- .ANDROID_IDENTITY_CREDENTIALS_ERROR)
|
|
- .build()));
|
|
- return;
|
|
- }
|
|
- }
|
|
-
|
|
- private void onConditionalCreateSuccess(
|
|
- byte @Nullable [] clientDataJson,
|
|
- PublicKeyCredentialCreationOptions options,
|
|
- CreateCredentialHandle handle) {
|
|
- log(TAG, "onConditionalCreateSuccess");
|
|
- Bundle data = assertNonNull(handle.getCreateCredentialResponse()).getData();
|
|
- MakeCredentialAuthenticatorResponse response =
|
|
- CredManHelper.parseCreateCredentialResponseData(data);
|
|
- if (response == null) {
|
|
- log(TAG, "parseCreateCredentialResponseData() failed");
|
|
- assumeNonNull(mAuthenticationContextProvider.getRequestCallback())
|
|
- .onComplete(
|
|
- WebauthnRequestResponse.forFailedMakeCredential(
|
|
- AuthenticatorStatus.NOT_ALLOWED_ERROR,
|
|
- new RequestMetrics.Builder()
|
|
- .setMakeCredentialOutcome(
|
|
- MakeCredentialOutcome.OTHER_FAILURE)
|
|
- .setMakeCredentialResult(
|
|
- CredentialRequestResult
|
|
- .ANDROID_IDENTITY_CREDENTIALS_ERROR)
|
|
- .build()));
|
|
- return;
|
|
- }
|
|
- if (clientDataJson != null) {
|
|
- response.info.clientDataJson = clientDataJson;
|
|
- }
|
|
- response.echoCredProps = options.credProps;
|
|
- assumeNonNull(mAuthenticationContextProvider.getRequestCallback())
|
|
- .onComplete(
|
|
- WebauthnRequestResponse.forSuccessfulMakeCredential(
|
|
- response,
|
|
- new RequestMetrics.Builder()
|
|
- .setMakeCredentialOutcome(MakeCredentialOutcome.SUCCESS)
|
|
- .setMakeCredentialResult(
|
|
- CredentialRequestResult
|
|
- .ANDROID_IDENTITY_CREDENTIALS_SUCCESS)
|
|
- .build()));
|
|
+ callback.onComplete(
|
|
+ WebauthnRequestResponse.forFailedMakeCredential(
|
|
+ AuthenticatorStatus.NOT_ALLOWED_ERROR,
|
|
+ new RequestMetrics.Builder()
|
|
+ .setMakeCredentialOutcome(MakeCredentialOutcome.OTHER_FAILURE)
|
|
+ .setMakeCredentialResult(
|
|
+ CredentialRequestResult
|
|
+ .ANDROID_IDENTITY_CREDENTIALS_ERROR)
|
|
+ .build()));
|
|
}
|
|
|
|
private void onConditionalCreateFailure(Exception e) {
|
|
@@ -154,70 +93,5 @@ public class IdentityCredentialsHelper {
|
|
// Dispatches a Report request.
|
|
public void handleReportRequest(
|
|
PublicKeyCredentialReportOptions options, @Nullable String origin) {
|
|
- log(TAG, "handleReportRequest");
|
|
- try {
|
|
- IdentityCredentialClient client =
|
|
- IdentityCredentialManager.Companion.getClient(
|
|
- assertNonNull(mAuthenticationContextProvider.getContext()));
|
|
- client.signalCredentialState(buildSignalCredentialStateRequest(options, origin))
|
|
- .addOnSuccessListener(
|
|
- GmsCoreUtils.wrapSuccessCallback(
|
|
- (handle) ->
|
|
- log(TAG, "Signal API request completed successfully")))
|
|
- .addOnFailureListener(
|
|
- GmsCoreUtils.wrapFailureCallback(
|
|
- (e) -> logError(TAG, "Signal API Report request failed ", e)));
|
|
- } catch (Exception e) {
|
|
- logError(TAG, "handleReportRequest failed ", e);
|
|
- return;
|
|
- }
|
|
- }
|
|
-
|
|
- @VisibleForTesting
|
|
- public SignalCredentialStateRequest buildSignalCredentialStateRequest(
|
|
- PublicKeyCredentialReportOptions options, @Nullable String origin) {
|
|
- String type;
|
|
- if (options.unknownCredentialId != null) {
|
|
- type = CRED_MAN_PREFIX + "SIGNAL_UNKNOWN_CREDENTIAL_STATE_REQUEST_TYPE";
|
|
- } else if (options.allAcceptedCredentials != null) {
|
|
- type = CRED_MAN_PREFIX + "SIGNAL_ALL_ACCEPTED_CREDENTIALS_REQUEST_TYPE";
|
|
- } else {
|
|
- assert (options.currentUserDetails != null);
|
|
- type = CRED_MAN_PREFIX + "SIGNAL_CURRENT_USER_DETAILS_STATE_REQUEST_TYPE";
|
|
- }
|
|
-
|
|
- String requestJson =
|
|
- Fido2CredentialRequestJni.get().reportOptionsToJson(options.serialize());
|
|
- Bundle requestDataBundle = new Bundle();
|
|
- requestDataBundle.putCharSequence(CRED_MAN_PREFIX + "signal_request_json_key", requestJson);
|
|
-
|
|
- return new SignalCredentialStateRequest(type, origin, requestDataBundle);
|
|
- }
|
|
-
|
|
- @VisibleForTesting
|
|
- public CreateCredentialRequest buildConditionalCreateRequest(
|
|
- PublicKeyCredentialCreationOptions options,
|
|
- String origin,
|
|
- byte @Nullable [] clientDataHash) {
|
|
- String requestJson =
|
|
- Fido2CredentialRequestJni.get().createOptionsToJson(options.serialize());
|
|
-
|
|
- Bundle credentialData = requestBundle(requestJson, clientDataHash);
|
|
- Bundle displayInfo = new Bundle();
|
|
- displayInfo.putCharSequence(CRED_MAN_PREFIX + "BUNDLE_KEY_USER_ID", options.user.name);
|
|
- displayInfo.putCharSequence(
|
|
- CRED_MAN_PREFIX + "BUNDLE_KEY_USER_DISPLAY_NAME", options.user.displayName);
|
|
- credentialData.putBundle(CRED_MAN_PREFIX + "BUNDLE_KEY_REQUEST_DISPLAY_INFO", displayInfo);
|
|
-
|
|
- Bundle candidateQueryData = requestBundle(requestJson, clientDataHash);
|
|
- candidateQueryData.putBoolean(CRED_MAN_PREFIX + "BUNDLE_KEY_IS_CONDITIONAL_REQUEST", true);
|
|
-
|
|
- return new CreateCredentialRequest(
|
|
- CRED_MAN_PREFIX + "TYPE_PUBLIC_KEY_CREDENTIAL",
|
|
- credentialData,
|
|
- candidateQueryData,
|
|
- origin,
|
|
- requestJson,
|
|
- null);
|
|
}
|
|
}
|
|
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/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,6 @@ import androidx.annotation.IntDef;
|
|
|
|
import org.chromium.base.metrics.RecordHistogram;
|
|
import org.chromium.build.annotations.NullMarked;
|
|
-import org.chromium.components.webauthn.Fido2CredentialRequest.CancellableUiState;
|
|
|
|
/**
|
|
* This class is responsible for emitting histograms regarding CredMan usage in
|
|
@@ -104,20 +103,6 @@ public class CredManMetricsHelper {
|
|
}
|
|
|
|
public void reportGetCredentialMetrics(
|
|
- @CredManGetRequestEnum int value, @CancellableUiState int cancellableUiState) {
|
|
- assert !(cancellableUiState == CancellableUiState.NONE)
|
|
- || !(value == CredManGetRequestEnum.SUCCESS_PASSWORD)
|
|
- : "Passwords cannot be received from modal requests!";
|
|
- if (cancellableUiState == CancellableUiState.NONE) {
|
|
- RecordHistogram.recordEnumeratedHistogram(
|
|
- "WebAuthentication.Android.CredManModalRequests",
|
|
- value,
|
|
- CredManGetRequestEnum.NUM_ENTRIES);
|
|
- return;
|
|
- }
|
|
- RecordHistogram.recordEnumeratedHistogram(
|
|
- "WebAuthentication.Android.CredManConditionalRequest",
|
|
- value,
|
|
- CredManGetRequestEnum.NUM_ENTRIES);
|
|
+ @CredManGetRequestEnum int value, int cancellableUiState) {
|
|
}
|
|
}
|
|
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
|
|
@@ -800,7 +800,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
|
|
@@ -160,10 +160,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:flagged_apis_java",
|
|
"//base:process_launcher_java",
|
|
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
|
|
--- a/content/test/BUILD.gn
|
|
+++ b/content/test/BUILD.gn
|
|
@@ -3865,10 +3865,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
|
|
@@ -526,9 +526,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/services/BUILD.gn b/services/BUILD.gn
|
|
--- a/services/BUILD.gn
|
|
+++ b/services/BUILD.gn
|
|
@@ -167,12 +167,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",
|
|
@@ -211,10 +205,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
|
|
@@ -160,10 +160,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
|
|
@@ -129,8 +129,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
|
|
@@ -91,21 +91,10 @@ if (!limit_android_deps) {
|
|
sources =
|
|
[ "util/org/chromium/gms/ChromiumPlayServicesAvailability.java" ]
|
|
deps = [
|
|
- "$google_play_services_package:google_play_services_base_java",
|
|
- "$google_play_services_package:google_play_services_basement_java",
|
|
"//base:resetters_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
|
|
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
|
|
@@ -70,325 +70,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_play_services_auth_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth/play-services-auth.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.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.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",
|
|
- "//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_blockstore_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_blockstore/play-services-auth-blockstore.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.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.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/*" ]
|
|
- }
|
|
- }
|
|
-
|
|
- # 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.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.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_android_datatransport_transport_api_java",
|
|
- "$google_play_services_package:google_android_datatransport_transport_backend_cct_java",
|
|
- "$google_play_services_package:google_android_datatransport_transport_runtime_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_java",
|
|
- "$google_play_services_package:google_play_services_tasks_java",
|
|
- "//third_party/android_deps:guava_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.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.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.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.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.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.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_tasks_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_tasks/play-services-tasks.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_time_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_time/play-services-time.aar"
|
|
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_time/com_google_android_gms_play_services_time.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_vision_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision/play-services-vision.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.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.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") {
|
|
@@ -438,37 +119,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.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.
|
|
- android_aar_prebuilt("com_google_android_play_review_java") {
|
|
- aar_path =
|
|
- "autorolled/cipd/libs/com_google_android_play_review/review.aar"
|
|
- info_path = "autorolled/committed/libs/com_google_android_play_review/com_google_android_play_review.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/android_deps:com_google_android_play_core_common_java",
|
|
- ]
|
|
- }
|
|
-
|
|
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
|
android_aar_prebuilt("com_google_ar_impress_java") {
|
|
aar_path = "autorolled/cipd/libs/com_google_ar_impress/impress.aar"
|
|
@@ -522,38 +172,6 @@ template("define_autorolled_targets") {
|
|
preferred_dep = true
|
|
}
|
|
|
|
- # 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 = "autorolled/cipd/libs/com_google_firebase_firebase_messaging/firebase-messaging.aar"
|
|
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_messaging/com_google_firebase_firebase_messaging.info"
|
|
- enable_bytecode_checks = false
|
|
- deps = [
|
|
- "$google_play_services_package:google_android_datatransport_transport_api_java",
|
|
- "$google_play_services_package:google_android_datatransport_transport_backend_cct_java",
|
|
- "$google_play_services_package:google_android_datatransport_transport_runtime_java",
|
|
- "$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_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/android_deps:com_google_errorprone_error_prone_annotations_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 (!defined(guava_android_target)) {
|
|
java_prebuilt("com_google_guava_guava_java") {
|
|
@@ -595,64 +213,6 @@ template("define_autorolled_targets") {
|
|
supports_android = true
|
|
enable_bytecode_checks = false
|
|
}
|
|
-
|
|
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
|
- android_aar_prebuilt("com_google_mlkit_common_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_mlkit_common/common.aar"
|
|
- info_path = "autorolled/committed/libs/com_google_mlkit_common/com_google_mlkit_common.info"
|
|
- enable_bytecode_checks = false
|
|
- deps = [
|
|
- "$google_play_services_package:google_android_datatransport_transport_api_java",
|
|
- "$google_play_services_package:google_android_datatransport_transport_backend_cct_java",
|
|
- "$google_play_services_package:google_android_datatransport_transport_runtime_java",
|
|
- "$google_play_services_package:google_firebase_firebase_components_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_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_appcompat_appcompat_java",
|
|
- "//third_party/androidx:androidx_core_core_java",
|
|
- ]
|
|
- }
|
|
-
|
|
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
|
- android_aar_prebuilt("com_google_mlkit_genai_common_java") {
|
|
- aar_path =
|
|
- "autorolled/cipd/libs/com_google_mlkit_genai_common/genai-common.aar"
|
|
- info_path = "autorolled/committed/libs/com_google_mlkit_genai_common/com_google_mlkit_genai_common.info"
|
|
- enable_bytecode_checks = false
|
|
- deps = [
|
|
- "$google_play_services_package:google_play_services_basement_java",
|
|
- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_java",
|
|
- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_guava_java",
|
|
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
|
|
- ]
|
|
- }
|
|
-
|
|
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
|
- android_aar_prebuilt("com_google_mlkit_genai_prompt_java") {
|
|
- aar_path =
|
|
- "autorolled/cipd/libs/com_google_mlkit_genai_prompt/genai-prompt.aar"
|
|
- info_path = "autorolled/committed/libs/com_google_mlkit_genai_prompt/com_google_mlkit_genai_prompt.info"
|
|
- enable_bytecode_checks = false
|
|
- deps = [
|
|
- "$google_play_services_package:google_android_datatransport_transport_api_java",
|
|
- "$google_play_services_package:google_android_datatransport_transport_backend_cct_java",
|
|
- "$google_play_services_package:google_android_datatransport_transport_runtime_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_play_services_basement_java",
|
|
- "$google_play_services_package:google_play_services_tasks_java",
|
|
- "//third_party/android_deps:com_google_mlkit_common_java",
|
|
- "//third_party/android_deps:com_google_mlkit_genai_common_java",
|
|
- "//third_party/android_deps:guava_java",
|
|
- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_java",
|
|
- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_guava_java",
|
|
- "//third_party/kotlin_stdlib:kotlin_stdlib_java",
|
|
- ]
|
|
- }
|
|
-
|
|
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
|
|
if (!defined(android_proto_runtime)) {
|
|
java_prebuilt("com_google_protobuf_protobuf_javalite_java") {
|
|
@@ -1057,190 +617,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.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.template
|
|
- 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_backend_cct_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_backend_cct/transport-backend-cct.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
|
|
-
|
|
- # To remove visibility constraint, add this dependency to
|
|
- # //third_party/android_deps/autorolled/build.gradle.template
|
|
- visibility = [
|
|
- ":*",
|
|
- "//third_party/androidx:*",
|
|
- ]
|
|
- deps = [
|
|
- "$google_play_services_package:google_android_datatransport_transport_api_java",
|
|
- "$google_play_services_package:google_android_datatransport_transport_runtime_java",
|
|
- "$google_play_services_package:google_firebase_firebase_encoders_java",
|
|
- "$google_play_services_package:google_firebase_firebase_encoders_json_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_android_datatransport_transport_runtime_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_runtime/transport-runtime.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.template
|
|
- visibility = [
|
|
- ":*",
|
|
- "//third_party/androidx:*",
|
|
- ]
|
|
- deps = [
|
|
- "$google_play_services_package:google_android_datatransport_transport_api_java",
|
|
- "$google_play_services_package:google_firebase_firebase_encoders_java",
|
|
- "$google_play_services_package:google_firebase_firebase_encoders_proto_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.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.template
|
|
- 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_cloud_messaging_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging.aar"
|
|
- info_path = "autorolled/committed/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/autorolled/build.gradle.template
|
|
- 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_play_services_flags_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_flags/play-services-flags.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.template
|
|
- 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.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.template
|
|
- 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.
|
|
- 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.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
|
|
-
|
|
- # To remove visibility constraint, add this dependency to
|
|
- # //third_party/android_deps/autorolled/build.gradle.template
|
|
- visibility = [
|
|
- ":*",
|
|
- "//third_party/androidx:*",
|
|
- ]
|
|
- 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.
|
|
- android_aar_prebuilt("com_google_android_play_core_common_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_android_play_core_common/core-common.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.template
|
|
- 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.jar"
|
|
@@ -1257,242 +633,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_annotations_java") {
|
|
- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_annotations/firebase-annotations.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/autorolled/build.gradle.template
|
|
- visibility = [
|
|
- ":*",
|
|
- "//third_party/androidx:*",
|
|
- ]
|
|
- deps = [ "//third_party/android_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 = "autorolled/cipd/libs/com_google_firebase_firebase_common/firebase-common.aar"
|
|
- info_path = "autorolled/committed/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/autorolled/build.gradle.template
|
|
- visibility = [
|
|
- ":*",
|
|
- "//third_party/androidx:*",
|
|
- ]
|
|
- deps = [
|
|
- "$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/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_play_services_java",
|
|
- "//third_party/androidx:androidx_annotation_annotation_java",
|
|
- "//third_party/androidx:androidx_concurrent_concurrent_futures_java",
|
|
- "//third_party/androidx:androidx_datastore_datastore_preferences_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 = "autorolled/cipd/libs/com_google_firebase_firebase_components/firebase-components.aar"
|
|
- info_path = "autorolled/committed/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/autorolled/build.gradle.template
|
|
- visibility = [
|
|
- ":*",
|
|
- "//third_party/androidx:*",
|
|
- ]
|
|
- deps = [
|
|
- "$google_play_services_package:google_firebase_firebase_annotations_java",
|
|
- "//third_party/android_deps:com_google_errorprone_error_prone_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_datatransport_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_datatransport/firebase-datatransport.aar"
|
|
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_datatransport/com_google_firebase_firebase_datatransport.info"
|
|
- enable_bytecode_checks = false
|
|
-
|
|
- # To remove visibility constraint, add this dependency to
|
|
- # //third_party/android_deps/autorolled/build.gradle.template
|
|
- visibility = [
|
|
- ":*",
|
|
- "//third_party/androidx:*",
|
|
- ]
|
|
- deps = [
|
|
- "$google_play_services_package:google_android_datatransport_transport_api_java",
|
|
- "$google_play_services_package:google_android_datatransport_transport_backend_cct_java",
|
|
- "$google_play_services_package: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") {
|
|
- java_prebuilt("google_firebase_firebase_encoders_java") {
|
|
- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders/firebase-encoders.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.template
|
|
- 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.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.template
|
|
- 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.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.template
|
|
- 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") {
|
|
- android_aar_prebuilt("google_firebase_firebase_iid_interop_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop.aar"
|
|
- info_path = "autorolled/committed/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/autorolled/build.gradle.template
|
|
- 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 = "autorolled/cipd/libs/com_google_firebase_firebase_installations/firebase-installations.aar"
|
|
- info_path = "autorolled/committed/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/autorolled/build.gradle.template
|
|
- 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",
|
|
- "$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 = "autorolled/cipd/libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop.aar"
|
|
- info_path = "autorolled/committed/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/autorolled/build.gradle.template
|
|
- 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.
|
|
- if (google_play_services_package == "//third_party/android_deps") {
|
|
- android_aar_prebuilt(
|
|
- "google_firebase_firebase_measurement_connector_java") {
|
|
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector.aar"
|
|
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_measurement_connector/com_google_firebase_firebase_measurement_connector.info"
|
|
- enable_bytecode_checks = false
|
|
-
|
|
- # To remove visibility constraint, add this dependency to
|
|
- # //third_party/android_deps/autorolled/build.gradle.template
|
|
- visibility = [
|
|
- ":*",
|
|
- "//third_party/androidx:*",
|
|
- ]
|
|
- 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.
|
|
java_prebuilt("com_google_guava_failureaccess_java") {
|
|
jar_path = "autorolled/cipd/libs/com_google_guava_failureaccess/failureaccess.jar"
|
|
@@ -2028,28 +1168,6 @@ template("define_autorolled_targets") {
|
|
deps = [ "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_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.jar"
|
|
- output_name = "org_jetbrains_kotlinx_kotlinx_coroutines_play_services"
|
|
- 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.template
|
|
- visibility = [
|
|
- ":*",
|
|
- "//third_party/androidx:*",
|
|
- ]
|
|
- 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_group("org_jetbrains_kotlinx_kotlinx_coroutines_test_java") {
|
|
# To remove visibility constraint, add this dependency to
|
|
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;
|
|
import org.chromium.build.annotations.Nullable;
|
|
import org.chromium.base.ResettersForTesting;
|
|
@@ -42,12 +39,7 @@ public final class ChromiumPlayServicesAvailability {
|
|
* PM/UX.
|
|
*/
|
|
public static boolean isGooglePlayServicesAvailable(final Context context) {
|
|
- if (sIsAvailableForTesting != null) {
|
|
- return sIsAvailableForTesting;
|
|
- }
|
|
- return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
|
|
- context, GMS_VERSION_NUMBER)
|
|
- == ConnectionResult.SUCCESS;
|
|
+ return false;
|
|
}
|
|
|
|
/**
|
|
@@ -64,11 +56,4 @@ public final class ChromiumPlayServicesAvailability {
|
|
* the user to update GMS Core or fail with exception." If in doubt, please consult with your
|
|
* PM/UX.
|
|
*/
|
|
- public static int getGooglePlayServicesConnectionResult(final Context context) {
|
|
- if (sIsAvailableForTesting != null) {
|
|
- return sIsAvailableForTesting ? ConnectionResult.SUCCESS : ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED;
|
|
- }
|
|
- return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
|
|
- context, GMS_VERSION_NUMBER);
|
|
- }
|
|
}
|
|
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
|
|
@@ -166,7 +166,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"
|
|
@@ -183,6 +183,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",
|
|
--
|