Index: chrome/browser/chromeos/drive/drive_system_service.cc |
diff --git a/chrome/browser/chromeos/drive/drive_system_service.cc b/chrome/browser/chromeos/drive/drive_system_service.cc |
index 1ef760612540b24f2377ce57f78e0caf96ccca1d..6bc75e831554e13dda3602624ab31fb73d9b18b5 100644 |
--- a/chrome/browser/chromeos/drive/drive_system_service.cc |
+++ b/chrome/browser/chromeos/drive/drive_system_service.cc |
@@ -24,12 +24,12 @@ |
#include "chrome/browser/google_apis/auth_service.h" |
#include "chrome/browser/google_apis/drive_api_service.h" |
#include "chrome/browser/google_apis/drive_api_util.h" |
+#include "chrome/browser/google_apis/drive_notification_manager.h" |
+#include "chrome/browser/google_apis/drive_notification_manager_factory.h" |
#include "chrome/browser/google_apis/gdata_wapi_service.h" |
#include "chrome/browser/google_apis/gdata_wapi_url_generator.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/profiles/profile_dependency_manager.h" |
-#include "chrome/browser/sync/profile_sync_service.h" |
-#include "chrome/browser/sync/profile_sync_service_factory.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/chrome_version_info.h" |
#include "chrome/common/pref_names.h" |
@@ -48,9 +48,6 @@ namespace { |
static const size_t kEventLogHistorySize = 100; |
-// The sync invalidation object ID for Google Drive. |
-const char kDriveInvalidationObjectId[] = "CHANGELOG"; |
- |
// Returns true if Drive is enabled for the given Profile. |
bool IsDriveEnabledForProfile(Profile* profile) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
@@ -105,7 +102,6 @@ DriveSystemService::DriveSystemService( |
DriveFileSystemInterface* test_file_system) |
: profile_(profile), |
drive_disabled_(false), |
- push_notification_registered_(false), |
ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
base::SequencedWorkerPool* blocking_pool = BrowserThread::GetBlockingPool(); |
@@ -176,19 +172,10 @@ void DriveSystemService::Initialize() { |
void DriveSystemService::Shutdown() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- ProfileSyncService* profile_sync_service = |
- profile_ ? ProfileSyncServiceFactory::GetForProfile(profile_) : NULL; |
- if (profile_sync_service && push_notification_registered_) { |
- // TODO(kochi): Once DriveSystemService gets started / stopped at runtime, |
- // this ID needs to be unregistered *before* the handler is unregistered |
- // as ID persists across browser restarts. |
- if (!IsDriveEnabledForProfile(profile_)) { |
- profile_sync_service->UpdateRegisteredInvalidationIds( |
- this, syncer::ObjectIdSet()); |
- } |
- profile_sync_service->UnregisterInvalidationHandler(this); |
- push_notification_registered_ = false; |
- } |
+ google_apis::DriveNotificationManager* drive_notification_manager = |
+ google_apis::DriveNotificationManagerFactory::GetForProfile(profile_); |
+ DCHECK(drive_notification_manager); |
+ drive_notification_manager->RemoveObserver(this); |
RemoveDriveMountPoint(); |
} |
@@ -201,6 +188,9 @@ void DriveSystemService::AddObserver(DriveSystemServiceObserver* observer) { |
void DriveSystemService::RemoveObserver(DriveSystemServiceObserver* observer) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
observers_.RemoveObserver(observer); |
+ |
+void DriveSystemService::CheckForUpdates() { |
+ file_system_->CheckForUpdates(); |
} |
bool DriveSystemService::IsDriveEnabled() { |
@@ -216,22 +206,6 @@ bool DriveSystemService::IsDriveEnabled() { |
return true; |
} |
-void DriveSystemService::OnInvalidatorStateChange( |
- syncer::InvalidatorState state) { |
- DVLOG(1) << "InvalidatorState changed to " << state; |
-} |
- |
-void DriveSystemService::OnIncomingInvalidation( |
- const syncer::ObjectIdInvalidationMap& invalidation_map) { |
satorux1
2013/04/19 04:12:13
Wanted to insert EventLogger logging here, but now
|
- DCHECK_EQ(1U, invalidation_map.size()); |
- const invalidation::ObjectId object_id( |
- ipc::invalidation::ObjectSource::COSMO_CHANGELOG, |
- kDriveInvalidationObjectId); |
- DCHECK_EQ(1U, invalidation_map.count(object_id)); |
- |
- file_system_->CheckForUpdates(); |
-} |
- |
void DriveSystemService::ClearCacheAndRemountFileSystem( |
const base::Callback<void(bool)>& callback) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
@@ -289,19 +263,6 @@ void DriveSystemService::ReloadAndRemountFileSystem() { |
AddDriveMountPoint(); |
} |
-bool DriveSystemService::PushNotificationEnabled() { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- DCHECK(profile_); |
- |
- ProfileSyncService* profile_sync_service = |
- ProfileSyncServiceFactory::GetForProfile(profile_); |
- if (!profile_sync_service) |
- return false; |
- |
- return (profile_sync_service->GetInvalidatorState() == |
- syncer::INVALIDATIONS_ENABLED); |
-} |
- |
void DriveSystemService::AddDriveMountPoint() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
DCHECK(!file_system_proxy_.get()); |
@@ -379,18 +340,10 @@ void DriveSystemService::InitializeAfterResourceMetadataInitialized( |
cache_->GetCacheDirectoryPath(DriveCache::CACHE_TYPE_TMP_DOWNLOADS)); |
// Register for Google Drive invalidation notifications. |
- ProfileSyncService* profile_sync_service = |
- profile_ ? ProfileSyncServiceFactory::GetForProfile(profile_) : NULL; |
- if (profile_sync_service) { |
- DCHECK(!push_notification_registered_); |
- profile_sync_service->RegisterInvalidationHandler(this); |
- syncer::ObjectIdSet ids; |
- ids.insert(invalidation::ObjectId( |
- ipc::invalidation::ObjectSource::COSMO_CHANGELOG, |
- kDriveInvalidationObjectId)); |
- profile_sync_service->UpdateRegisteredInvalidationIds(this, ids); |
- push_notification_registered_ = true; |
- } |
+ google_apis::DriveNotificationManager* drive_notification_manager = |
+ google_apis::DriveNotificationManagerFactory::GetForProfile(profile_); |
+ DCHECK(drive_notification_manager); |
+ drive_notification_manager->AddObserver(this); |
AddDriveMountPoint(); |
} |
@@ -459,7 +412,7 @@ void DriveSystemServiceFactory::SetFactoryForTest( |
DriveSystemServiceFactory::DriveSystemServiceFactory() |
: ProfileKeyedServiceFactory("DriveSystemService", |
ProfileDependencyManager::GetInstance()) { |
- DependsOn(ProfileSyncServiceFactory::GetInstance()); |
+ DependsOn(google_apis::DriveNotificationManagerFactory::GetInstance()); |
DependsOn(DownloadServiceFactory::GetInstance()); |
} |