1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54

android_webview / nonembedded / java / proguard.flags [blame]

# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Keep the factory and its public members; it's the main entry point used by the
# framework. Also keep the factory's constructors as some things are using them
# via reflection; crbug.com/1462346
-keep class com.android.webview.chromium.WebViewChromiumFactoryProvider {
    public *;
    <init>(...);
}
-keep class com.android.webview.chromium.WebViewChromiumFactoryProviderFor* {
    public *;
    <init>(...);
}

-keep class * implements android.webkit.WebViewFactoryProvider$Statics {
    *;
}

-keep class com.android.webview.chromium.ContentSettingsAdapter {
    public *;
}

-keep class com.android.webview.chromium.WebViewDatabaseAdapter {
  public *;
}

# This is the main entry point for APIs. It is kept to make developing with
# unreleased Android easier.
-keep class com.android.webview.chromium.WebViewChromium {
  public *;
}

# This rule prevents class merging on R$* resource classes (for example, R$anim,
# R$styleable, R$bool). This causes issues for WebView when unused resource
# stripping, since in WebView we are forced to detect which resources are unused
# by scanning the dex file for R$<res_type>.<res_name>. Having the R$* classes
# being merged together means that R$anim.foo may now be found in R$bool.foo,
# and this mistakenly will mark the foo resouce to be removed. More details in
# crbug.com/1348329.
-keep,allowaccessmodification,allowobfuscation,allowshrinking class **.R$*

# Functor classes with native methods implemented in Android.
-keep class com.android.webview.chromium.DrawFunctor
-keep class com.android.webview.chromium.DrawGLFunctor
-keep class com.android.webview.chromium.GraphicsUtils

# The lock file object must be kept explicitly to avoid it being optimized
# away and the lock released by the object's finalizer.
-keep class org.chromium.android_webview.AwDataDirLock {
    java.nio.channels.FileLock sExclusiveFileLock;
    java.io.RandomAccessFile sLockFile;
}