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 { ...@@ -211,6 +211,12 @@ public class ChromeStrictMode {
threadInterceptor.ignoreExternalMethod(Violation.DETECT_DISK_READ, threadInterceptor.ignoreExternalMethod(Violation.DETECT_DISK_READ,
"android.net.ConnectivityManager#registerDefaultNetworkCallback"); "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) { public static void addExemptions(ThreadStrictModeInterceptor.Builder threadInterceptor) {
......
...@@ -16,7 +16,6 @@ import androidx.annotation.VisibleForTesting; ...@@ -16,7 +16,6 @@ import androidx.annotation.VisibleForTesting;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
import org.chromium.base.ObserverList; import org.chromium.base.ObserverList;
import org.chromium.base.StrictModeContext;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.task.PostTask; import org.chromium.base.task.PostTask;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
...@@ -227,9 +226,7 @@ public class AndroidSyncSettings { ...@@ -227,9 +226,7 @@ public class AndroidSyncSettings {
if (value == mChromeSyncEnabled || mAccount == null) return; if (value == mChromeSyncEnabled || mAccount == null) return;
mChromeSyncEnabled = value; mChromeSyncEnabled = value;
try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mContractAuthority, value); mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mContractAuthority, value);
}
notifyObservers(); notifyObservers();
} }
...@@ -246,7 +243,6 @@ public class AndroidSyncSettings { ...@@ -246,7 +243,6 @@ public class AndroidSyncSettings {
mIsSyncable = shouldBeSyncable; mIsSyncable = shouldBeSyncable;
try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
// Make account syncable if there is one. // Make account syncable if there is one.
if (shouldBeSyncable) { if (shouldBeSyncable) {
mSyncContentResolverDelegate.setIsSyncable(mAccount, mContractAuthority, 1); mSyncContentResolverDelegate.setIsSyncable(mAccount, mContractAuthority, 1);
...@@ -256,20 +252,16 @@ public class AndroidSyncSettings { ...@@ -256,20 +252,16 @@ public class AndroidSyncSettings {
} else if (mAccount != null) { } else if (mAccount != null) {
mSyncContentResolverDelegate.setIsSyncable(mAccount, mContractAuthority, 0); mSyncContentResolverDelegate.setIsSyncable(mAccount, mContractAuthority, 0);
} }
}
// Disable the syncability of Chrome for all other accounts. // Disable the syncability of Chrome for all other accounts.
AccountManagerFacadeProvider.getInstance().tryGetGoogleAccounts(accounts -> { AccountManagerFacadeProvider.getInstance().tryGetGoogleAccounts(accounts -> {
try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
for (Account account : accounts) { for (Account account : accounts) {
if (account.equals(mAccount)) continue; if (account.equals(mAccount)) continue;
if (mSyncContentResolverDelegate.getIsSyncable(account, mContractAuthority) if (mSyncContentResolverDelegate.getIsSyncable(account, mContractAuthority) <= 0) {
<= 0) {
continue; continue;
} }
mSyncContentResolverDelegate.setIsSyncable(account, mContractAuthority, 0); mSyncContentResolverDelegate.setIsSyncable(account, mContractAuthority, 0);
} }
}
}); });
} }
...@@ -283,19 +275,16 @@ public class AndroidSyncSettings { ...@@ -283,19 +275,16 @@ public class AndroidSyncSettings {
boolean oldChromeSyncEnabled = mChromeSyncEnabled; boolean oldChromeSyncEnabled = mChromeSyncEnabled;
boolean oldMasterSyncEnabled = mMasterSyncEnabled; boolean oldMasterSyncEnabled = mMasterSyncEnabled;
try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
if (mAccount != null) { if (mAccount != null) {
mIsSyncable = mIsSyncable =
mSyncContentResolverDelegate.getIsSyncable(mAccount, mContractAuthority) mSyncContentResolverDelegate.getIsSyncable(mAccount, mContractAuthority) > 0;
> 0; mChromeSyncEnabled =
mChromeSyncEnabled = mSyncContentResolverDelegate.getSyncAutomatically( mSyncContentResolverDelegate.getSyncAutomatically(mAccount, mContractAuthority);
mAccount, mContractAuthority);
} else { } else {
mIsSyncable = false; mIsSyncable = false;
mChromeSyncEnabled = false; mChromeSyncEnabled = false;
} }
mMasterSyncEnabled = mSyncContentResolverDelegate.getMasterSyncAutomatically(); mMasterSyncEnabled = mSyncContentResolverDelegate.getMasterSyncAutomatically();
}
if (mAccount != null && ProfileSyncService.get() != null if (mAccount != null && ProfileSyncService.get() != null
&& ChromeFeatureList.isEnabled( && 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