Remove unnecessary premission from webview

We are unnecessarily adding this permission for standalone WebView:
com.google.android.c2dm.permission.RECEIVE

This was added in rolling a new version of GMS core through
BackgroundTaskScheduler. WebView is only using TaskIds in BTS, just to
avoid collision with Chrome (which is using the same UID). Therefore,
this CL splits TaskIds from the rest of BTS and have WebView depend on
it.

Bug: 872977
Change-Id: I424659366b2af661d83ad19590c4a76bca37a2ad
Reviewed-on: https://chromium-review.googlesource.com/1170426
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
Commit-Queue: Changwan Ryu <changwan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582256}
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn
index 04db3b4..8f560ec7 100644
--- a/android_webview/BUILD.gn
+++ b/android_webview/BUILD.gn
@@ -899,7 +899,7 @@
     "//base:base_java",
     "//components/autofill/android:autofill_java",
     "//components/autofill/android:provider_java",
-    "//components/background_task_scheduler:background_task_scheduler_java",
+    "//components/background_task_scheduler:background_task_scheduler_task_ids_java",
     "//components/crash/android:java",
     "//components/embedder_support/android:web_contents_delegate_java",
     "//components/minidump_uploader:minidump_uploader_java",
@@ -1048,7 +1048,7 @@
     ":android_webview_variations_utils_java",
     ":system_webview_manifest",
     "//base:base_java",
-    "//components/background_task_scheduler:background_task_scheduler_java",
+    "//components/background_task_scheduler:background_task_scheduler_task_ids_java",
     "//components/minidump_uploader:minidump_uploader_java",
     "//components/version_info/android:version_constants_java",
   ]
diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn
index 9525aff..5f445bc 100644
--- a/components/background_task_scheduler/BUILD.gn
+++ b/components/background_task_scheduler/BUILD.gn
@@ -20,6 +20,13 @@
 }
 
 if (is_android) {
+  # This is shared between WebView and Chrome. We do not want to add GCM
+  # related permissions for WebView while still wanting to avoid collision
+  # between WebView and Chrome.
+  android_library("background_task_scheduler_task_ids_java") {
+    java_files = [ "android/java/src/org/chromium/components/background_task_scheduler/TaskIds.java" ]
+  }
+
   android_library("background_task_scheduler_java") {
     java_files = [
       "android/java/src/org/chromium/components/background_task_scheduler/BackgroundTask.java",
@@ -36,12 +43,12 @@
       "android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerPrefs.java",
       "android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerUma.java",
       "android/java/src/org/chromium/components/background_task_scheduler/BundleToPersistableBundleConverter.java",
-      "android/java/src/org/chromium/components/background_task_scheduler/TaskIds.java",
       "android/java/src/org/chromium/components/background_task_scheduler/TaskInfo.java",
       "android/java/src/org/chromium/components/background_task_scheduler/TaskParameters.java",
     ]
 
     deps = [
+      ":background_task_scheduler_task_ids_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_gcm_java",