Add support for GCM subtypes to desktop Instance ID implementation
Adds support for subtypes to the desktop Instance ID
implementation. A follow-on patch will switch Web Push
to use subtypes on desktop. Chrome Apps/Extensions will
be unchanged.
The main benefit will be consistency between desktop
and Android - both will be able to use subtypes for the
app_id, rather than sending app_id to GCM as the
category field (package name) on desktop only. This will
avoid spamming GCM's category column with many unique
values (since each app_id that Push generates contains
a random GUID).
Part of a series of patches:
1. https://codereview.chromium.org/1832833002 adds InstanceIDWithSubtype
2. https://codereview.chromium.org/1830983002 adds JNI bindings
3. https://codereview.chromium.org/1829023002 adds fake and test
4. https://codereview.chromium.org/1899753002 fixes strict mode violations
5. https://codereview.chromium.org/1854093002 enables InstanceID by default
6. https://codereview.chromium.org/1953273002 extends the GCMKeyStore
7. https://codereview.chromium.org/1923953002 integrates IIDs with crypto
8. this patch
9. https://codereview.chromium.org/1851423003 switches Push to InstanceIDs
Also depends on
- https://codereview.chromium.org/2148163003 fix test asserts
- https://codereview.chromium.org/2217803003 EXPECT_DCHECK
BUG=533498,589461
Review-Url: https://codereview.chromium.org/2111973002
Cr-Commit-Position: refs/heads/master@{#413259}
diff --git a/components/gcm_driver/DEPS b/components/gcm_driver/DEPS
index 4423dce1..97433dd1 100644
--- a/components/gcm_driver/DEPS
+++ b/components/gcm_driver/DEPS
@@ -1,4 +1,5 @@
include_rules = [
+ "+components/crx_file/id_util.h",
"+components/os_crypt",
"+components/keyed_service",
"+components/pref_registry",
@@ -8,8 +9,7 @@
"+components/sync/protocol",
"+components/timers", # Only used for Chrome OS builds.
"+components/version_info",
- # TODO(johnme): Fix this layering violation.
- "!content/public/android/java",
+ "+content/public/android/java",
"+google_apis/gaia",
"+google_apis/gcm",
"+jni",