summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryfriedman@chromium.org <yfriedman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-17 00:37:36 +0000
committeryfriedman@chromium.org <yfriedman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-17 00:37:36 +0000
commitaa5b2eceaa05df2000adbff5135688ff93df1cf5 (patch)
treef5fc07e23b8a716e5d5b38d3a6868c3018595e00
parent0d4d412cd5838e9bff77b1141d0cd89a1128ff97 (diff)
downloadchromium_src-aa5b2eceaa05df2000adbff5135688ff93df1cf5.zip
chromium_src-aa5b2eceaa05df2000adbff5135688ff93df1cf5.tar.gz
chromium_src-aa5b2eceaa05df2000adbff5135688ff93df1cf5.tar.bz2
Add IsStartSuppressed accessor to ProfileSyncService.
Also cache a single instance of SyncPrefs for PSSA rather than creating one for each call. BUG=238506 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/15231010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200672 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java6
-rw-r--r--chrome/browser/sync/profile_sync_service_android.cc21
-rw-r--r--chrome/browser/sync/profile_sync_service_android.h8
3 files changed, 26 insertions, 9 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java
index 2ff85c4..ee7c8a8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java
@@ -6,7 +6,6 @@ package org.chromium.chrome.browser.sync;
import android.accounts.Account;
import android.content.Context;
-import android.os.AsyncTask;
import android.util.Log;
import com.google.common.annotations.VisibleForTesting;
@@ -495,6 +494,10 @@ public class ProfileSyncService {
return nativeHasSyncSetupCompleted(mNativeProfileSyncServiceAndroid);
}
+ public boolean isStartSuppressed() {
+ return nativeIsStartSuppressed(mNativeProfileSyncServiceAndroid);
+ }
+
/**
* Notifies sync whether sync setup is in progress - this tells sync whether it should start
* syncing data types when it starts up, or if it should just stay in "configuration mode".
@@ -599,6 +602,7 @@ public class ProfileSyncService {
int nativeProfileSyncServiceAndroid, boolean inProgress);
private native void nativeSetSyncSetupCompleted(int nativeProfileSyncServiceAndroid);
private native boolean nativeHasSyncSetupCompleted(int nativeProfileSyncServiceAndroid);
+ private native boolean nativeIsStartSuppressed(int nativeProfileSyncServiceAndroid);
private native boolean nativeHasKeepEverythingSynced(int nativeProfileSyncServiceAndroid);
private native boolean nativeHasUnrecoverableError(int nativeProfileSyncServiceAndroid);
private native String nativeGetAboutInfoForTest(int nativeProfileSyncServiceAndroid);
diff --git a/chrome/browser/sync/profile_sync_service_android.cc b/chrome/browser/sync/profile_sync_service_android.cc
index 095e453..8a57d7d 100644
--- a/chrome/browser/sync/profile_sync_service_android.cc
+++ b/chrome/browser/sync/profile_sync_service_android.cc
@@ -59,6 +59,7 @@ enum {
ProfileSyncServiceAndroid::ProfileSyncServiceAndroid(JNIEnv* env, jobject obj)
: profile_(NULL),
sync_service_(NULL),
+ sync_prefs_(NULL),
weak_java_profile_sync_service_(env, obj) {
if (g_browser_process == NULL ||
g_browser_process->profile_manager() == NULL) {
@@ -72,6 +73,8 @@ ProfileSyncServiceAndroid::ProfileSyncServiceAndroid(JNIEnv* env, jobject obj)
return;
}
+ sync_prefs_.reset(new browser_sync::SyncPrefs(profile_->GetPrefs()));
+
sync_service_ =
ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile_);
DCHECK(sync_service_);
@@ -223,8 +226,7 @@ void ProfileSyncServiceAndroid::OAuth2TokenFetched(
void ProfileSyncServiceAndroid::EnableSync(JNIEnv* env, jobject) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
// Don't need to do anything if we're already enabled.
- browser_sync::SyncPrefs prefs(profile_->GetPrefs());
- if (prefs.IsStartSuppressed())
+ if (sync_prefs_->IsStartSuppressed())
sync_service_->UnsuppressAndStart();
else
DVLOG(2) << "Ignoring call to EnableSync() because sync is already enabled";
@@ -291,8 +293,7 @@ void ProfileSyncServiceAndroid::SignOutSync(JNIEnv* env, jobject) {
SigninManagerFactory::GetForProfile(profile_)->SignOut();
// Need to clear suppress start flag manually
- browser_sync::SyncPrefs prefs(profile_->GetPrefs());
- prefs.SetStartSuppressed(false);
+ sync_prefs_->SetStartSuppressed(false);
}
ScopedJavaLocalRef<jstring> ProfileSyncServiceAndroid::QuerySyncStatusSummary(
@@ -308,8 +309,7 @@ jboolean ProfileSyncServiceAndroid::SetSyncSessionsId(
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(profile_);
std::string machine_tag = ConvertJavaStringToUTF8(env, tag);
- browser_sync::SyncPrefs prefs(profile_->GetPrefs());
- prefs.SetSyncSessionsGUID(machine_tag);
+ sync_prefs_->SetSyncSessionsGUID(machine_tag);
return true;
}
@@ -547,6 +547,12 @@ jboolean ProfileSyncServiceAndroid::HasSyncSetupCompleted(
return sync_service_->HasSyncSetupCompleted();
}
+jboolean ProfileSyncServiceAndroid::IsStartSuppressed(
+ JNIEnv* env, jobject obj) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ return sync_prefs_->IsStartSuppressed();
+}
+
void ProfileSyncServiceAndroid::EnableEncryptEverything(
JNIEnv* env, jobject obj) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
@@ -556,8 +562,7 @@ void ProfileSyncServiceAndroid::EnableEncryptEverything(
jboolean ProfileSyncServiceAndroid::HasKeepEverythingSynced(
JNIEnv* env, jobject) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- browser_sync::SyncPrefs prefs(profile_->GetPrefs());
- return prefs.HasKeepEverythingSynced();
+ return sync_prefs_->HasKeepEverythingSynced();
}
jboolean ProfileSyncServiceAndroid::HasUnrecoverableError(
diff --git a/chrome/browser/sync/profile_sync_service_android.h b/chrome/browser/sync/profile_sync_service_android.h
index a43c7d4..d16a530 100644
--- a/chrome/browser/sync/profile_sync_service_android.h
+++ b/chrome/browser/sync/profile_sync_service_android.h
@@ -13,6 +13,7 @@
#include "base/compiler_specific.h"
#include "base/time.h"
#include "chrome/browser/sync/profile_sync_service_observer.h"
+#include "chrome/browser/sync/sync_prefs.h"
#include "google_apis/gaia/google_service_auth_error.h"
#include "sync/internal_api/public/base/model_type.h"
@@ -176,6 +177,9 @@ class ProfileSyncServiceAndroid : public ProfileSyncServiceObserver {
// Returns true if sync setup has been completed.
jboolean HasSyncSetupCompleted(JNIEnv* env, jobject obj);
+ // Returns true if sync startup is currently suppressed.
+ jboolean IsStartSuppressed(JNIEnv* env, jobject obj);
+
// Returns true if sync is configured to "sync everything".
jboolean HasKeepEverythingSynced(JNIEnv* env, jobject obj);
@@ -235,6 +239,10 @@ class ProfileSyncServiceAndroid : public ProfileSyncServiceObserver {
Profile* profile_;
ProfileSyncService* sync_service_;
+ // The class that handles getting, setting, and persisting sync
+ // preferences.
+ scoped_ptr<browser_sync::SyncPrefs> sync_prefs_;
+
// Java-side ProfileSyncService object.
JavaObjectWeakGlobalRef weak_java_profile_sync_service_;