Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / android / java / proguard.flags
blob4abd828e9dfb17b9ffed879a22d17450d305e9c4
1 # Keep line number information, useful for stack traces.
2 -keepattributes SourceFile,LineNumberTable
4 # Keep the annotations.
5 -keep @interface ***
7 # Disable obfuscation for the following two packages.
8 -keepnames class com.google.android.apps.chrome.**,org.chromium.** {
9   *;
12 # Keep all the primitive and String constants for for the following two packages.
13 -keepclassmembers class com.google.android.apps.chrome.**,org.chromium.** {
14   !private static final % *;
15   !private static final java.lang.String *;
18 # Keep code annotated with the following annotations.
19 -keep class com.google.android.apps.chrome.**,org.chromium.** {
20   @**.AccessedByNative <fields>;
21   @**.CalledByNative <methods>;
22   @**.CalledByNativeUnchecked <methods>;
23   @**.JavascriptInterface <methods>;
24   @**.NativeCall <methods>;
25   @**.UsedByReflection <methods>;
26   @**.VisibleForTesting *;
27   native <methods>;
30 # Keep all runtime visible annotations
31 -keepattributes RuntimeVisibleAnnotations
33 # Remove methods annotated with this if their return value is unused
34 -assumenosideeffects class * {
35   @org.chromium.base.annotations.RemovableInRelease <methods>;
38 # TODO(aurimas): figure out why we need to keep these classes.
39 -keep class org.chromium.base.test.** {
40   *;
43 # Keep protobuf code used via reflection
44 # TODO(tonyg): Removing these -keeps results in new notes, but nothing seems to
45 # break. This exclusion costs almost 100k of dex size so consider replacing it
46 # with a -dontnote after more testing.
47 -keep class com.google.protobuf.** {
48   *** newBuilder();
49   *** parseFrom(java.io.InputStream);
52 # Keep the client interfaces for cacheinvalidation as they are used as
53 # argument types for some of our code that we're keeping and proguard warns
54 # otherwise.
55 -keep class com.google.ipc.invalidation.external.client.** {
56   *;
59 # Keep all enum values and valueOf methods. See
60 # http://proguard.sourceforge.net/index.html#manual/examples.html
61 # for the reason for this. Also, see http://crbug.com/248037.
62 -keepclassmembers enum * {
63     public static **[] values();
64     public static ** valueOf(java.lang.String);
67 # Keep all Parcelables as they might be marshalled outside Chrome.
68 -keepnames class * implements android.os.Parcelable {
69    public static final ** CREATOR;
72 # SearchView is used in website_preferences_menu.xml and is constructed by
73 # Android using reflection.
74 -keep class android.support.v7.widget.SearchView {
75   public <init>(...);
78 # Google Play Services warnings are about its resources.
79 -dontwarn com.google.android.gms.R**
81 # TODO(yfriedman): Remove when crbug.com/488192 is fixed.
82 -dontwarn org.apache.http.**
84 # The support library contains references to newer platform versions.
85 # Don't warn about those in case this app is linking against an older
86 # platform version.  We know about them, and they are safe.
87 -dontwarn android.support.**
89 # Everything below this is kept because they are referenced by the test APK.
90 -dontwarn javax.annotation.Nullable
92 -keep class android.support.v7.mediarouter.R* {
93   *;
96 -keep class android.support.v7.media.MediaRouteProvider** {
97   *;
100 -keep class android.support.v4.app.FragmentManager** {
101   *;
104 -keep class android.support.v4.app.DialogFragment** {
105   *;
108 -keep class android.support.v7.app.AlertDialog** {
109   *;
112 -keep class com.google.android.gms.cast.CastMediaControlIntent* {
113   *;
116 # Used in tests.
117 -keep class android.support.v4.view.ViewCompat {
118   public static int getLayoutDirection(android.view.View);
121 # flingViewport is used by Android WebView and a Chrome test.
122 -keepclassmembers class org.chromium.content.browser.ContentViewCore {
123   public void flingViewport(long, int, int);
126 # TODO(aurimas): remove this when Google Play Services no longer uses setLatestEventInfo call
127 # that was deprecated in Android M. It is save to suppress this according to b/18510449.
128 -dontwarn android.app.Notification
130 # IntentUtils uses reflection to access a method that is hidden until API level 18.
131 -dontnote org.chromium.chrome.browser.util.IntentUtils
133 # Needed to compile ChromeTest.apk
134 -keep class android.support.customtabs.ICustomTabsCallback** {
135   *;