From 0757b44a3f68f658e14782c6dc7c1f5c74f36f95 Mon Sep 17 00:00:00 2001 From: ag2s20150909 Date: Thu, 15 Jul 2021 21:48:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Cronet=20=E6=B7=B7=E6=B7=86?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/proguard-rules.pro | 138 ++--------------------------------------- 1 file changed, 5 insertions(+), 133 deletions(-) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index aedd4a7c4..a2949e6bf 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -224,136 +224,8 @@ } -# Copyright 2016 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# Contains flags that can be safely shared with Cronet, and thus would be -# appropriate for third-party apps to include. - -# Keep all annotation related attributes that can affect runtime --keepattributes RuntimeVisible*Annotations --keepattributes AnnotationDefault - -# Keep the annotations, because if we don't, the ProGuard rules that use them -# will not be respected. These classes then show up in our final dex, which we -# do not want - see crbug.com/628226. --keep @interface org.chromium.base.annotations.AccessedByNative --keep @interface org.chromium.base.annotations.CalledByNative --keep @interface org.chromium.base.annotations.CalledByNativeUnchecked --keep @interface org.chromium.base.annotations.DoNotInline --keep @interface org.chromium.base.annotations.RemovableInRelease --keep @interface org.chromium.base.annotations.UsedByReflection - -# Android support library annotations will get converted to androidx ones -# which we want to keep. --keep @interface androidx.annotation.Keep --keep @androidx.annotation.Keep class * --keepclasseswithmembers class * { - @androidx.annotation.Keep ; -} --keepclasseswithmembers class * { - @androidx.annotation.Keep ; -} - -# Keeps for class level annotations. --keep @org.chromium.base.annotations.UsedByReflection class ** {} - -# Keeps for method level annotations. --keepclasseswithmembers class ** { - @org.chromium.base.annotations.AccessedByNative ; -} --keepclasseswithmembers,includedescriptorclasses class ** { - @org.chromium.base.annotations.CalledByNative ; -} --keepclasseswithmembers,includedescriptorclasses class ** { - @org.chromium.base.annotations.CalledByNativeUnchecked ; -} --keepclasseswithmembers class ** { - @org.chromium.base.annotations.UsedByReflection ; -} --keepclasseswithmembers class ** { - @org.chromium.base.annotations.UsedByReflection ; -} -# Even unused methods kept due to explicit jni registration: -# https://crbug.com/688465. --keepclasseswithmembers,includedescriptorclasses class !org.chromium.base.library_loader.**,** { - native ; -} --keepclasseswithmembernames,includedescriptorclasses class org.chromium.base.library_loader.** { - native ; -} - --assumenosideeffects class ** { - # Remove @RemovableInRelease methods so long as return values are unused. - @org.chromium.base.annotations.RemovableInRelease ; -} - --assumevalues class ** { - # Remove object @RemovableInRelease methods even when return value is used. - # Note: ** in return type does not match primitives. - @org.chromium.base.annotations.RemovableInRelease ** *(...) return null; - # Remove boolean @RemovableInRelease methods even when return value is used. - @org.chromium.base.annotations.RemovableInRelease boolean *(...) return false; -} - -# Never inline classes or methods with this annotation, but allow shrinking and -# obfuscation. --if @org.chromium.base.annotations.DoNotInline class * { - *** *(...); -} --keep,allowobfuscation class <1> { - *** <2>(...); -} --keepclassmembers,allowobfuscation class * { - @org.chromium.base.annotations.DoNotInline ; -} - -# Keep all CREATOR fields within Parcelable that are kept. --keepclassmembers class org.chromium.** implements android.os.Parcelable { - public static *** CREATOR; -} - -# Don't obfuscate Parcelables as they might be marshalled outside Chrome. -# If we annotated all Parcelables that get put into Bundles other than -# for saveInstanceState (e.g. PendingIntents), then we could actually keep the -# names of just those ones. For now, we'll just keep them all. --keepnames class org.chromium.** implements android.os.Parcelable {} - -# Keep all enum values and valueOf methods. See -# http://proguard.sourceforge.net/index.html#manual/examples.html -# for the reason for this. Also, see http://crbug.com/248037. --keepclassmembers enum org.chromium.** { - public static **[] values(); -} -# Proguard config for apps that depend on cronet_impl_native_java.jar. - -# This constructor is called using the reflection from Cronet API (cronet_api.jar). --keep class org.chromium.net.impl.NativeCronetProvider { - public (android.content.Context); -} - -# Suppress unnecessary warnings. --dontnote org.chromium.net.ProxyChangeListener$ProxyReceiver --dontnote org.chromium.net.AndroidKeyStore -# Needs 'void setTextAppearance(int)' (API level 23). --dontwarn org.chromium.base.ApiCompatibilityUtils -# Needs 'boolean onSearchRequested(android.view.SearchEvent)' (API level 23). --dontwarn org.chromium.base.WindowCallbackWrapper - -# Generated for chrome apk and not included into cronet. --dontwarn org.chromium.base.library_loader.NativeLibraries --dontwarn org.chromium.base.multidex.ChromiumMultiDexInstaller --dontwarn org.chromium.base.library_loader.LibraryLoader --dontwarn org.chromium.base.SysUtils - -# Objects of this type are passed around by native code, but the class -# is never used directly by native code. Since the class is not loaded, it does -# not need to be preserved as an entry point. --dontnote org.chromium.net.UrlRequest$ResponseHeadersMap -# https://android.googlesource.com/platform/sdk/+/marshmallow-mr1-release/files/proguard-android.txt#54 --dontwarn android.support.** - -# This class should be explicitly kept to avoid failure if -# class/merging/horizontal proguard optimization is enabled. --keep class org.chromium.base.CollectionUtil \ No newline at end of file +# Keep all of Cronet API as it's used by the Cronet module. +-keep public class org.chromium.net.* { + !private *; + *; +} \ No newline at end of file