Commit 714e8c22 authored by tzik@chromium.org's avatar tzik@chromium.org

[SyncFS] Support late authentication

- Make observers to external services sticky over re-initialization.
- Leave SyncWorker NULL when non sign-in state.
- Observe sign-in event and trigger initialization on it.

BUG=374101,380615

Review URL: https://codereview.chromium.org/324343002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276591 0039d316-1c4b-4281-b951-d872f2087c98
parent 21d00244
...@@ -170,8 +170,8 @@ void DeleteSoon(const tracked_objects::Location& from_here, ...@@ -170,8 +170,8 @@ void DeleteSoon(const tracked_objects::Location& from_here,
scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext( scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext(
content::BrowserContext* context, content::BrowserContext* context,
TaskLogger* task_logger) { TaskLogger* task_logger) {
scoped_refptr<base::SequencedWorkerPool> worker_pool( scoped_refptr<base::SequencedWorkerPool> worker_pool =
content::BrowserThread::GetBlockingPool()); content::BrowserThread::GetBlockingPool();
scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner = scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner =
base::MessageLoopProxy::current(); base::MessageLoopProxy::current();
...@@ -229,14 +229,17 @@ void SyncEngine::AppendDependsOnFactories( ...@@ -229,14 +229,17 @@ void SyncEngine::AppendDependsOnFactories(
SyncEngine::~SyncEngine() { SyncEngine::~SyncEngine() {
Reset(); Reset();
}
void SyncEngine::Reset() { net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
if (signin_manager_)
signin_manager_->RemoveObserver(this);
if (notification_manager_) if (notification_manager_)
notification_manager_->RemoveObserver(this); notification_manager_->RemoveObserver(this);
}
void SyncEngine::Reset() {
if (drive_service_) if (drive_service_)
drive_service_->RemoveObserver(this); drive_service_->RemoveObserver(this);
net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
DeleteSoon(FROM_HERE, worker_task_runner_, worker_observer_.Pass()); DeleteSoon(FROM_HERE, worker_task_runner_, worker_observer_.Pass());
DeleteSoon(FROM_HERE, worker_task_runner_, sync_worker_.Pass()); DeleteSoon(FROM_HERE, worker_task_runner_, sync_worker_.Pass());
...@@ -254,6 +257,10 @@ void SyncEngine::Reset() { ...@@ -254,6 +257,10 @@ void SyncEngine::Reset() {
void SyncEngine::Initialize() { void SyncEngine::Initialize() {
Reset(); Reset();
if (!signin_manager_ ||
signin_manager_->GetAuthenticatedAccountId().empty())
return;
scoped_ptr<drive::DriveServiceInterface> drive_service( scoped_ptr<drive::DriveServiceInterface> drive_service(
new drive::DriveAPIService( new drive::DriveAPIService(
token_service_, token_service_,
...@@ -334,10 +341,7 @@ void SyncEngine::InitializeInternal( ...@@ -334,10 +341,7 @@ void SyncEngine::InitializeInternal(
base::Bind(&SyncWorkerInterface::Initialize, base::Bind(&SyncWorkerInterface::Initialize,
base::Unretained(sync_worker_.get()))); base::Unretained(sync_worker_.get())));
if (notification_manager_)
notification_manager_->AddObserver(this);
drive_service_->AddObserver(this); drive_service_->AddObserver(this);
net::NetworkChangeNotifier::AddNetworkChangeObserver(this);
service_state_ = REMOTE_SERVICE_TEMPORARY_UNAVAILABLE; service_state_ = REMOTE_SERVICE_TEMPORARY_UNAVAILABLE;
SetSyncEnabled(sync_enabled_); SetSyncEnabled(sync_enabled_);
...@@ -354,6 +358,17 @@ void SyncEngine::AddFileStatusObserver(FileStatusObserver* observer) { ...@@ -354,6 +358,17 @@ void SyncEngine::AddFileStatusObserver(FileStatusObserver* observer) {
void SyncEngine::RegisterOrigin(const GURL& origin, void SyncEngine::RegisterOrigin(const GURL& origin,
const SyncStatusCallback& callback) { const SyncStatusCallback& callback) {
if (!sync_worker_) {
// TODO(tzik): Record |origin| and retry the registration after late
// sign-in. Then, return SYNC_STATUS_OK.
if (!signin_manager_ ||
signin_manager_->GetAuthenticatedAccountId().empty())
callback.Run(SYNC_STATUS_AUTHENTICATION_FAILED);
else
callback.Run(SYNC_STATUS_ABORT);
return;
}
SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread(
FROM_HERE, base::Bind(&DidRegisterOrigin, base::TimeTicks::Now(), FROM_HERE, base::Bind(&DidRegisterOrigin, base::TimeTicks::Now(),
TrackCallback(callback))); TrackCallback(callback)));
...@@ -367,6 +382,13 @@ void SyncEngine::RegisterOrigin(const GURL& origin, ...@@ -367,6 +382,13 @@ void SyncEngine::RegisterOrigin(const GURL& origin,
void SyncEngine::EnableOrigin( void SyncEngine::EnableOrigin(
const GURL& origin, const SyncStatusCallback& callback) { const GURL& origin, const SyncStatusCallback& callback) {
if (!sync_worker_) {
// It's safe to return OK immediately since this is also checked in
// SyncWorker initialization.
callback.Run(SYNC_STATUS_OK);
return;
}
SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread(
FROM_HERE, TrackCallback(callback)); FROM_HERE, TrackCallback(callback));
...@@ -379,6 +401,13 @@ void SyncEngine::EnableOrigin( ...@@ -379,6 +401,13 @@ void SyncEngine::EnableOrigin(
void SyncEngine::DisableOrigin( void SyncEngine::DisableOrigin(
const GURL& origin, const SyncStatusCallback& callback) { const GURL& origin, const SyncStatusCallback& callback) {
if (!sync_worker_) {
// It's safe to return OK immediately since this is also checked in
// SyncWorker initialization.
callback.Run(SYNC_STATUS_OK);
return;
}
SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread(
FROM_HERE, TrackCallback(callback)); FROM_HERE, TrackCallback(callback));
...@@ -394,6 +423,13 @@ void SyncEngine::UninstallOrigin( ...@@ -394,6 +423,13 @@ void SyncEngine::UninstallOrigin(
const GURL& origin, const GURL& origin,
UninstallFlag flag, UninstallFlag flag,
const SyncStatusCallback& callback) { const SyncStatusCallback& callback) {
if (!sync_worker_) {
// It's safe to return OK immediately since this is also checked in
// SyncWorker initialization.
callback.Run(SYNC_STATUS_OK);
return;
}
SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread(
FROM_HERE, TrackCallback(callback)); FROM_HERE, TrackCallback(callback));
worker_task_runner_->PostTask( worker_task_runner_->PostTask(
...@@ -404,9 +440,16 @@ void SyncEngine::UninstallOrigin( ...@@ -404,9 +440,16 @@ void SyncEngine::UninstallOrigin(
} }
void SyncEngine::ProcessRemoteChange(const SyncFileCallback& callback) { void SyncEngine::ProcessRemoteChange(const SyncFileCallback& callback) {
base::Closure abort_closure =
base::Bind(callback, SYNC_STATUS_ABORT, fileapi::FileSystemURL());
if (!sync_worker_) {
abort_closure.Run();
return;
}
SyncFileCallback tracked_callback = callback_tracker_.Register( SyncFileCallback tracked_callback = callback_tracker_.Register(
base::Bind(callback, SYNC_STATUS_ABORT, fileapi::FileSystemURL()), abort_closure, callback);
callback);
SyncFileCallback relayed_callback = RelayCallbackToCurrentThread( SyncFileCallback relayed_callback = RelayCallbackToCurrentThread(
FROM_HERE, tracked_callback); FROM_HERE, tracked_callback);
worker_task_runner_->PostTask( worker_task_runner_->PostTask(
...@@ -418,6 +461,10 @@ void SyncEngine::ProcessRemoteChange(const SyncFileCallback& callback) { ...@@ -418,6 +461,10 @@ void SyncEngine::ProcessRemoteChange(const SyncFileCallback& callback) {
void SyncEngine::SetRemoteChangeProcessor(RemoteChangeProcessor* processor) { void SyncEngine::SetRemoteChangeProcessor(RemoteChangeProcessor* processor) {
remote_change_processor_ = processor; remote_change_processor_ = processor;
if (!sync_worker_)
return;
remote_change_processor_wrapper_.reset( remote_change_processor_wrapper_.reset(
new RemoteChangeProcessorWrapper(processor)); new RemoteChangeProcessorWrapper(processor));
...@@ -441,11 +488,16 @@ RemoteServiceState SyncEngine::GetCurrentState() const { ...@@ -441,11 +488,16 @@ RemoteServiceState SyncEngine::GetCurrentState() const {
} }
void SyncEngine::GetOriginStatusMap(const StatusMapCallback& callback) { void SyncEngine::GetOriginStatusMap(const StatusMapCallback& callback) {
StatusMapCallback tracked_callback = base::Closure abort_closure =
callback_tracker_.Register( base::Bind(callback, base::Passed(scoped_ptr<OriginStatusMap>()));
base::Bind(callback, base::Passed(scoped_ptr<OriginStatusMap>())),
callback);
if (!sync_worker_) {
abort_closure.Run();
return;
}
StatusMapCallback tracked_callback =
callback_tracker_.Register(abort_closure, callback);
StatusMapCallback relayed_callback = StatusMapCallback relayed_callback =
RelayCallbackToCurrentThread(FROM_HERE, tracked_callback); RelayCallbackToCurrentThread(FROM_HERE, tracked_callback);
...@@ -458,10 +510,16 @@ void SyncEngine::GetOriginStatusMap(const StatusMapCallback& callback) { ...@@ -458,10 +510,16 @@ void SyncEngine::GetOriginStatusMap(const StatusMapCallback& callback) {
void SyncEngine::DumpFiles(const GURL& origin, void SyncEngine::DumpFiles(const GURL& origin,
const ListCallback& callback) { const ListCallback& callback) {
base::Closure abort_closure =
base::Bind(callback, base::Passed(scoped_ptr<base::ListValue>()));
if (!sync_worker_) {
abort_closure.Run();
return;
}
ListCallback tracked_callback = ListCallback tracked_callback =
callback_tracker_.Register( callback_tracker_.Register(abort_closure, callback);
base::Bind(callback, base::Passed(scoped_ptr<base::ListValue>())),
callback);
PostTaskAndReplyWithResult( PostTaskAndReplyWithResult(
worker_task_runner_, worker_task_runner_,
...@@ -473,10 +531,16 @@ void SyncEngine::DumpFiles(const GURL& origin, ...@@ -473,10 +531,16 @@ void SyncEngine::DumpFiles(const GURL& origin,
} }
void SyncEngine::DumpDatabase(const ListCallback& callback) { void SyncEngine::DumpDatabase(const ListCallback& callback) {
base::Closure abort_closure =
base::Bind(callback, base::Passed(scoped_ptr<base::ListValue>()));
if (!sync_worker_) {
abort_closure.Run();
return;
}
ListCallback tracked_callback = ListCallback tracked_callback =
callback_tracker_.Register( callback_tracker_.Register(abort_closure, callback);
base::Bind(callback, base::Passed(scoped_ptr<base::ListValue>())),
callback);
PostTaskAndReplyWithResult( PostTaskAndReplyWithResult(
worker_task_runner_, worker_task_runner_,
...@@ -488,6 +552,10 @@ void SyncEngine::DumpDatabase(const ListCallback& callback) { ...@@ -488,6 +552,10 @@ void SyncEngine::DumpDatabase(const ListCallback& callback) {
void SyncEngine::SetSyncEnabled(bool sync_enabled) { void SyncEngine::SetSyncEnabled(bool sync_enabled) {
sync_enabled_ = sync_enabled; sync_enabled_ = sync_enabled;
if (!sync_worker_)
return;
worker_task_runner_->PostTask( worker_task_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::Bind(&SyncWorkerInterface::SetSyncEnabled, base::Bind(&SyncWorkerInterface::SetSyncEnabled,
...@@ -496,6 +564,9 @@ void SyncEngine::SetSyncEnabled(bool sync_enabled) { ...@@ -496,6 +564,9 @@ void SyncEngine::SetSyncEnabled(bool sync_enabled) {
} }
void SyncEngine::PromoteDemotedChanges() { void SyncEngine::PromoteDemotedChanges() {
if (!sync_worker_)
return;
worker_task_runner_->PostTask( worker_task_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::Bind(&SyncWorkerInterface::PromoteDemotedChanges, base::Bind(&SyncWorkerInterface::PromoteDemotedChanges,
...@@ -508,6 +579,11 @@ void SyncEngine::ApplyLocalChange( ...@@ -508,6 +579,11 @@ void SyncEngine::ApplyLocalChange(
const SyncFileMetadata& local_metadata, const SyncFileMetadata& local_metadata,
const fileapi::FileSystemURL& url, const fileapi::FileSystemURL& url,
const SyncStatusCallback& callback) { const SyncStatusCallback& callback) {
if (!sync_worker_) {
callback.Run(SYNC_STATUS_ABORT);
return;
}
SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread( SyncStatusCallback relayed_callback = RelayCallbackToCurrentThread(
FROM_HERE, TrackCallback(callback)); FROM_HERE, TrackCallback(callback));
worker_task_runner_->PostTask( worker_task_runner_->PostTask(
...@@ -522,6 +598,9 @@ void SyncEngine::ApplyLocalChange( ...@@ -522,6 +598,9 @@ void SyncEngine::ApplyLocalChange(
} }
void SyncEngine::OnNotificationReceived() { void SyncEngine::OnNotificationReceived() {
if (!sync_worker_)
return;
worker_task_runner_->PostTask( worker_task_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::Bind(&SyncWorkerInterface::OnNotificationReceived, base::Bind(&SyncWorkerInterface::OnNotificationReceived,
...@@ -531,19 +610,19 @@ void SyncEngine::OnNotificationReceived() { ...@@ -531,19 +610,19 @@ void SyncEngine::OnNotificationReceived() {
void SyncEngine::OnPushNotificationEnabled(bool) {} void SyncEngine::OnPushNotificationEnabled(bool) {}
void SyncEngine::OnReadyToSendRequests() { void SyncEngine::OnReadyToSendRequests() {
// TODO(tzik): Drop current Syncworker and replace with new one. if (!sync_worker_)
return;
const std::string account_id =
signin_manager_ ? signin_manager_->GetAuthenticatedAccountId() : "";
worker_task_runner_->PostTask( worker_task_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::Bind(&SyncWorkerInterface::OnReadyToSendRequests, base::Bind(&SyncWorkerInterface::OnReadyToSendRequests,
base::Unretained(sync_worker_.get()), base::Unretained(sync_worker_.get())));
account_id));
} }
void SyncEngine::OnRefreshTokenInvalid() { void SyncEngine::OnRefreshTokenInvalid() {
if (!sync_worker_)
return;
worker_task_runner_->PostTask( worker_task_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::Bind(&SyncWorkerInterface::OnRefreshTokenInvalid, base::Bind(&SyncWorkerInterface::OnRefreshTokenInvalid,
...@@ -552,6 +631,9 @@ void SyncEngine::OnRefreshTokenInvalid() { ...@@ -552,6 +631,9 @@ void SyncEngine::OnRefreshTokenInvalid() {
void SyncEngine::OnNetworkChanged( void SyncEngine::OnNetworkChanged(
net::NetworkChangeNotifier::ConnectionType type) { net::NetworkChangeNotifier::ConnectionType type) {
if (!sync_worker_)
return;
worker_task_runner_->PostTask( worker_task_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::Bind(&SyncWorkerInterface::OnNetworkChanged, base::Bind(&SyncWorkerInterface::OnNetworkChanged,
...@@ -559,6 +641,23 @@ void SyncEngine::OnNetworkChanged( ...@@ -559,6 +641,23 @@ void SyncEngine::OnNetworkChanged(
type)); type));
} }
void SyncEngine::GoogleSigninFailed(const GoogleServiceAuthError& error) {
Reset();
UpdateServiceState(REMOTE_SERVICE_AUTHENTICATION_REQUIRED,
"Failed to sign in.");
}
void SyncEngine::GoogleSigninSucceeded(const std::string& username,
const std::string& password) {
Initialize();
}
void SyncEngine::GoogleSignedOut(const std::string& username) {
Reset();
UpdateServiceState(REMOTE_SERVICE_AUTHENTICATION_REQUIRED,
"User signed out.");
}
SyncEngine::SyncEngine( SyncEngine::SyncEngine(
base::SingleThreadTaskRunner* ui_task_runner, base::SingleThreadTaskRunner* ui_task_runner,
base::SequencedTaskRunner* worker_task_runner, base::SequencedTaskRunner* worker_task_runner,
...@@ -589,11 +688,16 @@ SyncEngine::SyncEngine( ...@@ -589,11 +688,16 @@ SyncEngine::SyncEngine(
env_override_(env_override), env_override_(env_override),
weak_ptr_factory_(this) { weak_ptr_factory_(this) {
DCHECK(sync_file_system_dir_.IsAbsolute()); DCHECK(sync_file_system_dir_.IsAbsolute());
if (notification_manager_)
notification_manager_->AddObserver(this);
if (signin_manager_)
signin_manager_->AddObserver(this);
net::NetworkChangeNotifier::AddNetworkChangeObserver(this);
} }
void SyncEngine::OnPendingFileListUpdated(int item_count) { void SyncEngine::OnPendingFileListUpdated(int item_count) {
FOR_EACH_OBSERVER( FOR_EACH_OBSERVER(
Observer, SyncServiceObserver,
service_observers_, service_observers_,
OnRemoteChangeQueueUpdated(item_count)); OnRemoteChangeQueueUpdated(item_count));
} }
...@@ -613,7 +717,7 @@ void SyncEngine::UpdateServiceState(RemoteServiceState state, ...@@ -613,7 +717,7 @@ void SyncEngine::UpdateServiceState(RemoteServiceState state,
service_state_ = state; service_state_ = state;
FOR_EACH_OBSERVER( FOR_EACH_OBSERVER(
Observer, service_observers_, SyncServiceObserver, service_observers_,
OnRemoteServiceStateUpdated(state, description)); OnRemoteServiceStateUpdated(state, description));
} }
......
...@@ -18,11 +18,11 @@ ...@@ -18,11 +18,11 @@
#include "chrome/browser/sync_file_system/remote_file_sync_service.h" #include "chrome/browser/sync_file_system/remote_file_sync_service.h"
#include "chrome/browser/sync_file_system/sync_action.h" #include "chrome/browser/sync_file_system/sync_action.h"
#include "chrome/browser/sync_file_system/sync_direction.h" #include "chrome/browser/sync_file_system/sync_direction.h"
#include "components/signin/core/browser/signin_manager_base.h"
#include "net/base/network_change_notifier.h" #include "net/base/network_change_notifier.h"
class ExtensionServiceInterface; class ExtensionServiceInterface;
class ProfileOAuth2TokenService; class ProfileOAuth2TokenService;
class SigninManagerBase;
namespace base { namespace base {
class SequencedTaskRunner; class SequencedTaskRunner;
...@@ -60,9 +60,10 @@ class SyncEngine : public RemoteFileSyncService, ...@@ -60,9 +60,10 @@ class SyncEngine : public RemoteFileSyncService,
public LocalChangeProcessor, public LocalChangeProcessor,
public drive::DriveNotificationObserver, public drive::DriveNotificationObserver,
public drive::DriveServiceObserver, public drive::DriveServiceObserver,
public net::NetworkChangeNotifier::NetworkChangeObserver { public net::NetworkChangeNotifier::NetworkChangeObserver,
public SigninManagerBase::Observer {
public: public:
typedef Observer SyncServiceObserver; typedef RemoteFileSyncService::Observer SyncServiceObserver;
static scoped_ptr<SyncEngine> CreateForBrowserContext( static scoped_ptr<SyncEngine> CreateForBrowserContext(
content::BrowserContext* context, content::BrowserContext* context,
...@@ -131,13 +132,11 @@ class SyncEngine : public RemoteFileSyncService, ...@@ -131,13 +132,11 @@ class SyncEngine : public RemoteFileSyncService,
virtual void OnNetworkChanged( virtual void OnNetworkChanged(
net::NetworkChangeNotifier::ConnectionType type) OVERRIDE; net::NetworkChangeNotifier::ConnectionType type) OVERRIDE;
void OnPendingFileListUpdated(int item_count); // SigninManagerBase::Observer overrides.
void OnFileStatusChanged(const fileapi::FileSystemURL& url, virtual void GoogleSigninFailed(const GoogleServiceAuthError& error) OVERRIDE;
SyncFileStatus file_status, virtual void GoogleSigninSucceeded(const std::string& username,
SyncAction sync_action, const std::string& password) OVERRIDE;
SyncDirection direction); virtual void GoogleSignedOut(const std::string& username) OVERRIDE;
void UpdateServiceState(RemoteServiceState state,
const std::string& description);
private: private:
class WorkerObserver; class WorkerObserver;
...@@ -158,6 +157,15 @@ class SyncEngine : public RemoteFileSyncService, ...@@ -158,6 +157,15 @@ class SyncEngine : public RemoteFileSyncService,
net::URLRequestContextGetter* request_context, net::URLRequestContextGetter* request_context,
leveldb::Env* env_override); leveldb::Env* env_override);
// Called by WorkerObserver.
void OnPendingFileListUpdated(int item_count);
void OnFileStatusChanged(const fileapi::FileSystemURL& url,
SyncFileStatus file_status,
SyncAction sync_action,
SyncDirection direction);
void UpdateServiceState(RemoteServiceState state,
const std::string& description);
SyncStatusCallback TrackCallback(const SyncStatusCallback& callback); SyncStatusCallback TrackCallback(const SyncStatusCallback& callback);
scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_; scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
......
...@@ -337,7 +337,7 @@ void SyncWorker::OnNotificationReceived() { ...@@ -337,7 +337,7 @@ void SyncWorker::OnNotificationReceived() {
MaybeScheduleNextTask(); MaybeScheduleNextTask();
} }
void SyncWorker::OnReadyToSendRequests(const std::string& account_id) { void SyncWorker::OnReadyToSendRequests() {
DCHECK(sequence_checker_.CalledOnValidSequencedThread()); DCHECK(sequence_checker_.CalledOnValidSequencedThread());
has_refresh_token_ = true; has_refresh_token_ = true;
...@@ -346,8 +346,7 @@ void SyncWorker::OnReadyToSendRequests(const std::string& account_id) { ...@@ -346,8 +346,7 @@ void SyncWorker::OnReadyToSendRequests(const std::string& account_id) {
return; return;
UpdateServiceState(REMOTE_SERVICE_OK, "Authenticated"); UpdateServiceState(REMOTE_SERVICE_OK, "Authenticated");
if (!GetMetadataDatabase() && !account_id.empty()) { if (!GetMetadataDatabase()) {
GetDriveService()->Initialize(account_id);
PostInitializeTask(); PostInitializeTask();
return; return;
} }
......
...@@ -125,7 +125,7 @@ class SyncWorker : public SyncWorkerInterface, ...@@ -125,7 +125,7 @@ class SyncWorker : public SyncWorkerInterface,
virtual void OnNotificationReceived() OVERRIDE; virtual void OnNotificationReceived() OVERRIDE;
virtual void OnReadyToSendRequests(const std::string& account_id) OVERRIDE; virtual void OnReadyToSendRequests() OVERRIDE;
virtual void OnRefreshTokenInvalid() OVERRIDE; virtual void OnRefreshTokenInvalid() OVERRIDE;
virtual void OnNetworkChanged( virtual void OnNetworkChanged(
......
...@@ -80,7 +80,7 @@ class SyncWorkerInterface { ...@@ -80,7 +80,7 @@ class SyncWorkerInterface {
virtual void OnNotificationReceived() = 0; virtual void OnNotificationReceived() = 0;
// See drive::DriveServiceObserver for the details. // See drive::DriveServiceObserver for the details.
virtual void OnReadyToSendRequests(const std::string& account_id) = 0; virtual void OnReadyToSendRequests() = 0;
virtual void OnRefreshTokenInvalid() = 0; virtual void OnRefreshTokenInvalid() = 0;
// See net::NetworkChangeNotifier::NetworkChangeObserver for the details. // See net::NetworkChangeNotifier::NetworkChangeObserver for the details.
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include "chrome/browser/sync_file_system/drive_backend/sync_engine_context.h" #include "chrome/browser/sync_file_system/drive_backend/sync_engine_context.h"
#include "chrome/browser/sync_file_system/drive_backend/sync_task.h" #include "chrome/browser/sync_file_system/drive_backend/sync_task.h"
#include "chrome/browser/sync_file_system/drive_backend/sync_task_manager.h" #include "chrome/browser/sync_file_system/drive_backend/sync_task_manager.h"
#include "chrome/browser/sync_file_system/drive_backend/sync_worker.h"
#include "chrome/browser/sync_file_system/sync_file_system_test_util.h" #include "chrome/browser/sync_file_system/sync_file_system_test_util.h"
#include "content/public/test/test_browser_thread_bundle.h" #include "content/public/test/test_browser_thread_bundle.h"
#include "extensions/common/extension.h" #include "extensions/common/extension.h"
......
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