# 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 we'd like all Chromium .apks to use. # Keep line number information, useful for stack traces. -keepattributes SourceFile,LineNumberTable # Keep all CREATOR fields within Parcelable that are kept. -keepclassmembers class * 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 * 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 * { public static **[] values(); } # Allows Proguard freedom in removing these log related calls. We ask for debug # and verbose logs to be stripped out in base.Log, so we are just ensuring we # get rid of all other debug/verbose logs. -assumenosideeffects class android.util.Log { static *** d(...); static *** v(...); static *** isLoggable(...); } # The following chart was created on July 20, 2016, to decide on 3 optimization # passes for Chrome. # optimization passes | time | .dex size | dirty memory per process # ----------------------------------------------------------------- # 1 | 0:48 | 5805676 | 488972 # 2 | 1:07 | 5777376 | 487092 # 3 | 1:24 | 5772192 | 486596 # 4 | 1:42 | 5771124 | 486484 # 5 | 1:56 | 5770504 | 486432 -optimizationpasses 3 # Class merging messes up stacktraces beyond the point of them being # deobfuscatable. If turned on, it would give us a 2% reduction in .dex size. -optimizations !class/merging/* # Allowing Proguard to change modifiers. This change shrinks the .dex size by # ~1%, and reduces the method count by ~4%. -allowaccessmodification # The support library contains references to newer platform versions. # Don't warn about those in case this app is linking against an older # platform version. We know about them, and they are safe. -dontwarn android.support.**