Index: chrome/browser/sync_file_system/drive_file_sync_client.cc |
diff --git a/chrome/browser/sync_file_system/drive_file_sync_client.cc b/chrome/browser/sync_file_system/drive_file_sync_client.cc |
index 027477cac806117c83bfd547a1e21d7951ccb239..c9e65a1aef8e51c6c7fbde5cb780b775be782e45 100644 |
--- a/chrome/browser/sync_file_system/drive_file_sync_client.cc |
+++ b/chrome/browser/sync_file_system/drive_file_sync_client.cc |
@@ -71,6 +71,7 @@ DriveFileSyncClient::DriveFileSyncClient(Profile* profile) |
"" /* custom_user_agent */)); |
drive_service_->Initialize(profile); |
drive_service_->AddObserver(this); |
+ net::NetworkChangeNotifier::AddConnectionTypeObserver(this); |
drive_uploader_.reset(new google_apis::DriveUploader(drive_service_.get())); |
} |
@@ -93,12 +94,14 @@ DriveFileSyncClient::DriveFileSyncClient( |
drive_service_ = drive_service.Pass(); |
drive_service_->Initialize(profile); |
drive_service_->AddObserver(this); |
+ net::NetworkChangeNotifier::AddConnectionTypeObserver(this); |
drive_uploader_ = drive_uploader.Pass(); |
} |
DriveFileSyncClient::~DriveFileSyncClient() { |
DCHECK(CalledOnValidThread()); |
+ net::NetworkChangeNotifier::RemoveConnectionTypeObserver(this); |
drive_service_->RemoveObserver(this); |
drive_service_->CancelAll(); |
} |
@@ -399,6 +402,14 @@ void DriveFileSyncClient::OnReadyToPerformOperations() { |
FOR_EACH_OBSERVER(DriveFileSyncClientObserver, observers_, OnAuthenticated()); |
} |
+void DriveFileSyncClient::OnConnectionTypeChanged( |
+ net::NetworkChangeNotifier::ConnectionType type) { |
+ DCHECK(CalledOnValidThread()); |
+ if (type != net::NetworkChangeNotifier::CONNECTION_NONE) |
+ FOR_EACH_OBSERVER(DriveFileSyncClientObserver, |
+ observers_, OnNetworkConnected()); |
+} |
+ |
void DriveFileSyncClient::DidGetDocumentFeedData( |
const DocumentFeedCallback& callback, |
google_apis::GDataErrorCode error, |