Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Unified Diff: chrome/android/java/proguard.flags

Issue 2079613002: Revamping -keeps for @annotations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changing how we keep fragments Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/proguard.flags
diff --git a/chrome/android/java/proguard.flags b/chrome/android/java/proguard.flags
index 1b2aed8749fb46eb1e46ec04a657560806f37177..9edf6874cb084735f1daaeb49be0dc1b657e3f12 100644
--- a/chrome/android/java/proguard.flags
+++ b/chrome/android/java/proguard.flags
@@ -15,18 +15,66 @@
!private static final java.lang.String *;
}
-# Keep code annotated with the following annotations.
--keep class com.google.android.apps.chrome.**,org.chromium.** {
+# Fragments are loaded using reflection via Fragment.instantiate(Context,String)
+# This can be improved upon - see b/622023.
agrieve 2016/06/22 18:08:06 nit: Please use either crbug/622023, or http://crb
smaier 2016/06/22 18:24:06 Done.
+-keep public class com.google.android.apps.chrome** extends android.app.Fragment
+-keep public class org.chromium** extends android.app.Fragment
+
+# This block will keep all members that are annotated to be kept.
agrieve 2016/06/22 18:08:06 nit: this -> these, can you also elaborate to expl
smaier 2016/06/22 18:24:06 Discussed offline about these comments.
+-keepclasseswithmembers class com.google.android.apps.chrome.** {
+ @**.AccessedByNative <fields>;
+}
+-keepclasseswithmembers class com.google.android.apps.chrome.** {
+ @**.CalledByNative <methods>;
+}
+-keepclasseswithmembers class com.google.android.apps.chrome.** {
+ @**.CalledByNativeUnchecked <methods>;
+}
+-keepclasseswithmembers class com.google.android.apps.chrome.** {
+ @**.JavascriptInterface <methods>;
+}
+-keepclasseswithmembers class com.google.android.apps.chrome.** {
+ @**.NativeCall <methods>;
+}
+-keepclasseswithmembers class com.google.android.apps.chrome.** {
+ @**.UsedByReflection <methods>;
+}
+-keepclasseswithmembers class com.google.android.apps.chrome.** {
+ @**.VisibleForTesting <methods>;
+}
+-keepclasseswithmembers class com.google.android.apps.chrome.** {
+ native <methods>;
+}
+-keepclasseswithmembers class org.chromium.** {
@**.AccessedByNative <fields>;
+}
+-keepclasseswithmembers class org.chromium.** {
@**.CalledByNative <methods>;
agrieve 2016/06/22 18:08:06 I think we'd need a -keep for the ByNative ones as
+}
+-keepclasseswithmembers class org.chromium.** {
@**.CalledByNativeUnchecked <methods>;
+}
+-keepclasseswithmembers class org.chromium.** {
@**.JavascriptInterface <methods>;
+}
+-keepclasseswithmembers class org.chromium.** {
@**.NativeCall <methods>;
+}
+-keepclasseswithmembers class org.chromium.** {
@**.UsedByReflection <methods>;
- @**.VisibleForTesting *;
+}
+-keepclasseswithmembers class org.chromium.** {
+ @**.VisibleForTesting <methods>;
+}
+-keepclasseswithmembers class org.chromium.** {
native <methods>;
}
+# Keeping classes which are annotated to be kept
+-keep @**.UsedByReflection class *
+-keep @**.VisibleForTesting class *
+
+
# Class merging provides negligible .dex size reduction and method count
# reduction (about 0.3% improvement on method count, and 0.1% savings on size),
# and it messes up stack traces if the classes are optimized. Thus, it is in our
@@ -172,3 +220,7 @@
-keepnames class com.google.android.gms.common.GoogleApiAvailability {
*;
}
+
+# Needed for chrome_sync_shell_test_apk. Note - these do no affect chrome_apk's
+# size.
+-keep class org.chromium.sync.protocol.* { *; }

Powered by Google App Engine
This is Rietveld 408576698