Commit 6e26494d authored by bsazonov's avatar bsazonov Committed by Commit bot

Fixed permission check in SystemAccountManagerDelegate.updateCredentials

Checking hasGetAccountsPermission before calling android.AccountManager.updateCredentials
is irrelevant, because this call never required GET_ACCOUNTS permission.
Added check for MANAGE_ACCOUNTS permission that was required before
Android M. On M+ it doesn't require any special permission.

BUG=699050

Review-Url: https://codereview.chromium.org/2745533002
Cr-Commit-Position: refs/heads/master@{#456124}
parent 7107402d
......@@ -16,6 +16,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Process;
import android.os.SystemClock;
......@@ -161,13 +162,15 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
public void updateCredentials(
Account account, Activity activity, final Callback<Boolean> callback) {
ThreadUtils.assertOnUiThread();
if (!hasGetAccountsPermission()) {
ThreadUtils.postOnUiThread(new Runnable() {
@Override
public void run() {
callback.onResult(false);
}
});
if (!hasManageAccountsPermission()) {
if (callback != null) {
ThreadUtils.postOnUiThread(new Runnable() {
@Override
public void run() {
callback.onResult(false);
}
});
}
return;
}
......@@ -198,4 +201,13 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
Manifest.permission.GET_ACCOUNTS, Process.myPid(), Process.myUid())
== PackageManager.PERMISSION_GRANTED;
}
protected boolean hasManageAccountsPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
return true;
}
return ApiCompatibilityUtils.checkPermission(mApplicationContext,
"android.permission.MANAGE_ACCOUNTS", Process.myPid(), Process.myUid())
== PackageManager.PERMISSION_GRANTED;
}
}
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