Commit 3443fed0 authored by Tobias Sargeant's avatar Tobias Sargeant Committed by Commit Bot

Add proguard rules for BaseGmsClient to keep Api$Client methods

BaseGmsClient provides the methods required for its subclass GmsClient
to correctly implement Api$Client. Those methods appear to be removed by
R8, leading to an AbstractMethodError calling dump.

Mark all the methods that are currently kept in the interface as -keep
in proguard configs.

Bug: 1002847
Test: Decompile to verify methods not removed.
Test: Manually verify that crbug/1002847 no longer reproduces
Change-Id: I22b0610bdb49df40645517c0d428a587c3d1563f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1805655
Commit-Queue: Tobias Sargeant <tobiasjs@chromium.org>
Reviewed-by: default avatarRichard Coles <torne@chromium.org>
Reviewed-by: default avatarSam Maier <smaier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#696865}
parent 12903281
......@@ -63,3 +63,14 @@
# Trichrome builds don't include a native library list in the main APK; it's
# picked up from the library APK at runtime.
-dontwarn org.chromium.base.library_loader.NativeLibraries
# Workaround for crbug/1002847. Methods of BaseGmsClient are incorrectly
# removed even though they are required for the derived class GmsClient
# to correctly implement Api$Client.
# TODO: remove once crbug/1002847 resolved.
-keep public class com.google.android.gms.common.internal.BaseGmsClient {
public void disconnect();
public void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]);
public int getMinApkVersion();
public boolean requiresSignIn();
}
......@@ -67,6 +67,17 @@
# picked up from the library APK at runtime.
-dontwarn org.chromium.base.library_loader.NativeLibraries
# Workaround for crbug/1002847. Methods of BaseGmsClient are incorrectly
# removed even though they are required for the derived class GmsClient
# to correctly implement Api$Client.
# TODO: remove once crbug/1002847 resolved.
-keep public class com.google.android.gms.common.internal.BaseGmsClient {
public void disconnect();
public void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]);
public int getMinApkVersion();
public boolean requiresSignIn();
}
################################################################################
# ../../android_webview/support_library/boundary_interfaces/proguard.flags
################################################################################
......@@ -362,6 +373,17 @@
*** build() return null;
}
# Workaround for crbug/1002847. Methods of BaseGmsClient are incorrectly
# removed even though they are required for the derived class GmsClient
# to correctly implement Api$Client.
# TODO: remove once crbug/1002847 resolved.
-keep public class com.google.android.gms.common.internal.BaseGmsClient {
public void disconnect();
public void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]);
public int getMinApkVersion();
public boolean requiresSignIn();
}
################################################################################
# ../../third_party/android_deps/support_mediarouter.flags
################################################################################
......
......@@ -70,3 +70,14 @@
public <clinit>();
*** build() return null;
}
# Workaround for crbug/1002847. Methods of BaseGmsClient are incorrectly
# removed even though they are required for the derived class GmsClient
# to correctly implement Api$Client.
# TODO: remove once crbug/1002847 resolved.
-keep public class com.google.android.gms.common.internal.BaseGmsClient {
public void disconnect();
public void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[]);
public int getMinApkVersion();
public boolean requiresSignIn();
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment