From: thermatk Date: Fri, 22 Jun 2018 17:11:38 +0200 Subject: kill GCM --- ...em_webview_bundle.AndroidManifest.expected | 6 - chrome/android/BUILD.gn | 1 - chrome/android/chrome_java_sources.gni | 5 - chrome/android/java/AndroidManifest.xml | 53 ----- .../ChromeBackgroundTaskFactory.java | 3 - .../services/gcm/GCMBackgroundTask.java | 1 - components/background_task_scheduler/BUILD.gn | 1 - .../internal/BUILD.gn | 1 - ...kgroundTaskSchedulerGcmNetworkManager.java | 199 +----------------- components/gcm_driver/android/BUILD.gn | 1 - .../gcm_driver/instance_id/android/BUILD.gn | 1 - .../instance_id/InstanceIDBridge.java | 49 +---- components/sync/android/BUILD.gn | 1 - 13 files changed, 6 insertions(+), 316 deletions(-) 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 @@ -19,11 +19,6 @@ android:multiArch="true" android:name="org.chromium.android_webview.nonembedded.WebViewApkApplication" android:use32bitAbi="true"> - - # DIFF-ANCHOR: ea1a94af # DIFF-ANCHOR: b7cc06e9 - - - - - {% block extra_uses_permissions %} @@ -970,36 +965,6 @@ by a child template that "extends" this file. android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" android:hardwareAccelerated="false" /> - - - - - - - - - - - - - - - - - - - - - - - @@ -1023,28 +988,10 @@ by a child template that "extends" this file. android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE"/> - - - - - - - - - - - - - - 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.offlinepages.OfflineBackgroundTask; import org.chromium.chrome.browser.offlinepages.prefetch.OfflineNotificationBackgroundTask; import org.chromium.chrome.browser.offlinepages.prefetch.PrefetchBackgroundTask; import org.chromium.chrome.browser.omaha.OmahaService; -import org.chromium.chrome.browser.services.gcm.GCMBackgroundTask; import org.chromium.chrome.browser.webapps.WebApkUpdateTask; import org.chromium.components.background_task_scheduler.BackgroundTask; import org.chromium.components.background_task_scheduler.BackgroundTaskFactory; @@ -59,8 +58,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 GCMBackgroundTask(); case TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID: return new OfflineBackgroundTask(); case TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID: diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java --- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java @@ -42,7 +42,6 @@ public class GCMBackgroundTask implements BackgroundTask { return false; } - ChromeGcmListenerServiceImpl.dispatchMessageToDriver(message); return false; } diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn --- a/components/background_task_scheduler/BUILD.gn +++ b/components/background_task_scheduler/BUILD.gn @@ -104,7 +104,6 @@ if (is_android) { bypass_platform_checks = true testonly = true sources = [ - "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskServiceTest.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskJobServiceTest.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManagerTest.java", "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManagerTest.java", diff --git a/components/background_task_scheduler/internal/BUILD.gn b/components/background_task_scheduler/internal/BUILD.gn --- a/components/background_task_scheduler/internal/BUILD.gn +++ b/components/background_task_scheduler/internal/BUILD.gn @@ -16,7 +16,6 @@ if (is_android) { "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManager.java", "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerDelegate.java", "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java", - "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java", "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl.java", "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService.java", "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefs.java", diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java @@ -44,211 +44,14 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule sClock = clock; } - /** - * Checks if a task expired, based on the current time of the service. - * - * @param taskParams parameters sent to the service, which contain the scheduling information - * regarding expiration. - * @param currentTimeMs the current time of the service. - * @return true if the task expired and false otherwise. - */ - static boolean didTaskExpire(TaskParams taskParams, long currentTimeMs) { - Bundle extras = taskParams.getExtras(); - if (extras == null || !extras.containsKey(BACKGROUND_TASK_SCHEDULE_TIME_KEY)) { - return false; - } - - long scheduleTimeMs = extras.getLong(BACKGROUND_TASK_SCHEDULE_TIME_KEY); - if (extras.containsKey(BACKGROUND_TASK_END_TIME_KEY)) { - long endTimeMs = - extras.getLong(BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_END_TIME_KEY); - return TaskInfo.OneOffInfo.getExpirationStatus( - scheduleTimeMs, endTimeMs, currentTimeMs); - } else { - long intervalTimeMs = extras.getLong(BACKGROUND_TASK_INTERVAL_TIME_KEY); - - // If flex is never set, it is given a default value of 10% of the period time, as - // per the GcmNetworkManager behaviour. This default value is set in - // https://developers.google.com/android/reference/com/google/android/gms/gcm/PeriodicTask. - double defaultFlexAsFractionOfInterval = 0.1f; - - long flexTimeMs = extras.getLong(BACKGROUND_TASK_FLEX_TIME_KEY, - /*defaultValue=*/(long) (defaultFlexAsFractionOfInterval * intervalTimeMs)); - - return TaskInfo.PeriodicInfo.getExpirationStatus( - scheduleTimeMs, intervalTimeMs, flexTimeMs, currentTimeMs); - } - } - - /** - * Retrieves the {@link TaskParameters} from the {@link TaskParams}, which are passed as - * one of the keys. Only values valid for {@link android.os.BaseBundle} are supported, and other - * values are stripped at the time when the task is scheduled. - * - * @param taskParams the {@link TaskParams} to extract the {@link TaskParameters} from. - * @return the {@link TaskParameters} for the current job. - */ - static TaskParameters getTaskParametersFromTaskParams(@NonNull TaskParams taskParams) { - int taskId; - try { - taskId = Integer.parseInt(taskParams.getTag()); - } catch (NumberFormatException e) { - Log.e(TAG, "Cound not parse task ID from task tag: " + taskParams.getTag()); - return null; - } - - TaskParameters.Builder builder = TaskParameters.create(taskId); - - Bundle extras = taskParams.getExtras(); - Bundle taskExtras = extras.getBundle(BACKGROUND_TASK_EXTRAS_KEY); - builder.addExtras(taskExtras); - - return builder.build(); - } - - @VisibleForTesting - static Task createTaskFromTaskInfo(@NonNull TaskInfo taskInfo) { - Bundle taskExtras = new Bundle(); - taskExtras.putBundle(BACKGROUND_TASK_EXTRAS_KEY, taskInfo.getExtras()); - - TaskBuilderVisitor taskBuilderVisitor = new TaskBuilderVisitor(taskExtras); - taskInfo.getTimingInfo().accept(taskBuilderVisitor); - Task.Builder builder = taskBuilderVisitor.getBuilder(); - - builder.setPersisted(taskInfo.isPersisted()) - .setRequiredNetwork(getGcmNetworkManagerNetworkTypeFromTypeFromTaskNetworkType( - taskInfo.getRequiredNetworkType())) - .setRequiresCharging(taskInfo.requiresCharging()) - .setService(BackgroundTaskGcmTaskService.class) - .setTag(taskIdToTaskTag(taskInfo.getTaskId())) - .setUpdateCurrent(taskInfo.shouldUpdateCurrent()); - - return builder.build(); - } - - private static class TaskBuilderVisitor implements TaskInfo.TimingInfoVisitor { - private Task.Builder mBuilder; - private final Bundle mTaskExtras; - - TaskBuilderVisitor(Bundle taskExtras) { - mTaskExtras = taskExtras; - } - - // Only valid after a TimingInfo object was visited. - Task.Builder getBuilder() { - return mBuilder; - } - - @Override - public void visit(TaskInfo.OneOffInfo oneOffInfo) { - if (oneOffInfo.expiresAfterWindowEndTime()) { - mTaskExtras.putLong(BACKGROUND_TASK_SCHEDULE_TIME_KEY, sClock.currentTimeMillis()); - mTaskExtras.putLong(BACKGROUND_TASK_END_TIME_KEY, oneOffInfo.getWindowEndTimeMs()); - } - - OneoffTask.Builder builder = new OneoffTask.Builder(); - long windowStartSeconds = oneOffInfo.hasWindowStartTimeConstraint() - ? TimeUnit.MILLISECONDS.toSeconds(oneOffInfo.getWindowStartTimeMs()) - : 0; - long windowEndTimeMs = oneOffInfo.getWindowEndTimeMs(); - if (oneOffInfo.expiresAfterWindowEndTime()) { - windowEndTimeMs += DEADLINE_DELTA_MS; - } - builder.setExecutionWindow( - windowStartSeconds, TimeUnit.MILLISECONDS.toSeconds(windowEndTimeMs)); - builder.setExtras(mTaskExtras); - mBuilder = builder; - } - - @Override - public void visit(TaskInfo.PeriodicInfo periodicInfo) { - if (periodicInfo.expiresAfterWindowEndTime()) { - mTaskExtras.putLong(BACKGROUND_TASK_SCHEDULE_TIME_KEY, sClock.currentTimeMillis()); - mTaskExtras.putLong( - BACKGROUND_TASK_INTERVAL_TIME_KEY, periodicInfo.getIntervalMs()); - if (periodicInfo.hasFlex()) { - mTaskExtras.putLong(BACKGROUND_TASK_FLEX_TIME_KEY, periodicInfo.getFlexMs()); - } - } - - PeriodicTask.Builder builder = new PeriodicTask.Builder(); - builder.setPeriod(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getIntervalMs())); - if (periodicInfo.hasFlex()) { - builder.setFlex(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getFlexMs())); - } - builder.setExtras(mTaskExtras); - mBuilder = builder; - } - - @Override - public void visit(TaskInfo.ExactInfo exactInfo) { - throw new RuntimeException("Exact tasks should not be scheduled with " - + "GcmNetworkManager."); - } - } - - private static int getGcmNetworkManagerNetworkTypeFromTypeFromTaskNetworkType( - @TaskInfo.NetworkType int networkType) { - switch (networkType) { - // This is correct: GcmNM ANY means no network is guaranteed. - case TaskInfo.NetworkType.NONE: - return Task.NETWORK_STATE_ANY; - case TaskInfo.NetworkType.ANY: - return Task.NETWORK_STATE_CONNECTED; - case TaskInfo.NetworkType.UNMETERED: - return Task.NETWORK_STATE_UNMETERED; - default: - assert false; - } - return Task.NETWORK_STATE_ANY; - } - @Override public boolean schedule(Context context, @NonNull TaskInfo taskInfo) { ThreadUtils.assertOnUiThread(); - - GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context); - if (gcmNetworkManager == null) { - Log.e(TAG, "GcmNetworkManager is not available."); - return false; - } - - try { - Task task = createTaskFromTaskInfo(taskInfo); - gcmNetworkManager.schedule(task); - } catch (IllegalArgumentException e) { - String gcmErrorMessage = e.getMessage() == null ? "null." : e.getMessage(); - Log.e(TAG, - "GcmNetworkManager failed to schedule task, gcm message: " + gcmErrorMessage); - return false; - } - - return true; + return false; } @Override public void cancel(Context context, int taskId) { - ThreadUtils.assertOnUiThread(); - - GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context); - if (gcmNetworkManager == null) { - Log.e(TAG, "GcmNetworkManager is not available."); - return; - } - - try { - gcmNetworkManager.cancelTask( - taskIdToTaskTag(taskId), BackgroundTaskGcmTaskService.class); - } catch (IllegalArgumentException e) { - Log.e(TAG, "GcmNetworkManager failed to cancel task."); - } - } - - private GcmNetworkManager getGcmNetworkManager(Context context) { - if (ChromiumPlayServicesAvailability.isGooglePlayServicesAvailable(context)) { - return GcmNetworkManager.getInstance(context); - } - return null; } private static String taskIdToTaskTag(int taskId) { diff --git a/components/gcm_driver/android/BUILD.gn b/components/gcm_driver/android/BUILD.gn --- a/components/gcm_driver/android/BUILD.gn +++ b/components/gcm_driver/android/BUILD.gn @@ -15,7 +15,6 @@ android_library("gcm_driver_java") { "//content/public/android:content_java", "//third_party/android_deps:androidx_annotation_annotation_java", "//third_party/android_deps:com_google_code_findbugs_jsr305_java", - "//third_party/android_sdk:android_gcm_java", ] annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] 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 @@ -28,7 +28,6 @@ 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", ] } 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 @@ -29,7 +29,6 @@ public class InstanceIDBridge { * Underlying InstanceIDWithSubtype. May be shared by multiple InstanceIDBridges. Must be * initialized on a background thread. */ - private InstanceIDWithSubtype mInstanceID; private static boolean sBlockOnAsyncTasksForTesting; @@ -74,7 +73,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected String doBackgroundWork() { - return mInstanceID.getId(); + return ""; } @Override protected void sendResultToNative(String id) { @@ -90,7 +89,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected Long doBackgroundWork() { - return mInstanceID.getCreationTime(); + return 0L; } @Override protected void sendResultToNative(Long creationTime) { @@ -116,21 +115,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected String doBackgroundWork() { - try { - // TODO(knollr): 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, extras); - } catch (IOException ex) { - return ""; - } + return ""; } @Override protected void sendResultToNative(String token) { @@ -147,21 +132,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @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 protected void sendResultToNative(Boolean success) { @@ -177,12 +148,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected Boolean doBackgroundWork() { - try { - mInstanceID.deleteInstanceID(); - return true; - } catch (IOException ex) { - return false; - } + return true; } @Override protected void sendResultToNative(Boolean success) { @@ -212,11 +178,6 @@ public class InstanceIDBridge { @Override @SuppressWarnings("NoSynchronizedThisCheck") // Only used/accessible by native. protected Result doInBackground() { - synchronized (InstanceIDBridge.this) { - if (mInstanceID == null) { - mInstanceID = InstanceIDWithSubtype.getInstance(mSubtype); - } - } return doBackgroundWork(); } @Override diff --git a/components/sync/android/BUILD.gn b/components/sync/android/BUILD.gn --- a/components/sync/android/BUILD.gn +++ b/components/sync/android/BUILD.gn @@ -13,7 +13,6 @@ android_library("sync_java") { "//net/android:net_java", "//third_party/android_deps:androidx_annotation_annotation_java", "//third_party/android_deps:com_google_code_findbugs_jsr305_java", - "//third_party/android_sdk:android_gcm_java", ] annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] srcjar_deps = [ ":java_enums" ] -- 2.17.1