Index: chrome/browser/ui/webui/chromeos/drive_internals_ui.cc |
diff --git a/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc b/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc |
index e173cdbb5b038f3dba3381e25cbfc7658901b9b8..8f6841d4747759b1075d5880b22882417d7433f3 100644 |
--- a/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc |
+++ b/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc |
@@ -215,6 +215,12 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler { |
// Returns a DriveIntegrationService. |
drive::DriveIntegrationService* GetIntegrationService(); |
+ // Returns a DriveService instance. |
+ drive::DriveServiceInterface* GetDriveService(); |
+ |
+ // Returns a FileSystem instance. |
+ drive::FileSystemInterface* GetFileSystem(); |
+ |
// Called when the page is first loaded. |
void OnPageLoaded(const base::ListValue* args); |
@@ -374,10 +380,26 @@ drive::DriveIntegrationService* |
DriveInternalsWebUIHandler::GetIntegrationService() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ // TODO(hidehiko): GetForProfile will return the instance always even if it |
+ // is disabled. Needs to check the mounting state then. crbug.com/284972. |
Profile* profile = Profile::FromWebUI(web_ui()); |
return drive::DriveIntegrationServiceFactory::GetForProfile(profile); |
} |
+drive::DriveServiceInterface* DriveInternalsWebUIHandler::GetDriveService() { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ Profile* profile = Profile::FromWebUI(web_ui()); |
+ return drive::util::GetDriveServiceByProfile(profile); |
+} |
+ |
+drive::FileSystemInterface* DriveInternalsWebUIHandler::GetFileSystem() { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ Profile* profile = Profile::FromWebUI(web_ui()); |
+ return drive::util::GetFileSystemByProfile(profile); |
+} |
+ |
void DriveInternalsWebUIHandler::OnPageLoaded(const base::ListValue* args) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
@@ -522,22 +544,18 @@ void DriveInternalsWebUIHandler::OnGetFilesystemMetadataForLocal( |
void DriveInternalsWebUIHandler::ClearAccessToken(const base::ListValue* args) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- drive::DriveIntegrationService* integration_service = |
- GetIntegrationService(); |
- if (!integration_service) |
- return; |
- integration_service->drive_service()->ClearAccessToken(); |
+ drive::DriveServiceInterface* drive_service = GetDriveService(); |
+ if (drive_service) |
+ drive_service->ClearAccessToken(); |
} |
void DriveInternalsWebUIHandler::ClearRefreshToken( |
const base::ListValue* args) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- drive::DriveIntegrationService* integration_service = |
- GetIntegrationService(); |
- if (!integration_service) |
- return; |
- integration_service->drive_service()->ClearRefreshToken(); |
+ drive::DriveServiceInterface* drive_service = GetDriveService(); |
+ if (drive_service) |
+ drive_service->ClearRefreshToken(); |
} |
void DriveInternalsWebUIHandler::ListFileEntries(const base::ListValue* args) { |
@@ -630,24 +648,25 @@ void DriveInternalsWebUIHandler::UpdateGCacheContentsSection() { |
void DriveInternalsWebUIHandler::UpdateFileSystemContentsSection() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- drive::DriveIntegrationService* integration_service = |
- GetIntegrationService(); |
- if (!integration_service) |
+ drive::DriveServiceInterface* drive_service = GetDriveService(); |
+ drive::FileSystemInterface* file_system = GetFileSystem(); |
+ if (!drive_service || !file_system) |
return; |
+ |
// Start updating the file system tree section, if we have access token. |
- if (!integration_service->drive_service()->HasAccessToken()) |
+ if (!drive_service->HasAccessToken()) |
return; |
// Start rendering the file system tree as text. |
const base::FilePath root_path = drive::util::GetDriveGrandRootPath(); |
- integration_service->file_system()->GetResourceEntryByPath( |
+ file_system->GetResourceEntryByPath( |
root_path, |
base::Bind(&DriveInternalsWebUIHandler::OnGetResourceEntryByPath, |
weak_ptr_factory_.GetWeakPtr(), |
root_path)); |
- integration_service->file_system()->ReadDirectoryByPath( |
+ file_system->ReadDirectoryByPath( |
root_path, |
base::Bind(&DriveInternalsWebUIHandler::OnReadDirectoryByPath, |
weak_ptr_factory_.GetWeakPtr(), |
@@ -743,6 +762,7 @@ void DriveInternalsWebUIHandler::OnReadDirectoryByPath( |
if (error == drive::FILE_ERROR_OK) { |
DCHECK(entries.get()); |
+ drive::FileSystemInterface* file_system = GetFileSystem(); |
std::string file_system_as_text; |
for (size_t i = 0; i < entries->size(); ++i) { |
const drive::ResourceEntry& entry = (*entries)[i]; |
@@ -752,7 +772,7 @@ void DriveInternalsWebUIHandler::OnReadDirectoryByPath( |
file_system_as_text.append(FormatEntry(current_path, entry) + "\n"); |
if (entry.file_info().is_directory()) { |
- GetIntegrationService()->file_system()->ReadDirectoryByPath( |
+ file_system->ReadDirectoryByPath( |
current_path, |
base::Bind(&DriveInternalsWebUIHandler::OnReadDirectoryByPath, |
weak_ptr_factory_.GetWeakPtr(), |