• Nate Fischer's avatar
    AW: do not allow proguard to optimize ApiHelper classes · 428de580
    Nate Fischer authored
    We recently introduced a series of ApiHelperFor* classes to help us
    ensure the WebView APK's classes pass compile-time verification in order
    to avoid runtime verification (which causes logspam and startup
    penalties). However, proguard was inlining these classes in our release
    builds, which re-introduced the class verification issues.
    
    This adds an annotation to prevent inlining. The @DoNotInline
    annotation is used to configure Proguard.
    
    R=torne@chromium.org
    
          (tested on L,M,NMR1 with standalone webview and monochrome)
          android-webview-google -v --pageset-repeat=1
          (no startup penalty on L device)
          "StatusRetryVerificationAtRuntime" (ensure the fixed classes no
          longer show up)
    
    Bug: 791099
    Bug: 838702
    Test: adb logcat | grep 'Failed resolution of'
    Test: tools/perf/run_benchmark system_health.webview_startup --browser \
    Test: use oatdump after installing APK. Then, grep for
    Change-Id: I7e85718916313f03287e5f2d5fe8f51a02661f11
    Reviewed-on: https://chromium-review.googlesource.com/1109464Reviewed-by: default avatarRichard Coles <torne@chromium.org>
    Reviewed-by: default avatarBo <boliu@chromium.org>
    Reviewed-by: default avataragrieve <agrieve@chromium.org>
    Commit-Queue: Nate Fischer <ntfschr@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#569848}
    428de580
BUILD.gn 109 KB