| # 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. |
| |
| -keepclassmembers class org.chromium.android_webview.AwPdfExporter { |
| android.view.ViewGroup mContainerView; |
| } |
| |
| # 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; |
| } |