Commit ba91c305 authored by Peter Kotwicz's avatar Peter Kotwicz Committed by Commit Bot

Move AndroidSyncSettings strict mode exception to ChromeStrictMode.java

BUG=None

Change-Id: I094e2cb0edc01312f1200773e09bc842727b78ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2453925Reviewed-by: default avatarAndrew Grieve <agrieve@chromium.org>
Commit-Queue: Peter Kotwicz <pkotwicz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#815753}
parent b88f7241
......@@ -211,6 +211,12 @@ public class ChromeStrictMode {
threadInterceptor.ignoreExternalMethod(Violation.DETECT_DISK_READ,
"android.net.ConnectivityManager#registerDefaultNetworkCallback");
}
// crbug.com/1133401
threadInterceptor.ignoreExternalMethod(
Violation.DETECT_DISK_IO, "android.content.ContentResolver#setIsSyncable");
threadInterceptor.ignoreExternalMethod(
Violation.DETECT_DISK_IO, "android.content.ContentResolver#setSyncAutomatically");
}
public static void addExemptions(ThreadStrictModeInterceptor.Builder threadInterceptor) {
......
......@@ -16,7 +16,6 @@ import androidx.annotation.VisibleForTesting;
import org.chromium.base.ContextUtils;
import org.chromium.base.ObserverList;
import org.chromium.base.StrictModeContext;
import org.chromium.base.ThreadUtils;
import org.chromium.base.task.PostTask;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
......@@ -227,9 +226,7 @@ public class AndroidSyncSettings {
if (value == mChromeSyncEnabled || mAccount == null) return;
mChromeSyncEnabled = value;
try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mContractAuthority, value);
}
notifyObservers();
}
......@@ -246,7 +243,6 @@ public class AndroidSyncSettings {
mIsSyncable = shouldBeSyncable;
try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
// Make account syncable if there is one.
if (shouldBeSyncable) {
mSyncContentResolverDelegate.setIsSyncable(mAccount, mContractAuthority, 1);
......@@ -256,20 +252,16 @@ public class AndroidSyncSettings {
} else if (mAccount != null) {
mSyncContentResolverDelegate.setIsSyncable(mAccount, mContractAuthority, 0);
}
}
// Disable the syncability of Chrome for all other accounts.
AccountManagerFacadeProvider.getInstance().tryGetGoogleAccounts(accounts -> {
try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
for (Account account : accounts) {
if (account.equals(mAccount)) continue;
if (mSyncContentResolverDelegate.getIsSyncable(account, mContractAuthority)
<= 0) {
if (mSyncContentResolverDelegate.getIsSyncable(account, mContractAuthority) <= 0) {
continue;
}
mSyncContentResolverDelegate.setIsSyncable(account, mContractAuthority, 0);
}
}
});
}
......@@ -283,19 +275,16 @@ public class AndroidSyncSettings {
boolean oldChromeSyncEnabled = mChromeSyncEnabled;
boolean oldMasterSyncEnabled = mMasterSyncEnabled;
try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
if (mAccount != null) {
mIsSyncable =
mSyncContentResolverDelegate.getIsSyncable(mAccount, mContractAuthority)
> 0;
mChromeSyncEnabled = mSyncContentResolverDelegate.getSyncAutomatically(
mAccount, mContractAuthority);
mSyncContentResolverDelegate.getIsSyncable(mAccount, mContractAuthority) > 0;
mChromeSyncEnabled =
mSyncContentResolverDelegate.getSyncAutomatically(mAccount, mContractAuthority);
} else {
mIsSyncable = false;
mChromeSyncEnabled = false;
}
mMasterSyncEnabled = mSyncContentResolverDelegate.getMasterSyncAutomatically();
}
if (mAccount != null && ProfileSyncService.get() != null
&& ChromeFeatureList.isEnabled(
......
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