| # Keep annotations used by chromium to keep members referenced by native code |
| -keep class org.chromium.base.annotations.*Native* |
| -keep class org.chromium.base.annotations.JNINamespace |
| -keepclasseswithmembers class org.chromium.** { |
| @org.chromium.base.annotations.AccessedByNative <fields>; |
| } |
| -keepclasseswithmembers class org.chromium.** { |
| @org.chromium.base.annotations.*Native* <methods>; |
| } |
| |
| # TODO(mef) remove unnecessary classes from base, so we don't have to preserve |
| # their methods |
| -keepclasseswithmembers class org.chromium.** { |
| native <methods>; |
| } |
| |
| # TODO(xunjieli): Find an alternative to explictly preserving public classes. |
| -keep public class org.chromium.net.* |
| |
| -keep class org.chromium.net.CronetUrlRequest$HeadersList |
| -keep class org.chromium.net.ChromiumUrlRequest$ResponseHeadersMap |
| |
| # Needed so that multiple optimization passes will detect annotations |
| -keepattributes *Annotation* |
| |
| # Keep methods used by reflection |
| -keep class org.chromium.base.annotations.UsedByReflection |
| -keep @org.chromium.base.annotations.UsedByReflection class * |
| -keepclassmembers class * { |
| @org.chromium.base.annotations.UsedByReflection *; |
| } |
| |
| # Suppress unnecessary warnings. |
| -dontnote org.chromium.net.ProxyChangeListener$ProxyReceiver |
| -dontnote org.chromium.net.AndroidKeyStore |
| # Needs 'void setTextAppearance(int)' (API level 23). |
| -dontwarn org.chromium.base.ApiCompatibilityUtils |
| # Needs 'boolean onSearchRequested(android.view.SearchEvent)' (API level 23). |
| -dontwarn org.chromium.base.WindowCallbackWrapper |
| # Generated for chrome apk and not included into cronet. |
| -dontwarn org.chromium.base.library_loader.NativeLibraries |
| # Generated for chrome apk and not included into cronet. |
| -dontwarn org.chromium.base.multidex.ChromiumMultiDexInstaller |
| # Objects of this type are passed around by native code, but the class |
| # is never used directly by native code. Since the class is not loaded, it does |
| # not need to be preserved as an entry point. |
| -dontnote org.chromium.net.UrlRequest$ResponseHeadersMap |
| |