1 # Keep annotations used by chromium to keep members referenced by native code 2 -keep class org.chromium.base.*Native* 3 -keep class org.chromium.base.JNINamespace 4 -keepclasseswithmembers class org.chromium.** { 5 @org.chromium.base.AccessedByNative <fields>; 6 } 7 -keepclasseswithmembers class org.chromium.** { 8 @org.chromium.base.*Native* <methods>; 9 } 10 11 # TODO(mef) remove unnecessary classes from base, so we don't have to preserve 12 # their methods 13 -keep class org.chromium.** { 14 native <methods>; 15 } 16 17 # Needed so that multiple optimization passes will detect annotations 18 -keepattributes *Annotation* 19 20 # Keep methods used by reflection and native code 21 -keep class org.chromium.base.UsedBy* 22 -keep @org.chromium.base.UsedBy* class * 23 -keepclassmembers class * { 24 @org.chromium.base.UsedBy* *; 25 } 26 27 # Suppress unnecessary warnings. 28 -dontnote org.chromium.net.AndroidKeyStore 29 # Objects of this type are passed around by native code, but the class 30 # is never used directly by native code. Since the class is not loaded, it does 31 # not need to be preserved as an entry point. 32 -dontnote org.chromium.net.UrlRequest$ResponseHeadersMap 33 34