Chromium Code Reviews| Index: chrome/android/java/proguard.flags |
| diff --git a/chrome/android/java/proguard.flags b/chrome/android/java/proguard.flags |
| index 59ce6b7c21f2cbca1ad75556926e7704b0368503..6c7c8b2044cf9c1a8a50ce6ecebae3f9edcb10d6 100644 |
| --- a/chrome/android/java/proguard.flags |
| +++ b/chrome/android/java/proguard.flags |
| @@ -1,9 +1,3 @@ |
| -# Keep line number information, useful for stack traces. |
| --keepattributes SourceFile,LineNumberTable |
| - |
| -# Keep the annotations. |
| --keep @interface *** |
| - |
| # Disable obfuscation for the following two packages. |
| -keepnames class com.google.android.apps.chrome.**,org.chromium.** { |
| *; |
| @@ -14,74 +8,11 @@ |
| -keep public class com.google.android.apps.chrome** extends android.app.Fragment |
| -keep public class org.chromium** extends android.app.Fragment |
| -# Keeps for class level annotations. |
| --keep @**.UsedByReflection class * |
| --keep @**.VisibleForTesting class * |
| - |
| -# Keeps for method level annotations. |
| --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>; |
| -} |
| --keepclasseswithmembers class org.chromium.** { |
| - @**.CalledByNativeUnchecked <methods>; |
| -} |
| --keepclasseswithmembers class org.chromium.** { |
| - @**.JavascriptInterface <methods>; |
| -} |
| --keepclasseswithmembers class org.chromium.** { |
| - @**.NativeCall <methods>; |
| -} |
| --keepclasseswithmembers class org.chromium.** { |
| - @**.UsedByReflection <methods>; |
| -} |
| --keepclasseswithmembers class org.chromium.** { |
| - @**.VisibleForTesting <methods>; |
| -} |
| --keepclasseswithmembers class org.chromium.** { |
| +# Keeping all our native methods |
| +-keepclasseswithmembers,includedescriptorclasses class com.google.android.apps.chrome.** { |
|
agrieve
2016/07/18 18:02:21
I think it might be better to have the version of
smaier
2016/07/18 18:50:09
Done.
|
| native <methods>; |
| } |
| -# 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 |
| -# best interests to turn it off. See crbug.com/620323 |
| --optimizations !class/merging/* |
| - |
| -# Keep all runtime visible annotations |
| --keepattributes RuntimeVisibleAnnotations |
| - |
| -# Remove methods annotated with this if their return value is unused |
| --assumenosideeffects class ** { |
| - @org.chromium.base.annotations.RemovableInRelease <methods>; |
| -} |
| - |
| # TODO(aurimas): figure out why we need to keep these classes. |
| -keep class org.chromium.base.test.** { |
| *; |
| @@ -103,14 +34,6 @@ |
| *; |
| } |
| -# Keep all enum values and valueOf methods. See |
| -# http://proguard.sourceforge.net/index.html#manual/examples.html |
| -# for the reason for this. Also, see http://crbug.com/248037. |
| --keepclassmembers enum * { |
| - public static **[] values(); |
| - public static ** valueOf(java.lang.String); |
| -} |
| - |
| # Keep all Parcelables as they might be marshalled outside Chrome. |
| -keepnames class * implements android.os.Parcelable { |
| public static final ** CREATOR; |
| @@ -137,19 +60,6 @@ |
| !static final <fields>; |
| } |
| -# Allowing Proguard to change modifiers. This change shrinks the .dex size by |
| -# ~1.1%, and reduces the method count by ~4.3%. |
| --allowaccessmodification |
| - |
| -# Allows Proguard freedom in removing these log related calls. We ask for debug |
| -# and verbose logs to be stripped out in base.Log, so we are just ensuring we |
| -# get rid of all other debug/verbose logs. |
| --assumenosideeffects class android.util.Log { |
| - static *** d(...); |
| - static *** v(...); |
| - static *** isLoggable(...); |
| -} |
| - |
| # Everything below this is kept because they are referenced by the test APK. |
| -keep class android.support.v7.mediarouter.R* { |
| *; |
| @@ -191,6 +101,13 @@ |
| public *; |
| } |
| +# Keeping @VisibleForTesting and its annotated classes + methods |
| +-keep @interface org.chromium.base.VisibleForTesting |
| +-keep @org.chromium.base.VisibleForTesting class ** |
| +-keepclasseswithmembers class * { |
| + @org.chromium.base.VisibleForTesting <methods>; |
| +} |
| + |
| # Used in tests. |
| -keep class android.support.v4.view.ViewCompat { |
| public static int getLayoutDirection(android.view.View); |