0

Conditional keeps for verifies stuff

Bug: 1094569
Change-Id: I306f3831b204968fa6c1066b8e522d88c19fbe26
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2246927
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Sam Maier <smaier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#778781}
This commit is contained in:
Sam Maier
2020-06-16 14:14:39 +00:00
committed by Commit Bot
parent 35f2c3eb55
commit 57aa84017e
3 changed files with 38 additions and 20 deletions
base/android/proguard
build/android/gyp
chrome/android/java

@@ -70,11 +70,11 @@
# Never inline classes or methods with this annotation, but allow shrinking and # Never inline classes or methods with this annotation, but allow shrinking and
# obfuscation. # obfuscation.
-keepclassmembers,allowobfuscation,allowoptimization @org.chromium.base.annotations.DoNotInline class ** { -if @org.chromium.base.annotations.DoNotInline class * {
<methods>; *** *(...);
} }
-keepclassmembers,allowobfuscation,allowoptimization class ** { -keep,allowobfuscation class <1> {
@org.chromium.base.annotations.DoNotInline <methods>; *** <2>(...);
} }
# Keep all CREATOR fields within Parcelable that are kept. # Keep all CREATOR fields within Parcelable that are kept.

@@ -472,8 +472,11 @@ def _CreateDynamicConfig(options):
if api_level > _min_api: if api_level > _min_api:
ret.append('-keep @interface %s' % annotation_name) ret.append('-keep @interface %s' % annotation_name)
ret.append("""\ ret.append("""\
-keepclassmembers,allowobfuscation,allowoptimization @%s class ** { -if @%s class * {
<methods>; *** *(...);
}
-keep,allowobfuscation class <1> {
*** <2>(...);
}""" % annotation_name) }""" % annotation_name)
ret.append("""\ ret.append("""\
-keepclassmembers,allowobfuscation,allowoptimization class ** { -keepclassmembers,allowobfuscation,allowoptimization class ** {

@@ -252,11 +252,11 @@
# Never inline classes or methods with this annotation, but allow shrinking and # Never inline classes or methods with this annotation, but allow shrinking and
# obfuscation. # obfuscation.
-keepclassmembers,allowobfuscation,allowoptimization @org.chromium.base.annotations.DoNotInline class ** { -if @org.chromium.base.annotations.DoNotInline class * {
<methods>; *** *(...);
} }
-keepclassmembers,allowobfuscation,allowoptimization class ** { -keep,allowobfuscation class <1> {
@org.chromium.base.annotations.DoNotInline <methods>; *** <2>(...);
} }
# Keep all CREATOR fields within Parcelable that are kept. # Keep all CREATOR fields within Parcelable that are kept.
@@ -794,36 +794,51 @@
################################################################################ ################################################################################
# THIS LINE WAS OMITTED # THIS LINE WAS OMITTED
-keep @interface org.chromium.base.annotations.VerifiesOnNMR1 -keep @interface org.chromium.base.annotations.VerifiesOnNMR1
-keepclassmembers,allowobfuscation,allowoptimization @org.chromium.base.annotations.VerifiesOnNMR1 class ** { -if @org.chromium.base.annotations.VerifiesOnNMR1 class * {
<methods>; *** *(...);
}
-keep,allowobfuscation class <1> {
*** <2>(...);
} }
-keepclassmembers,allowobfuscation,allowoptimization class ** { -keepclassmembers,allowobfuscation,allowoptimization class ** {
@org.chromium.base.annotations.VerifiesOnNMR1 <methods>; @org.chromium.base.annotations.VerifiesOnNMR1 <methods>;
} }
-keep @interface org.chromium.base.annotations.VerifiesOnO -keep @interface org.chromium.base.annotations.VerifiesOnO
-keepclassmembers,allowobfuscation,allowoptimization @org.chromium.base.annotations.VerifiesOnO class ** { -if @org.chromium.base.annotations.VerifiesOnO class * {
<methods>; *** *(...);
}
-keep,allowobfuscation class <1> {
*** <2>(...);
} }
-keepclassmembers,allowobfuscation,allowoptimization class ** { -keepclassmembers,allowobfuscation,allowoptimization class ** {
@org.chromium.base.annotations.VerifiesOnO <methods>; @org.chromium.base.annotations.VerifiesOnO <methods>;
} }
-keep @interface org.chromium.base.annotations.VerifiesOnOMR1 -keep @interface org.chromium.base.annotations.VerifiesOnOMR1
-keepclassmembers,allowobfuscation,allowoptimization @org.chromium.base.annotations.VerifiesOnOMR1 class ** { -if @org.chromium.base.annotations.VerifiesOnOMR1 class * {
<methods>; *** *(...);
}
-keep,allowobfuscation class <1> {
*** <2>(...);
} }
-keepclassmembers,allowobfuscation,allowoptimization class ** { -keepclassmembers,allowobfuscation,allowoptimization class ** {
@org.chromium.base.annotations.VerifiesOnOMR1 <methods>; @org.chromium.base.annotations.VerifiesOnOMR1 <methods>;
} }
-keep @interface org.chromium.base.annotations.VerifiesOnP -keep @interface org.chromium.base.annotations.VerifiesOnP
-keepclassmembers,allowobfuscation,allowoptimization @org.chromium.base.annotations.VerifiesOnP class ** { -if @org.chromium.base.annotations.VerifiesOnP class * {
<methods>; *** *(...);
}
-keep,allowobfuscation class <1> {
*** <2>(...);
} }
-keepclassmembers,allowobfuscation,allowoptimization class ** { -keepclassmembers,allowobfuscation,allowoptimization class ** {
@org.chromium.base.annotations.VerifiesOnP <methods>; @org.chromium.base.annotations.VerifiesOnP <methods>;
} }
-keep @interface org.chromium.base.annotations.VerifiesOnQ -keep @interface org.chromium.base.annotations.VerifiesOnQ
-keepclassmembers,allowobfuscation,allowoptimization @org.chromium.base.annotations.VerifiesOnQ class ** { -if @org.chromium.base.annotations.VerifiesOnQ class * {
<methods>; *** *(...);
}
-keep,allowobfuscation class <1> {
*** <2>(...);
} }
-keepclassmembers,allowobfuscation,allowoptimization class ** { -keepclassmembers,allowobfuscation,allowoptimization class ** {
@org.chromium.base.annotations.VerifiesOnQ <methods>; @org.chromium.base.annotations.VerifiesOnQ <methods>;