Commit c36a4af6 authored by Klaus Weidner's avatar Klaus Weidner Committed by Commit Bot

Avoid strictmode.DiskReadViolation in AR initialization

ARCore's checkAvailability reads shared preferences via ArCoreContentProvider, need to
turn off strict mode to avoid failing tests that run with enforcement enabled by
default.

Bug: 1015597
Change-Id: I55023029673498455fd673185ed9153be0af5148
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1874826Reviewed-by: default avatarAlexander Cooper <alcooper@chromium.org>
Reviewed-by: default avatarPiotr Bialecki <bialpio@chromium.org>
Commit-Queue: Klaus Weidner <klausw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#708687}
parent 1c0e5701
......@@ -9,6 +9,7 @@ import android.content.Context;
import com.google.ar.core.ArCoreApk;
import org.chromium.base.StrictModeContext;
import org.chromium.base.annotations.UsedByReflection;
import org.chromium.chrome.browser.vr.ArCoreShim.Availability;
import org.chromium.chrome.browser.vr.ArCoreShim.InstallStatus;
......@@ -35,9 +36,13 @@ class ArCoreShimImpl implements ArCoreShim {
@Override
public @Availability int checkAvailability(Context applicationContext) {
ArCoreApk.Availability availability =
ArCoreApk.getInstance().checkAvailability(applicationContext);
return mapArCoreApkAvailability(availability);
// ARCore's checkAvailability reads shared preferences via ArCoreContentProvider, need to
// turn off strict mode to allow that.
try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) {
ArCoreApk.Availability availability =
ArCoreApk.getInstance().checkAvailability(applicationContext);
return mapArCoreApkAvailability(availability);
}
}
private @InstallStatus int mapArCoreApkInstallStatus(ArCoreApk.InstallStatus installStatus) {
......
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