| OLD | NEW |
| 1 # Don't rename anything, it makes stack traces unintelligible. We only allow the | 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 | 2 # obfuscation pass to run so that we can discard attributes like local variable |
| 3 # tables. However, we don't want to lose out on optimizations, so although they | 3 # tables. However, we don't want to lose out on optimizations, so although they |
| 4 # can occasionally make the stack trace a bit stranger with inlining, it won't | 4 # can occasionally make the stack trace a bit stranger with inlining, it won't |
| 5 # make a big difference for the users seeing the stacktraces. We can always use | 5 # make a big difference for the users seeing the stacktraces. We can always use |
| 6 # build/android/stacktrace/java_deobfuscate.py to fix the stacktrace up for us. | 6 # build/android/stacktrace/java_deobfuscate.py to fix the stacktrace up for us. |
| 7 -keepnames,allowoptimization class *** { *; } | 7 -keepnames,allowoptimization class *** { *; } |
| 8 | 8 |
| 9 # The following chart was created on Aug. 11, 2016, to decide on 3 optimization | 9 # The following chart was created on Aug. 11, 2016, to decide on 3 optimization |
| 10 # passes. | 10 # passes. |
| 11 # optimization passes | time | .dex size | dirty memory | 11 # optimization passes | time | .dex size | dirty memory |
| 12 # ----------------------------------------------------------------- | 12 # ----------------------------------------------------------------- |
| 13 # 1 | 0:13 | 1022588 | 97772 | 13 # 1 | 0:13 | 1022588 | 97772 |
| 14 # 2 | 0:17 | 1019200 | 97472 | 14 # 2 | 0:17 | 1019200 | 97472 |
| 15 # 3 | 0:18 | 1018472 | 97424 | 15 # 3 | 0:18 | 1018472 | 97424 |
| 16 # 4 | 0:21 | 1018392 | 97416 | 16 # 4 | 0:21 | 1018392 | 97416 |
| 17 # 5 | 0:26 | 1018360 | 97416 | 17 # 5 | 0:26 | 1018360 | 97416 |
| 18 -optimizationpasses 3 | 18 -optimizationpasses 3 |
| 19 | 19 |
| 20 # Class merging messes up stacktraces beyond the point of them being | 20 # Class merging messes up stacktraces beyond the point of them being |
| 21 # deobfuscatable. If turned on, it would give us a 1% reduction in .dex size. | 21 # deobfuscatable. If turned on, it would give us a 1% reduction in .dex size. |
| 22 -optimizations !class/merging/* | 22 -optimizations !class/merging/* |
| 23 | 23 |
| 24 # Allowing Proguard to change modifiers. This change shrinks the .dex size by | 24 # Allowing Proguard to change modifiers. This change shrinks the .dex size by |
| 25 # 3.7%. | 25 # 3.7%. |
| 26 -allowaccessmodification | 26 -allowaccessmodification |
| 27 | 27 |
| 28 # Allows Proguard freedom in removing these log related calls. We ask for debug |
| 29 # and verbose logs to be stripped out in base.Log, so we are just ensuring we |
| 30 # get rid of all other debug/verbose logs. |
| 31 -assumenosideeffects class android.util.Log { |
| 32 static *** d(...); |
| 33 static *** v(...); |
| 34 static *** isLoggable(...); |
| 35 } |
| 36 |
| 28 # Keep the factory and its public members; it's the main entry point used by the | 37 # Keep the factory and its public members; it's the main entry point used by the |
| 29 # framework. | 38 # framework. |
| 30 -keep class com.android.webview.chromium.WebViewChromiumFactoryProvider { | 39 -keep class com.android.webview.chromium.WebViewChromiumFactoryProvider { |
| 31 public *; | 40 public *; |
| 32 } | 41 } |
| 33 | 42 |
| 34 # This is the main entry point for APIs. It is kept to make developing with | 43 # This is the main entry point for APIs. It is kept to make developing with |
| 35 # unreleased Android easier. | 44 # unreleased Android easier. |
| 36 -keep class com.android.webview.chromium.WebViewChromium { | 45 -keep class com.android.webview.chromium.WebViewChromium { |
| 37 public *; | 46 public *; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 #TODO(hush): remove after N release. crbug.com/546762 | 86 #TODO(hush): remove after N release. crbug.com/546762 |
| 78 -keep class com.android.webview.chromium.ContentSettingsAdapter { | 87 -keep class com.android.webview.chromium.ContentSettingsAdapter { |
| 79 public void setDisabledActionModeMenuItems(int); | 88 public void setDisabledActionModeMenuItems(int); |
| 80 public int getDisabledActionModeMenuItems(); | 89 public int getDisabledActionModeMenuItems(); |
| 81 } | 90 } |
| 82 | 91 |
| 83 # Ignore notes and warnings about the support library, which uses reflection and | 92 # Ignore notes and warnings about the support library, which uses reflection and |
| 84 # may reference classes no longer in the SDK. | 93 # may reference classes no longer in the SDK. |
| 85 -dontnote android.support.** | 94 -dontnote android.support.** |
| 86 -dontwarn android.support.** | 95 -dontwarn android.support.** |
| OLD | NEW |