# 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.** { *; } # Keep all the primitive and String constants for for the following two packages. -keepclassmembers class com.google.android.apps.chrome.**,org.chromium.** { !private static final % *; !private static final java.lang.String *; } # Keep code annotated with the following annotations. -keep class com.google.android.apps.chrome.**,org.chromium.** { @**.AccessedByNative ; @**.CalledByNative ; @**.CalledByNativeUnchecked ; @**.JavascriptInterface ; @**.NativeCall ; @**.UsedByReflection ; @**.VisibleForTesting *; native ; } # 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 ; } # TODO(aurimas): figure out why we need to keep these classes. -keep class org.chromium.base.test.** { *; } # Keep protobuf code used via reflection # TODO(tonyg): Removing these -keeps results in new notes, but nothing seems to # break. This exclusion costs almost 100k of dex size so consider replacing it # with a -dontnote after more testing. -keep class com.google.protobuf.** { *** newBuilder(); *** parseFrom(java.io.InputStream); } # Keep the client interfaces for cacheinvalidation as they are used as # argument types for some of our code that we're keeping and proguard warns # otherwise. -keep class com.google.ipc.invalidation.external.client.** { *; } # 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; } # SearchView is used in website_preferences_menu.xml and is constructed by # Android using reflection. -keep class android.support.v7.widget.SearchView { public (...); } # Google Play Services warnings are about its resources. -dontwarn com.google.android.gms.R** # TODO(yfriedman): Remove when crbug.com/488192 is fixed. -dontwarn org.apache.http.** # The support library contains references to newer platform versions. # Don't warn about those in case this app is linking against an older # platform version. We know about them, and they are safe. -dontwarn android.support.** # Everything below this is kept because they are referenced by the test APK. -dontwarn javax.annotation.Nullable -keep class android.support.v7.mediarouter.R* { *; } -keep class android.support.v7.media.MediaRouteProvider** { *; } -keep class android.support.v4.app.FragmentManager** { *; } -keep class android.support.v4.app.DialogFragment** { *; } -keep class android.support.v7.app.AlertDialog** { *; } -keep class com.google.android.gms.cast.CastMediaControlIntent* { *; } -keepnames class com.google.android.gms.gcm.** { *; } -keepnames class jp.tomorrowkey.android.gifplayer.** { public *; } # Used in tests. -keep class android.support.v4.view.ViewCompat { public static int getLayoutDirection(android.view.View); } # flingViewport is used by Android WebView and a Chrome test. -keepclassmembers class org.chromium.content.browser.ContentViewCore { public void flingViewport(long, int, int); } # TODO(aurimas): remove this when Google Play Services no longer uses setLatestEventInfo call # that was deprecated in Android M. It is save to suppress this according to b/18510449. -dontwarn android.app.Notification # IntentUtils uses reflection to access a method that is hidden until API level 18. -dontnote org.chromium.chrome.browser.util.IntentUtils # Needed to compile ChromeTest.apk -keep class android.support.customtabs.ICustomTabsCallback** { *; } # Needed to run ChromeTest.apk -keepnames class com.google.android.gms.common.GoogleApiAvailability { *; } #-keep public class android.net.http.SslCertificate #-keep public class android.webkit.WebVie #-dontwarn android.webkit.WebView -dontwarn android.net.http.SslCertificate # Needed for assertions in BaseChromiumApplication. # TODO(twellington): Remove these two lines when support for detecting a debug # build lands (https://codereview.chromium.org/1597273005/). -keep class android.support.v7.app.ToolbarActionBar$ToolbarCallbackWrapper {*;} -keep class android.support.v7.internal.app.ToolbarActionBar$ToolbarCallbackWrapper {*;}