Commit 51d297aa authored by Nick Burris's avatar Nick Burris Committed by Chromium LUCI CQ

Create ExternalAuthGoogleDelegate

* Create ExternalAuthGoogleDelegate, owned by ExternalAuthUtils, which
  will be used to implement isGoogleSigned downstream, rather than doing
  so with an overriding subclass.
* This is patch 1/5 for providing ExternalAuthUtils as a singleton
  instead of from AppHooks.

This is a reland of
https://chromium-review.googlesource.com/c/chromium/src/+/2587429
except ExternalAuthGoogleDelegate is not yet used in ExternalAuthUtils.
That part will be implemented in the following chromium patch after
downstream implements ExternalAuthGoogleDelegateImpl.

Bug: 1154371
Change-Id: I4fd71fb81f6999be7eb26cfcb0cc121ce38f4590
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2593748Reviewed-by: default avatarAndrew Grieve <agrieve@chromium.org>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Commit-Queue: Nick Burris <nburris@chromium.org>
Cr-Commit-Position: refs/heads/master@{#837164}
parent d8644d43
......@@ -883,6 +883,7 @@ junit_binary("chrome_junit_tests") {
"//components/embedder_support/android:context_menu_java",
"//components/embedder_support/android:junit_test_support",
"//components/embedder_support/android:util_java",
"//components/externalauth/android:google_delegate_public_impl_java",
"//components/externalauth/android:java",
"//components/externalauth/android:junit",
"//components/favicon/android:java",
......@@ -1156,6 +1157,7 @@ android_library("chrome_test_java") {
"//components/embedder_support/android:web_contents_delegate_java",
"//components/external_intents/android:java",
"//components/external_intents/android:javatests",
"//components/externalauth/android:google_delegate_public_impl_java",
"//components/externalauth/android:java",
"//components/favicon/android:java",
"//components/feature_engagement:feature_engagement_java",
......@@ -1941,6 +1943,7 @@ java_group("chrome_public_base_module_java") {
deps = [
":app_hooks_java",
":chrome_all_java",
"//components/externalauth/android:google_delegate_public_impl_java",
]
}
......@@ -2352,7 +2355,10 @@ template("monochrome_public_apk_or_module_tmpl") {
if (_enable_chrome_module) {
deps += [ "//chrome/android:chrome_base_module_resources" ]
} else {
deps += [ "//chrome/android:app_hooks_java" ]
deps += [
"//chrome/android:app_hooks_java",
"//components/externalauth/android:google_delegate_public_impl_java",
]
}
if (!_is_trichrome) {
deps += [
......@@ -3005,7 +3011,10 @@ template("monochrome_or_trichrome_public_bundle_tmpl") {
module_descs = _module_descs
version_code = _version_code
if (enable_chrome_module) {
chrome_deps = [ "//chrome/android:app_hooks_java" ]
chrome_deps = [
"//chrome/android:app_hooks_java",
"//components/externalauth/android:google_delegate_public_impl_java",
]
if (!_is_trichrome) {
chrome_deps += [ "//chrome/android:monochrome_java" ]
}
......
......@@ -547,6 +547,7 @@ if (is_android) {
"//chrome/browser/profiling_host:profiling_browsertests",
"//components/browser_ui/widget/android:java",
"//components/crash/android:crashpad_main",
"//components/externalauth/android:google_delegate_public_impl_java",
"//components/games/core/test:test_support",
"//components/metrics/demographics:test_support",
"//components/page_load_metrics/browser:test_support",
......@@ -4386,6 +4387,7 @@ test("unit_tests") {
"//chrome/browser/updates:unit_tests",
"//chrome/services/media_gallery_util:unit_tests",
"//components/download/internal/common:internal_java",
"//components/externalauth/android:google_delegate_public_impl_java",
"//components/favicon/core/test:test_support",
"//components/gcm_driver/instance_id/android:instance_id_driver_java",
"//components/gcm_driver/instance_id/android:instance_id_driver_test_support_java",
......
......@@ -4,6 +4,26 @@
import("//build/config/android/rules.gni")
# Separate target to allow for a dependency on GmsCore. It compiles the abstract class;
# implementations are compiled separately.
android_library("google_delegate_java") {
sources = [
"java/src/org/chromium/components/externalauth/ExternalAuthGoogleDelegate.java",
"java/src/org/chromium/components/externalauth/ExternalAuthGoogleDelegateImpl.java",
]
# Add the actual implementation where necessary so that downstream targets
# can provide their own implementations.
jar_excluded_patterns = [ "*/ExternalAuthGoogleDelegateImpl.class" ]
}
# This target compiles the implementation of ExternalAuthGoogleDelegate for
# public targets.
android_library("google_delegate_public_impl_java") {
sources = [ "java/src/org/chromium/components/externalauth/ExternalAuthGoogleDelegateImpl.java" ]
deps = [ ":google_delegate_java" ]
}
android_library("java") {
deps = [
"$google_play_services_package:google_play_services_base_java",
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.components.externalauth;
/**
* Base class for defining methods where different behavior is required by downstream targets.
* The correct version of {@link ExternalAuthGoogleDelegateImpl} will be determined at compile time
* via build rules.
*/
public class ExternalAuthGoogleDelegate {
/**
* Returns whether the call is originating from a Google-signed package.
* @param packageName The package name to inquire about.
*/
public boolean isGoogleSigned(String packageName) {
return false;
}
}
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.components.externalauth;
/**
* Instantiable version of {@link ExternalAuthGoogleDelegate}, don't add anything to this class!
* Downstream targets may provide a different implementation. In GN, we specify that
* {@link ExternalAuthGoogleDelegate} is compiled separately from its implementation; other
* projects may specify a different ExternalAuthGoogleDelegateImpl via GN.
*/
public class ExternalAuthGoogleDelegateImpl extends ExternalAuthGoogleDelegate {}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment