blob: f427ac695781a6861f562fd6aefc3ab8612a96df [file] [log] [blame]
# 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.
# This file is for proguard flags which will be applied to apks that are being
# built to be instrumentation tested. The flags in this file should only affect
# how the instrumentation tests interact with the .apk. Do not put any flags in
# this file which might affect the correctness of the .apk.
# This line prevents optmization from being applied to either packages. We rely
# on optimizations being off to prevent inlining functions our instrumentation
# tests use.
# TODO(smaier): when buildbot scripts have been updated to not include this
# config as part of its release build, switch these lines to:
# -dontoptimize
-keepnames,allowobfuscation class com.google.android.apps.chrome.**,org.chromium.** {
*;
}
# Keeping @VisibleForTesting and its annotated classes + methods
-keep @interface org.chromium.base.VisibleForTesting
-keep @org.chromium.base.VisibleForTesting class **
-keepclasseswithmembers class * {
@org.chromium.base.VisibleForTesting <methods>;
}
# TODO(aurimas): figure out why we need to keep these classes.
-keep class org.chromium.base.test.** {
*;
}
# Everything below this is kept because they are referenced by the test APK.
-keep class android.support.v7.mediarouter.R* {
*;
}
-keep class android.support.v7.media.MediaRouteProvider** {
*;
}
-keep class android.support.v4.app.FragmentManager** {
*;
}
-keep class android.support.v4.app.DialogFragment** {
*;
}
-keep class android.support.v7.app.NotificationCompat** {
*;
}
-keep class android.support.v7.app.AlertDialog** {
*;
}
-keep class com.google.android.gms.cast.CastMediaControlIntent* {
*;
}
-keepnames class com.google.android.gms.gcm.** {
*;
}
-keepclassmembers class com.google.android.gms.gcm.TaskParams {
public <init>(java.lang.String);
}
-keepnames class jp.tomorrowkey.android.gifplayer.** {
public *;
}
# Used in tests.
-keep class android.support.v4.view.ViewCompat {
public static int getLayoutDirection(android.view.View);
}
# flingViewport is used by Android WebView and a Chrome test.
-keepclassmembers class org.chromium.content.browser.ContentViewCore {
public void flingViewport(long, int, int);
}
# Needed to compile ChromeTest.apk
-keep class android.support.customtabs.** {
*;
}
# TODO(yfriedman): Remove when crbug.com/488192 is fixed.
-dontwarn org.apache.http.conn.scheme.LayeredSocketFactory
# Needed to run ChromeTest.apk
-keepnames class com.google.android.gms.common.GoogleApiAvailability {
*;
}
# Needed for chrome_sync_shell_test_apk. Note - these do no affect chrome_apk's
# size.
-keep class org.chromium.sync.protocol.* { *; }
# These resources are referenced in tests, but not in the real application.
-keepclassmembers class org.chromium.chrome.R$id {
int webapp_splash_space;
int mr_chooser_list;
int find_toolbar;
}