Index: chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc |
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc |
index 690d7619bc3ec11bf753bf5407ad0358a94d137e..8d24e137cc04852d5984df4e757cf09b6be0bca5 100644 |
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc |
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc |
@@ -28,13 +28,13 @@ namespace extensions { |
namespace { |
// List of connection types of drive. |
-// Keep this in sync with the DriveConnectionType in volume_manager.js. |
+// Keep this in sync with the DriveConnectionType in common/js/util.js. |
const char kDriveConnectionTypeOffline[] = "offline"; |
const char kDriveConnectionTypeMetered[] = "metered"; |
const char kDriveConnectionTypeOnline[] = "online"; |
// List of reasons of kDriveConnectionType*. |
-// Keep this in sync with the DriveConnectionReason in volume_manager.js. |
+// Keep this in sync with the DriveConnectionReason in common/js/util.js. |
const char kDriveConnectionReasonNotReady[] = "not_ready"; |
const char kDriveConnectionReasonNoNetwork[] = "no_network"; |
const char kDriveConnectionReasonNoService[] = "no_service"; |
@@ -510,31 +510,27 @@ void FileBrowserPrivateSearchDriveMetadataFunction::OnSearchMetadata( |
} |
bool FileBrowserPrivateGetDriveConnectionStateFunction::RunImpl() { |
- drive::DriveServiceInterface* const drive_service = |
- drive::util::GetDriveServiceByProfile(GetProfile()); |
- |
api::file_browser_private::GetDriveConnectionState::Results::Result result; |
- const bool ready = drive_service && drive_service->CanSendRequest(); |
- const bool is_connection_cellular = |
- net::NetworkChangeNotifier::IsConnectionCellular( |
- net::NetworkChangeNotifier::GetConnectionType()); |
- |
- if (net::NetworkChangeNotifier::IsOffline() || !ready) { |
- result.type = kDriveConnectionTypeOffline; |
- if (net::NetworkChangeNotifier::IsOffline()) |
- result.reasons.push_back(kDriveConnectionReasonNoNetwork); |
- if (!ready) |
- result.reasons.push_back(kDriveConnectionReasonNotReady); |
- if (!drive_service) |
- result.reasons.push_back(kDriveConnectionReasonNoService); |
- } else if ( |
- is_connection_cellular && |
- GetProfile()->GetPrefs()->GetBoolean( |
- prefs::kDisableDriveOverCellular)) { |
- result.type = kDriveConnectionTypeMetered; |
- } else { |
- result.type = kDriveConnectionTypeOnline; |
+ switch (drive::util::GetDriveConnectionStatus(GetProfile())) { |
+ case drive::util::DRIVE_DISCONNECTED_NOSERVICE: |
+ result.type = kDriveConnectionTypeOffline; |
+ result.reason.reset(new std::string(kDriveConnectionReasonNoService)); |
+ break; |
+ case drive::util::DRIVE_DISCONNECTED_NONETWORK: |
+ result.type = kDriveConnectionTypeOffline; |
+ result.reason.reset(new std::string(kDriveConnectionReasonNoNetwork)); |
+ break; |
+ case drive::util::DRIVE_DISCONNECTED_NOTREADY: |
+ result.type = kDriveConnectionTypeOffline; |
+ result.reason.reset(new std::string(kDriveConnectionReasonNotReady)); |
+ break; |
+ case drive::util::DRIVE_CONNECTED_METERED: |
+ result.type = kDriveConnectionTypeMetered; |
+ break; |
+ case drive::util::DRIVE_CONNECTED: |
+ result.type = kDriveConnectionTypeOnline; |
+ break; |
} |
results_ = api::file_browser_private::GetDriveConnectionState::Results:: |