Remove-dependency-on-auth-signin-dynamic-and-tasks.patch 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763
  1. From: Wengling Chen <feiyu2817@gmail.com>
  2. Date: Sat, 2 Nov 2019 08:58:19 +0100
  3. Subject: Remove dependency on auth, signin, dynamic and tasks
  4. ---
  5. chrome/android/BUILD.gn | 8 --
  6. chrome/android/java/AndroidManifest.xml | 9 --
  7. .../org/chromium/chrome/browser/AppHooks.java | 14 +---
  8. .../browser/PlayServicesVersionInfo.java | 12 +--
  9. .../component_updater/UpdateScheduler.java | 1 -
  10. .../externalauth/ExternalAuthUtils.java | 18 +---
  11. .../UserRecoverableErrorHandler.java | 7 --
  12. .../gcore/ChromeGoogleApiClientImpl.java | 25 +-----
  13. .../browser/gcore/GoogleApiClientHelper.java | 82 +------------------
  14. .../browser/omaha/UpdateStatusProvider.java | 10 +--
  15. chrome/test/android/BUILD.gn | 2 -
  16. components/background_task_scheduler/BUILD.gn | 4 -
  17. .../internal/BUILD.gn | 6 --
  18. .../media_router/BrowserMediaRouter.java | 18 +---
  19. .../signin/core/browser/android/BUILD.gn | 2 -
  20. .../signin/GmsAvailabilityException.java | 4 +-
  21. content/public/android/BUILD.gn | 3 -
  22. content/test/BUILD.gn | 3 -
  23. device/BUILD.gn | 2 -
  24. remoting/android/client_java_tmpl.gni | 3 -
  25. services/BUILD.gn | 2 -
  26. services/device/geolocation/BUILD.gn | 2 -
  27. services/shape_detection/BUILD.gn | 2 -
  28. third_party/android_deps/BUILD.gn | 46 -----------
  29. 24 files changed, 15 insertions(+), 270 deletions(-)
  30. diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
  31. --- a/chrome/android/BUILD.gn
  32. +++ b/chrome/android/BUILD.gn
  33. @@ -278,9 +278,6 @@ android_library("chrome_java") {
  34. ":partner_location_descriptor_proto_java",
  35. ":update_proto_java",
  36. ":usage_stats_proto_java",
  37. - "$google_play_services_package:google_play_services_base_java",
  38. - "$google_play_services_package:google_play_services_basement_java",
  39. - "$google_play_services_package:google_play_services_tasks_java",
  40. "//base:base_java",
  41. "//base:jni_java",
  42. "//chrome/android/features/keyboard_accessory:public_java",
  43. @@ -765,8 +762,6 @@ junit_binary("chrome_junit_tests") {
  44. ":chrome_app_java_resources",
  45. ":chrome_java",
  46. ":partner_location_descriptor_proto_java",
  47. - "$google_play_services_package:google_play_services_base_java",
  48. - "$google_play_services_package:google_play_services_basement_java",
  49. "//base:base_java",
  50. "//base:base_java_test_support",
  51. "//base:base_junit_test_support",
  52. @@ -980,9 +975,6 @@ android_library("chrome_test_java") {
  53. ":chrome_app_java_resources",
  54. ":chrome_test_util_java",
  55. ":partner_location_descriptor_proto_java",
  56. - "$google_play_services_package:google_play_services_base_java",
  57. - "$google_play_services_package:google_play_services_basement_java",
  58. - "$google_play_services_package:google_play_services_tasks_java",
  59. "//base:base_java",
  60. "//base:base_java_test_support",
  61. "//base:jni_java",
  62. diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
  63. --- a/chrome/android/java/AndroidManifest.xml
  64. +++ b/chrome/android/java/AndroidManifest.xml
  65. @@ -774,15 +774,6 @@ by a child template that "extends" this file.
  66. </intent-filter>
  67. </activity>
  68. - <!-- Activity for dispatching intents to Instant Apps. -->
  69. - <activity
  70. - android:name="org.chromium.chrome.browser.instantapps.AuthenticatedProxyActivity"
  71. - android:exported="false"
  72. - android:theme="@android:style/Theme.NoDisplay"
  73. - android:noHistory="true"
  74. - android:excludeFromRecents="true">
  75. - </activity>
  76. -
  77. <activity
  78. android:name="org.chromium.chrome.browser.vr.VrCancelAnimationActivity"
  79. android:exported="false"
  80. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
  81. --- a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
  82. +++ b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
  83. @@ -10,9 +10,6 @@ import android.content.pm.PackageManager;
  84. import androidx.annotation.Nullable;
  85. import androidx.annotation.VisibleForTesting;
  86. -import com.google.android.gms.common.ConnectionResult;
  87. -import com.google.android.gms.common.GoogleApiAvailability;
  88. -
  89. import org.chromium.base.ContextUtils;
  90. import org.chromium.base.annotations.CalledByNative;
  91. import org.chromium.chrome.browser.banners.AppDetailsDelegate;
  92. @@ -327,16 +324,7 @@ public abstract class AppHooks {
  93. * same as {@link GoogleApiAvailability#isGooglePlayServicesAvailable()}.
  94. */
  95. public int isGoogleApiAvailableWithMinApkVersion(int minApkVersion) {
  96. - try {
  97. - PackageInfo gmsPackageInfo =
  98. - ContextUtils.getApplicationContext().getPackageManager().getPackageInfo(
  99. - GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE, /* flags= */ 0);
  100. - int apkVersion = gmsPackageInfo.versionCode;
  101. - if (apkVersion >= minApkVersion) return ConnectionResult.SUCCESS;
  102. - } catch (PackageManager.NameNotFoundException e) {
  103. - return ConnectionResult.SERVICE_MISSING;
  104. - }
  105. - return ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED;
  106. + return 1; /* SERVICE_MISSING*/
  107. }
  108. /**
  109. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java
  110. --- a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java
  111. +++ b/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java
  112. @@ -7,8 +7,6 @@ package org.chromium.chrome.browser;
  113. import android.content.Context;
  114. import android.content.pm.PackageManager;
  115. -import com.google.android.gms.common.GoogleApiAvailability;
  116. -
  117. import org.chromium.base.ContextUtils;
  118. import org.chromium.base.annotations.CalledByNative;
  119. import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
  120. @@ -29,7 +27,7 @@ public class PlayServicesVersionInfo {
  121. public static String getGmsInfo() {
  122. Context context = ContextUtils.getApplicationContext();
  123. - final long sdkVersion = GoogleApiAvailability.GOOGLE_PLAY_SERVICES_VERSION_CODE;
  124. + final long sdkVersion = 12600000;
  125. final long installedGmsVersion = getApkVersionNumber(context);
  126. final String accessType;
  127. @@ -53,12 +51,6 @@ public class PlayServicesVersionInfo {
  128. * package is not found.
  129. */
  130. public static int getApkVersionNumber(Context context) {
  131. - try {
  132. - return context.getPackageManager()
  133. - .getPackageInfo(GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE, 0)
  134. - .versionCode;
  135. - } catch (PackageManager.NameNotFoundException e) {
  136. - return 0;
  137. - }
  138. + return 0;
  139. }
  140. }
  141. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java b/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java
  142. --- a/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java
  143. +++ b/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java
  144. @@ -14,7 +14,6 @@ import org.chromium.components.background_task_scheduler.BackgroundTask.TaskFini
  145. import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
  146. import org.chromium.components.background_task_scheduler.TaskIds;
  147. import org.chromium.components.background_task_scheduler.TaskInfo;
  148. -import org.chromium.gms.ChromiumPlayServicesAvailability;
  149. /** Java-side implementation of the component update scheduler using the BackgroundTaskScheduler. */
  150. @JNINamespace("component_updater")
  151. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java
  152. --- a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java
  153. +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java
  154. @@ -15,16 +15,12 @@ import android.text.TextUtils;
  155. import androidx.annotation.VisibleForTesting;
  156. import androidx.annotation.WorkerThread;
  157. -import com.google.android.gms.common.ConnectionResult;
  158. -import com.google.android.gms.common.GoogleApiAvailability;
  159. -
  160. import org.chromium.base.ContextUtils;
  161. import org.chromium.base.Log;
  162. import org.chromium.base.StrictModeContext;
  163. import org.chromium.base.task.PostTask;
  164. import org.chromium.components.embedder_support.util.Origin;
  165. import org.chromium.content_public.browser.UiThreadTaskTraits;
  166. -import org.chromium.gms.ChromiumPlayServicesAvailability;
  167. /**
  168. * Utility class for external authentication tools.
  169. @@ -157,9 +153,7 @@ public class ExternalAuthUtils {
  170. * when it is updating.
  171. */
  172. public boolean isGooglePlayServicesMissing(final Context context) {
  173. - final int resultCode = checkGooglePlayServicesAvailable(context);
  174. - return (resultCode == ConnectionResult.SERVICE_MISSING
  175. - || resultCode == ConnectionResult.SERVICE_INVALID);
  176. + return true;
  177. }
  178. /**
  179. @@ -176,7 +170,6 @@ public class ExternalAuthUtils {
  180. public boolean canUseGooglePlayServices(final UserRecoverableErrorHandler errorHandler) {
  181. Context context = ContextUtils.getApplicationContext();
  182. final int resultCode = checkGooglePlayServicesAvailable(context);
  183. - if (resultCode == ConnectionResult.SUCCESS) return true;
  184. // resultCode is some kind of error.
  185. Log.v(TAG, "Unable to use Google Play Services: %s", describeError(resultCode));
  186. if (isUserRecoverableError(resultCode)) {
  187. @@ -239,10 +232,7 @@ public class ExternalAuthUtils {
  188. * @return The code produced by calling the external code
  189. */
  190. protected int checkGooglePlayServicesAvailable(final Context context) {
  191. - // TODO(crbug.com/577190): Temporarily allowing disk access until more permanent fix is in.
  192. - try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
  193. - return ChromiumPlayServicesAvailability.getGooglePlayServicesConnectionResult(context);
  194. - }
  195. + return 1; /*SERVICE_MISSING*/
  196. }
  197. /**
  198. @@ -253,7 +243,7 @@ public class ExternalAuthUtils {
  199. * @return true If the code represents a user-recoverable error
  200. */
  201. protected boolean isUserRecoverableError(final int errorCode) {
  202. - return GoogleApiAvailability.getInstance().isUserResolvableError(errorCode);
  203. + return false;
  204. }
  205. /**
  206. @@ -263,6 +253,6 @@ public class ExternalAuthUtils {
  207. * @return a textual description of the error code
  208. */
  209. protected String describeError(final int errorCode) {
  210. - return GoogleApiAvailability.getInstance().getErrorString(errorCode);
  211. + return "";
  212. }
  213. }
  214. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java
  215. --- a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java
  216. +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java
  217. @@ -9,8 +9,6 @@ import android.app.Dialog;
  218. import android.content.Context;
  219. import android.content.DialogInterface;
  220. -import com.google.android.gms.common.GoogleApiAvailability;
  221. -
  222. import org.chromium.base.ThreadUtils;
  223. import org.chromium.base.metrics.RecordUserAction;
  224. @@ -90,7 +88,6 @@ public abstract class UserRecoverableErrorHandler {
  225. if (!sNotificationShown.getAndSet(true)) {
  226. return;
  227. }
  228. - GoogleApiAvailability.getInstance().showErrorNotification(context, errorCode);
  229. }
  230. }
  231. @@ -183,11 +180,7 @@ public abstract class UserRecoverableErrorHandler {
  232. cancelDialog();
  233. }
  234. if (mDialog == null) {
  235. - mDialog = GoogleApiAvailability.getInstance().getErrorDialog(
  236. - mActivity, errorCode, NO_RESPONSE_REQUIRED);
  237. mErrorCode = errorCode;
  238. -
  239. - DialogUserActionRecorder.createAndAttachToDialog(mDialog);
  240. }
  241. // This can happen if |errorCode| is ConnectionResult.SERVICE_INVALID.
  242. if (mDialog != null && !mDialog.isShowing()) {
  243. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java
  244. --- a/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java
  245. +++ b/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java
  246. @@ -6,9 +6,6 @@ package org.chromium.chrome.browser.gcore;
  247. import android.content.Context;
  248. -import com.google.android.gms.common.ConnectionResult;
  249. -import com.google.android.gms.common.api.GoogleApiClient;
  250. -
  251. import org.chromium.base.Log;
  252. import org.chromium.base.TraceEvent;
  253. import org.chromium.chrome.browser.AppHooks;
  254. @@ -23,7 +20,6 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
  255. private static final String TAG = "Icing";
  256. private final Context mApplicationContext;
  257. - private final GoogleApiClient mClient;
  258. private final ExternalAuthUtils mExternalAuthUtils;
  259. /**
  260. @@ -33,10 +29,9 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
  261. * @param requireFirstPartyBuild true if the given client can only be used in a first-party
  262. * build.
  263. */
  264. - public ChromeGoogleApiClientImpl(Context context, GoogleApiClient client,
  265. + public ChromeGoogleApiClientImpl(Context context,
  266. boolean requireFirstPartyBuild) {
  267. mApplicationContext = context.getApplicationContext();
  268. - mClient = client;
  269. mExternalAuthUtils = AppHooks.get().getExternalAuthUtils();
  270. if (requireFirstPartyBuild && !mExternalAuthUtils.isChromeGoogleSigned()) {
  271. throw new IllegalStateException("GoogleApiClient requires first-party build");
  272. @@ -45,7 +40,6 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
  273. @Override
  274. public void disconnect() {
  275. - mClient.disconnect();
  276. }
  277. @Override
  278. @@ -61,24 +55,11 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
  279. @Override
  280. public boolean connectWithTimeout(long timeout) {
  281. TraceEvent.begin("ChromeGoogleApiClientImpl:connectWithTimeout");
  282. - try {
  283. - ConnectionResult result = mClient.blockingConnect(timeout, TimeUnit.MILLISECONDS);
  284. - if (!result.isSuccess()) {
  285. - Log.e(TAG, "Connection to GmsCore unsuccessful. Error %d", result.getErrorCode());
  286. - } else {
  287. - Log.d(TAG, "Connection to GmsCore successful.");
  288. - }
  289. - return result.isSuccess();
  290. - } finally {
  291. - TraceEvent.end("ChromeGoogleApiClientImpl:connectWithTimeout");
  292. - }
  293. + TraceEvent.end("ChromeGoogleApiClientImpl:connectWithTimeout");
  294. + return false;
  295. }
  296. public Context getApplicationContext() {
  297. return mApplicationContext;
  298. }
  299. -
  300. - public GoogleApiClient getApiClient() {
  301. - return mClient;
  302. - }
  303. }
  304. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java
  305. --- a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java
  306. +++ b/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java
  307. @@ -7,11 +7,6 @@ package org.chromium.chrome.browser.gcore;
  308. import android.os.Bundle;
  309. import android.os.Handler;
  310. -import com.google.android.gms.common.ConnectionResult;
  311. -import com.google.android.gms.common.api.GoogleApiClient;
  312. -import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
  313. -import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
  314. -
  315. import org.chromium.base.ApplicationStatus;
  316. import org.chromium.base.ApplicationStatus.ApplicationStateListener;
  317. import org.chromium.base.Log;
  318. @@ -67,29 +62,15 @@ import org.chromium.base.ThreadUtils;
  319. * }
  320. * </pre>
  321. */
  322. -public class GoogleApiClientHelper
  323. - implements OnConnectionFailedListener, ConnectionCallbacks {
  324. +public class GoogleApiClientHelper {
  325. private static final String TAG = "GCore";
  326. private int mResolutionAttempts;
  327. private boolean mWasConnectedBefore;
  328. private final Handler mHandler = new Handler(ThreadUtils.getUiThreadLooper());
  329. - private final GoogleApiClient mClient;
  330. private long mDisconnectionDelayMs;
  331. private Runnable mPendingDisconnect;
  332. - /**
  333. - * Creates a helper and enrolls it in the various connection management features.
  334. - * See the class documentation for {@link GoogleApiClientHelper} for more information.
  335. - *
  336. - * @param client The client to wrap.
  337. - */
  338. - public GoogleApiClientHelper(GoogleApiClient client) {
  339. - mClient = client;
  340. - enableConnectionRetrying(true);
  341. - enableLifecycleManagement(true);
  342. - }
  343. -
  344. /**
  345. * Opts in or out of lifecycle management. The client's connection will be closed and reopened
  346. * when Chrome goes in and out of background.
  347. @@ -116,13 +97,6 @@ public class GoogleApiClientHelper
  348. * Enabling or disabling it while it is already enabled or disabled has no effect.
  349. */
  350. public void enableConnectionRetrying(boolean enabled) {
  351. - if (enabled) {
  352. - mClient.registerConnectionCallbacks(this);
  353. - mClient.registerConnectionFailedListener(this);
  354. - } else {
  355. - mClient.unregisterConnectionCallbacks(this);
  356. - mClient.unregisterConnectionFailedListener(this);
  357. - }
  358. }
  359. /**
  360. @@ -155,21 +129,11 @@ public class GoogleApiClientHelper
  361. // Cancel and reschedule the disconnection if we are in the background. We do it early to
  362. // avoid race conditions between a disconnect on the UI thread and the connect below.
  363. if (!ApplicationStatus.hasVisibleActivities()) scheduleDisconnection();
  364. -
  365. - // The client might be disconnected if we were idle in the background for too long.
  366. - if (!mClient.isConnected() && !mClient.isConnecting()) {
  367. - Log.d(TAG, "Reconnecting the client.");
  368. - mClient.connect();
  369. - }
  370. }
  371. void restoreConnectedState() {
  372. // If we go back to the foreground before a delayed disconnect happens, cancel it.
  373. cancelPendingDisconnection();
  374. -
  375. - if (mWasConnectedBefore) {
  376. - mClient.connect();
  377. - }
  378. }
  379. /**
  380. @@ -192,12 +156,6 @@ public class GoogleApiClientHelper
  381. }
  382. private void disconnect() {
  383. - if (mClient.isConnected() || mClient.isConnecting()) {
  384. - mWasConnectedBefore = true;
  385. - }
  386. -
  387. - // We always call disconnect to abort possibly pending connection requests.
  388. - mClient.disconnect();
  389. }
  390. private void cancelPendingDisconnection() {
  391. @@ -207,43 +165,7 @@ public class GoogleApiClientHelper
  392. mPendingDisconnect = null;
  393. }
  394. - @Override
  395. - public void onConnectionFailed(ConnectionResult result) {
  396. - if (!isErrorRecoverableByRetrying(result.getErrorCode())) {
  397. - Log.d(TAG, "Not retrying managed client connection. Unrecoverable error: %d",
  398. - result.getErrorCode());
  399. - return;
  400. - }
  401. -
  402. - if (mResolutionAttempts < ConnectedTask.RETRY_NUMBER_LIMIT) {
  403. - Log.d(TAG, "Retrying managed client connection. attempt %d/%d - errorCode: %d",
  404. - mResolutionAttempts, ConnectedTask.RETRY_NUMBER_LIMIT, result.getErrorCode());
  405. - mResolutionAttempts += 1;
  406. -
  407. - mHandler.postDelayed(new Runnable() {
  408. - @Override
  409. - public void run() {
  410. - mClient.connect();
  411. - }
  412. - }, ConnectedTask.CONNECTION_RETRY_TIME_MS);
  413. - }
  414. - }
  415. -
  416. - @Override
  417. - public void onConnected(Bundle connectionHint) {
  418. - mResolutionAttempts = 0;
  419. - }
  420. -
  421. - @Override
  422. - public void onConnectionSuspended(int cause) {
  423. - // GoogleApiClient handles retrying on suspension itself. Logging in case it didn't succeed
  424. - // for some reason.
  425. - Log.w(TAG, "Managed client connection suspended. Cause: %d", cause);
  426. - }
  427. -
  428. private static boolean isErrorRecoverableByRetrying(int errorCode) {
  429. - return errorCode == ConnectionResult.INTERNAL_ERROR
  430. - || errorCode == ConnectionResult.NETWORK_ERROR
  431. - || errorCode == ConnectionResult.SERVICE_UPDATING;
  432. + return false;
  433. }
  434. }
  435. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
  436. --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
  437. +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
  438. @@ -19,8 +19,6 @@ import androidx.annotation.NonNull;
  439. import androidx.annotation.Nullable;
  440. import androidx.annotation.VisibleForTesting;
  441. -import com.google.android.gms.common.GooglePlayServicesUtil;
  442. -
  443. import org.chromium.base.ActivityState;
  444. import org.chromium.base.ApplicationStatus;
  445. import org.chromium.base.ApplicationStatus.ActivityStateListener;
  446. @@ -456,13 +454,7 @@ public class UpdateStatusProvider implements ActivityStateListener {
  447. }
  448. private boolean isGooglePlayStoreAvailable(Context context) {
  449. - try {
  450. - context.getPackageManager().getPackageInfo(
  451. - GooglePlayServicesUtil.GOOGLE_PLAY_STORE_PACKAGE, 0);
  452. - } catch (PackageManager.NameNotFoundException e) {
  453. - return false;
  454. - }
  455. - return true;
  456. + return false;
  457. }
  458. private long getSize(StatFs statFs) {
  459. diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
  460. --- a/chrome/test/android/BUILD.gn
  461. +++ b/chrome/test/android/BUILD.gn
  462. @@ -260,8 +260,6 @@ android_library("chrome_java_test_support") {
  463. ]
  464. deps = [
  465. - "$google_play_services_package:google_play_services_base_java",
  466. - "$google_play_services_package:google_play_services_basement_java",
  467. "//base:base_java",
  468. "//base:base_java_test_support",
  469. "//chrome/android:chrome_java",
  470. diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn
  471. --- a/components/background_task_scheduler/BUILD.gn
  472. +++ b/components/background_task_scheduler/BUILD.gn
  473. @@ -120,10 +120,6 @@ if (is_android) {
  474. deps = [
  475. ":background_task_scheduler_task_ids_java",
  476. - "$google_play_services_package:google_play_services_auth_base_java",
  477. - "$google_play_services_package:google_play_services_base_java",
  478. - "$google_play_services_package:google_play_services_basement_java",
  479. - "$google_play_services_package:google_play_services_tasks_java",
  480. "internal:internal_java",
  481. "internal:proto_java",
  482. "//base:base_java",
  483. diff --git a/components/background_task_scheduler/internal/BUILD.gn b/components/background_task_scheduler/internal/BUILD.gn
  484. --- a/components/background_task_scheduler/internal/BUILD.gn
  485. +++ b/components/background_task_scheduler/internal/BUILD.gn
  486. @@ -25,9 +25,6 @@ if (is_android) {
  487. deps = [
  488. ":proto_java",
  489. - "$google_play_services_package:google_play_services_base_java",
  490. - "$google_play_services_package:google_play_services_basement_java",
  491. - "$google_play_services_package:google_play_services_tasks_java",
  492. "//base:base_java",
  493. "//components/background_task_scheduler:background_task_scheduler_task_ids_java",
  494. "//components/background_task_scheduler:public_java",
  495. @@ -96,9 +93,6 @@ if (is_android) {
  496. deps = [
  497. ":internal_java",
  498. - "$google_play_services_package:google_play_services_base_java",
  499. - "$google_play_services_package:google_play_services_basement_java",
  500. - "$google_play_services_package:google_play_services_tasks_java",
  501. "//base:base_java",
  502. "//base:base_java_test_support",
  503. "//components/background_task_scheduler:background_task_scheduler_task_ids_java",
  504. 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
  505. --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java
  506. +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java
  507. @@ -10,9 +10,6 @@ import androidx.annotation.Nullable;
  508. import androidx.annotation.VisibleForTesting;
  509. import androidx.mediarouter.media.MediaRouter;
  510. -import com.google.android.gms.common.ConnectionResult;
  511. -import com.google.android.gms.common.GoogleApiAvailability;
  512. -
  513. import org.chromium.base.ContextUtils;
  514. import org.chromium.base.Log;
  515. import org.chromium.base.StrictModeContext;
  516. @@ -42,20 +39,7 @@ public class BrowserMediaRouter implements MediaRouteManager {
  517. new MediaRouteProvider.Factory() {
  518. @Override
  519. public void addProviders(MediaRouteManager manager) {
  520. - int googleApiAvailabilityResult =
  521. - GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
  522. - ContextUtils.getApplicationContext(),
  523. - MIN_GOOGLE_PLAY_SERVICES_APK_VERSION);
  524. - if (googleApiAvailabilityResult != ConnectionResult.SUCCESS) {
  525. - GoogleApiAvailability.getInstance().showErrorNotification(
  526. - ContextUtils.getApplicationContext(), googleApiAvailabilityResult);
  527. - return;
  528. - }
  529. - MediaRouteProvider cafProvider = CafMediaRouteProvider.create(manager);
  530. - manager.addMediaRouteProvider(cafProvider);
  531. - MediaRouteProvider remotingProvider =
  532. - CafRemotingMediaRouteProvider.create(manager);
  533. - manager.addMediaRouteProvider(remotingProvider);
  534. + return;
  535. }
  536. };
  537. diff --git a/components/signin/core/browser/android/BUILD.gn b/components/signin/core/browser/android/BUILD.gn
  538. --- a/components/signin/core/browser/android/BUILD.gn
  539. +++ b/components/signin/core/browser/android/BUILD.gn
  540. @@ -14,8 +14,6 @@ generate_jni("jni_headers") {
  541. android_library("java") {
  542. deps = [
  543. - "$google_play_services_package:google_play_services_base_java",
  544. - "$google_play_services_package:google_play_services_basement_java",
  545. "//base:base_java",
  546. "//base:jni_java",
  547. "//net/android:net_java",
  548. diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java
  549. --- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java
  550. +++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java
  551. @@ -4,8 +4,6 @@
  552. package org.chromium.components.signin;
  553. -import com.google.android.gms.common.GoogleApiAvailability;
  554. -
  555. /**
  556. * This class encapsulates return code if GMSCore package is not available.
  557. */
  558. @@ -27,6 +25,6 @@ public class GmsAvailabilityException extends AccountManagerDelegateException {
  559. }
  560. public boolean isUserResolvableError() {
  561. - return GoogleApiAvailability.getInstance().isUserResolvableError(mResultCode);
  562. + return false;
  563. }
  564. }
  565. diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
  566. --- a/content/public/android/BUILD.gn
  567. +++ b/content/public/android/BUILD.gn
  568. @@ -75,9 +75,6 @@ action_with_pydeps("generate_sandboxed_service_srcjar") {
  569. android_library("content_java") {
  570. deps = [
  571. ":content_java_resources",
  572. - "$google_play_services_package:google_play_services_base_java",
  573. - "$google_play_services_package:google_play_services_basement_java",
  574. - "$google_play_services_package:google_play_services_tasks_java",
  575. "//base:base_java",
  576. "//base:jni_java",
  577. "//components/download/public/common:public_java",
  578. diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
  579. --- a/content/test/BUILD.gn
  580. +++ b/content/test/BUILD.gn
  581. @@ -2609,9 +2609,6 @@ if (is_android) {
  582. testonly = true
  583. sources = content_java_sources_needing_jni
  584. deps = [
  585. - "$google_play_services_package:google_play_services_base_java",
  586. - "$google_play_services_package:google_play_services_basement_java",
  587. - "$google_play_services_package:google_play_services_tasks_java",
  588. "//base:base_java",
  589. "//content/public/android:content_java",
  590. "//ui/android:ui_full_java",
  591. diff --git a/device/BUILD.gn b/device/BUILD.gn
  592. --- a/device/BUILD.gn
  593. +++ b/device/BUILD.gn
  594. @@ -421,8 +421,6 @@ if (is_android) {
  595. junit_binary("device_junit_tests") {
  596. sources = [ "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java" ]
  597. deps = [
  598. - "$google_play_services_package:google_play_services_base_java",
  599. - "$google_play_services_package:google_play_services_basement_java",
  600. "//base:base_java",
  601. "//base:base_java_test_support",
  602. "//base:base_junit_test_support",
  603. diff --git a/remoting/android/client_java_tmpl.gni b/remoting/android/client_java_tmpl.gni
  604. --- a/remoting/android/client_java_tmpl.gni
  605. +++ b/remoting/android/client_java_tmpl.gni
  606. @@ -104,9 +104,6 @@ template("remoting_android_client_java_tmpl") {
  607. if (defined(invoker.play_services_package)) {
  608. deps += [
  609. - "${invoker.play_services_package}:google_play_services_auth_base_java",
  610. - "${invoker.play_services_package}:google_play_services_base_java",
  611. - "${invoker.play_services_package}:google_play_services_basement_java",
  612. ]
  613. }
  614. diff --git a/services/BUILD.gn b/services/BUILD.gn
  615. --- a/services/BUILD.gn
  616. +++ b/services/BUILD.gn
  617. @@ -132,8 +132,6 @@ if (is_android) {
  618. "shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java",
  619. ]
  620. deps = [
  621. - "$google_play_services_package:google_play_services_base_java",
  622. - "$google_play_services_package:google_play_services_basement_java",
  623. "//base:base_java",
  624. "//base:base_java_test_support",
  625. "//mojo/public/java:base_java",
  626. diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
  627. --- a/services/device/geolocation/BUILD.gn
  628. +++ b/services/device/geolocation/BUILD.gn
  629. @@ -155,8 +155,6 @@ if (is_android) {
  630. deps = [
  631. ":geolocation_jni_headers",
  632. - "$google_play_services_package:google_play_services_base_java",
  633. - "$google_play_services_package:google_play_services_basement_java",
  634. "//base:base_java",
  635. "//base:jni_java",
  636. "//components/location/android:location_java",
  637. diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn
  638. --- a/services/shape_detection/BUILD.gn
  639. +++ b/services/shape_detection/BUILD.gn
  640. @@ -107,8 +107,6 @@ if (is_android) {
  641. ]
  642. deps = [
  643. - "$google_play_services_package:google_play_services_base_java",
  644. - "$google_play_services_package:google_play_services_basement_java",
  645. "//base:base_java",
  646. "//mojo/public/java:base_java",
  647. "//mojo/public/java:bindings_java",
  648. diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
  649. --- a/third_party/android_deps/BUILD.gn
  650. +++ b/third_party/android_deps/BUILD.gn
  651. @@ -1135,42 +1135,6 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") {
  652. ]
  653. }
  654. -# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
  655. -android_aar_prebuilt("google_play_services_base_java") {
  656. - aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-17.1.0.aar"
  657. - info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info"
  658. - deps = [
  659. - ":androidx_collection_collection_java",
  660. - ":androidx_core_core_java",
  661. - ":androidx_fragment_fragment_java",
  662. - ":google_play_services_basement_java",
  663. - ":google_play_services_tasks_java",
  664. - ]
  665. -
  666. - # Removing drawables from GMS .aars as they are unused bloat.
  667. - strip_drawables = true
  668. -}
  669. -
  670. -# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
  671. -android_aar_prebuilt("google_play_services_basement_java") {
  672. - aar_path = "libs/com_google_android_gms_play_services_basement/play-services-basement-17.1.0.aar"
  673. - info_path = "libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info"
  674. - deps = [
  675. - ":androidx_collection_collection_java",
  676. - ":androidx_core_core_java",
  677. - ":androidx_fragment_fragment_java",
  678. - ]
  679. -
  680. - # Removing drawables from GMS .aars as they are unused bloat.
  681. - strip_drawables = true
  682. -
  683. - # https://crbug.com/989505
  684. - jar_excluded_patterns = [ "META-INF/proguard/*" ]
  685. - input_jars_paths = [ "$android_sdk/optional/org.apache.http.legacy.jar" ]
  686. - bytecode_rewriter_target =
  687. - "//build/android/bytecode:fragment_activity_replacer"
  688. -}
  689. -
  690. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
  691. android_aar_prebuilt("google_play_services_gcm_java") {
  692. aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar"
  693. @@ -1189,16 +1153,6 @@ android_aar_prebuilt("google_play_services_gcm_java") {
  694. strip_drawables = true
  695. }
  696. -# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
  697. -android_aar_prebuilt("google_play_services_tasks_java") {
  698. - aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-17.0.0.aar"
  699. - info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info"
  700. - deps = [ ":google_play_services_basement_java" ]
  701. -
  702. - # Removing drawables from GMS .aars as they are unused bloat.
  703. - strip_drawables = true
  704. -}
  705. -
  706. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
  707. android_aar_prebuilt("com_google_android_material_material_java") {
  708. aar_path =
  709. --
  710. 2.17.1