Index: base/android/base_proguard_config.flags |
diff --git a/base/android/base_proguard_config.flags b/base/android/base_proguard_config.flags |
index f8b733d346ca196506d994dc9450796f5650b7b6..2775360d62a57b800c71c72b4c2026c74896cded 100644 |
--- a/base/android/base_proguard_config.flags |
+++ b/base/android/base_proguard_config.flags |
@@ -37,13 +37,20 @@ |
native <methods>; |
} |
-# Keep all Parcelables as they might be marshalled outside Chrome. |
--keepnames class * implements android.os.Parcelable |
- |
+# Keep all CREATOR fields within Parcelable that are kept. |
-keepclassmembers class * implements android.os.Parcelable { |
public static *** CREATOR; |
} |
+# Don't obfuscate Parcelables as they might be marshalled outside Chrome. |
+-keepnames class * implements android.os.Parcelable |
+ |
+# Keep all Parcelables, since Play Services has some that are used only by |
+# reflection. |
+# TODO(agrieve): Remove this once proguard flags provided by play services via |
+# .aars are used. https://crbug.com/640836 |
+-keep class * implements android.os.Parcelable |
+ |
# Remove methods annotated with this if their return value is unused |
-assumenosideeffects class ** { |
@org.chromium.base.annotations.RemovableInRelease <methods>; |