Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / android_webview / apk / java / proguard.flags
blob8dbce53909b093704e15e231556ca6ac65c23ad4
1 # Don't rename anything, it makes stack traces unintelligible. We only allow the
2 # obfuscation pass to run so that we can discard attributes like local variable
3 # tables.
4 -keepnames class *** { *; }
6 # Keep source file and line number information for stack traces.
7 -keepattributes SourceFile,LineNumberTable
9 # Keep all runtime visible annotations.
10 -keepattributes RuntimeVisibleAnnotations
12 # Disable optimization as this causes proguard to remove seemingly random stuff,
13 # including things explicitly kept in this configuration.
14 -dontoptimize
16 # Keep the factory and its public members; it's the main entry point used by the
17 # framework.
18 -keep class com.android.webview.chromium.WebViewChromiumFactoryProvider {
19     public *;
22 # Keep JNI interfaces.
23 -keepclasseswithmembers class com.android.webview.chromium.**,org.chromium.** {
24   @**.AccessedByNative <fields>;
26 -keepclasseswithmembers class com.android.webview.chromium.**,org.chromium.** {
27   @**.CalledByNative <methods>;
29 -keepclasseswithmembers class com.android.webview.chromium.**,org.chromium.** {
30   @**.CalledByNativeUnchecked <methods>;
32 -keepclasseswithmembers class com.android.webview.chromium.**,org.chromium.** {
33   native <methods>;
36 # Keep things explicitly marked as used by reflection
37 -keepclasseswithmembers class com.android.webview.chromium.**,org.chromium.** {
38   @**.UsedByReflection *;
41 # Linker dynamically casts to $TestRunner when running tests. We don't run these
42 # tests in WebView.
43 -dontnote org.chromium.base.library_loader.Linker$TestRunner
45 # Don't note about the API 21 compatibility code which references various
46 # hidden APIs via reflection.
47 -dontnote com.android.webview.chromium.WebViewDelegateFactory$Api21CompatibilityDelegate
49 # DefaultAndroidKeyStore uses reflection to access internal OpenSSL state.
50 -dontnote org.chromium.net.DefaultAndroidKeyStore
52 # MediaPlayerBridge uses reflection to access internal metadata.
53 -dontnote org.chromium.media.MediaPlayerBridge
55 # ProxyChangeListener$ProxyReceiver uses reflection to access internal
56 # android.net.ProxyProperties.
57 -dontnote org.chromium.net.ProxyChangeListener$ProxyReceiver
59 # Silence warnings about reflection used to check for onShow/HideCustomView.
60 # This class is not really kept since it's in a library jar.
61 -keep class android.webkit.WebChromeClient {
62   void onShowCustomView(...);
63   void onHideCustomView();
66 # Accessed via reflection but not present in all builds
67 -keep class com.android.webview.chromium.Drp {
68   public java.lang.String KEY;
70 -dontnote com.android.webview.chromium.Drp
72 # Keep framework support for SmartClip.
73 -keep class com.android.webview.chromium.WebViewChromium {
74   public void extractSmartClipData(int,int,int,int);
75   public void setSmartClipResultHandler(android.os.Handler);
78 # Ignore notes and warnings about the support library, which uses reflection and
79 # may reference classes no longer in the SDK.
80 -dontnote android.support.**
81 -dontwarn android.support.**
83 # Keep all enum values and valueOf methods. See
84 # http://proguard.sourceforge.net/index.html#manual/examples.html
85 # for the reason for this. Also, see http://crbug.com/248037.
86 -keepclassmembers enum * {
87     public static **[] values();
88     public static ** valueOf(java.lang.String);
91 # Remove when ViewStructure is no longer duplicated (crbug.com/513229)
92 -dontwarn android.view.*
93 -dontwarn android.app.assist.*
94 -dontwarn android.webkit.*