diff options
author | yfriedman@chromium.org <yfriedman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-17 00:37:36 +0000 |
---|---|---|
committer | yfriedman@chromium.org <yfriedman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-17 00:37:36 +0000 |
commit | aa5b2eceaa05df2000adbff5135688ff93df1cf5 (patch) | |
tree | f5fc07e23b8a716e5d5b38d3a6868c3018595e00 | |
parent | 0d4d412cd5838e9bff77b1141d0cd89a1128ff97 (diff) | |
download | chromium_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
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_; |