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 cd009b09df0f59d3bed3954c0cbb08bfafc6c313..8e110c43163e6e16cab9f26a12c0169c86139f8a 100644 |
--- a/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc |
+++ b/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc |
@@ -286,11 +286,15 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler { |
// Called when the page requests periodic update. |
void OnPeriodicUpdate(const base::ListValue* args); |
+ // Called when the corresponding button on the page is pressed. |
void ClearAccessToken(const base::ListValue* args); |
void ClearRefreshToken(const base::ListValue* args); |
- |
+ void ReloadDriveFileSystem(const base::ListValue* args); |
void ListFileEntries(const base::ListValue* args); |
+ // Called after file system reload for ReloadDriveFileSystem is done. |
+ void ReloadFinished(bool success); |
+ |
// The last event sent to the JavaScript side. |
int last_sent_event_id_; |
@@ -370,6 +374,10 @@ void DriveInternalsWebUIHandler::RegisterMessages() { |
base::Bind(&DriveInternalsWebUIHandler::ClearRefreshToken, |
weak_ptr_factory_.GetWeakPtr())); |
web_ui()->RegisterMessageCallback( |
+ "reloadDriveFileSystem", |
+ base::Bind(&DriveInternalsWebUIHandler::ReloadDriveFileSystem, |
+ weak_ptr_factory_.GetWeakPtr())); |
+ web_ui()->RegisterMessageCallback( |
"listFileEntries", |
base::Bind(&DriveInternalsWebUIHandler::ListFileEntries, |
weak_ptr_factory_.GetWeakPtr())); |
@@ -559,6 +567,26 @@ void DriveInternalsWebUIHandler::ClearRefreshToken( |
drive_service->ClearRefreshToken(); |
} |
+void DriveInternalsWebUIHandler::ReloadDriveFileSystem( |
+ const base::ListValue* args) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ drive::DriveIntegrationService* integration_service = |
+ GetIntegrationService(); |
+ if (integration_service) { |
+ integration_service->ClearCacheAndRemountFileSystem( |
+ base::Bind(&DriveInternalsWebUIHandler::ReloadFinished, |
+ weak_ptr_factory_.GetWeakPtr())); |
+ } |
+} |
+ |
+void DriveInternalsWebUIHandler::ReloadFinished(bool success) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ web_ui()->CallJavascriptFunction("updateReloadStatus", |
+ base::FundamentalValue(success)); |
+} |
+ |
void DriveInternalsWebUIHandler::ListFileEntries(const base::ListValue* args) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |