# 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;
}
