summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc')
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc381
1 files changed, 9 insertions, 372 deletions
diff --git a/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
index 686d55faf55..857d5816fdf 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
@@ -29,7 +29,6 @@
#include "base/task/post_task.h"
#include "base/task/task_traits.h"
#include "base/threading/sequenced_task_runner_handle.h"
-#include "chrome/browser/chromeos/drive/debug_info_collector.h"
#include "chrome/browser/chromeos/drive/drive_integration_service.h"
#include "chrome/browser/chromeos/drive/file_system_util.h"
#include "chrome/browser/chromeos/file_manager/path_util.h"
@@ -43,13 +42,9 @@
#include "chromeos/constants/chromeos_features.h"
#include "components/download/content/public/all_download_item_notifier.h"
#include "components/download/public/common/download_item.h"
-#include "components/drive/drive.pb.h"
-#include "components/drive/drive_api_util.h"
#include "components/drive/drive_notification_manager.h"
#include "components/drive/drive_pref_names.h"
#include "components/drive/event_logger.h"
-#include "components/drive/job_list.h"
-#include "components/drive/service/drive_service_interface.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
@@ -152,74 +147,6 @@ std::pair<base::ListValue, base::DictionaryValue> GetGCacheContents(
return result;
}
-// Formats |entry| into text.
-std::string FormatEntry(const base::FilePath& path,
- const drive::ResourceEntry& entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- using base::StringAppendF;
-
- std::string out;
- StringAppendF(&out, "%s\n", path.AsUTF8Unsafe().c_str());
- StringAppendF(&out, " title: %s\n", entry.title().c_str());
- StringAppendF(&out, " local_id: %s\n", entry.local_id().c_str());
- StringAppendF(&out, " resource_id: %s\n", entry.resource_id().c_str());
- StringAppendF(&out, " parent_local_id: %s\n",
- entry.parent_local_id().c_str());
- StringAppendF(&out, " shared: %s\n", entry.shared() ? "true" : "false");
- StringAppendF(&out, " shared_with_me: %s\n",
- entry.shared_with_me() ? "true" : "false");
- StringAppendF(&out, " alternate_url: %s\n", entry.alternate_url().c_str());
-
- const drive::PlatformFileInfoProto& file_info = entry.file_info();
- StringAppendF(&out, " file_info\n");
- StringAppendF(&out, " size: %" PRId64 "\n", file_info.size());
- StringAppendF(&out, " is_directory: %d\n", file_info.is_directory());
- StringAppendF(&out, " is_symbolic_link: %d\n",
- file_info.is_symbolic_link());
-
- const base::Time last_modified = base::Time::FromInternalValue(
- file_info.last_modified());
- const base::Time last_modified_by_me =
- base::Time::FromInternalValue(entry.last_modified_by_me());
- const base::Time last_accessed = base::Time::FromInternalValue(
- file_info.last_accessed());
- const base::Time creation_time = base::Time::FromInternalValue(
- file_info.creation_time());
- StringAppendF(&out, " last_modified: %s\n",
- google_apis::util::FormatTimeAsString(last_modified).c_str());
- StringAppendF(
- &out, " last_modified_by_me: %s\n",
- google_apis::util::FormatTimeAsString(last_modified_by_me).c_str());
- StringAppendF(&out, " last_accessed: %s\n",
- google_apis::util::FormatTimeAsString(last_accessed).c_str());
- StringAppendF(&out, " creation_time: %s\n",
- google_apis::util::FormatTimeAsString(creation_time).c_str());
-
- if (entry.has_file_specific_info()) {
- const drive::FileSpecificInfo& file_specific_info =
- entry.file_specific_info();
- StringAppendF(&out, " content_mime_type: %s\n",
- file_specific_info.content_mime_type().c_str());
- StringAppendF(&out, " file_md5: %s\n",
- file_specific_info.md5().c_str());
- StringAppendF(&out, " document_extension: %s\n",
- file_specific_info.document_extension().c_str());
- StringAppendF(&out, " is_hosted_document: %d\n",
- file_specific_info.is_hosted_document());
- }
-
- if (entry.has_directory_specific_info()) {
- StringAppendF(&out, " directory_info\n");
- const drive::DirectorySpecificInfo& directory_specific_info =
- entry.directory_specific_info();
- StringAppendF(&out, " changestamp: %" PRId64 "\n",
- directory_specific_info.changestamp());
- }
-
- return out;
-}
-
// Appends {'key': key, 'value': value, 'class': clazz} dictionary to the
// |list|.
void AppendKeyValue(base::ListValue* list,
@@ -231,7 +158,7 @@ void AppendKeyValue(base::ListValue* list,
dict->SetKey(kValue, base::Value(std::move(value)));
if (!clazz.empty())
dict->SetKey(kClass, base::Value(std::move(clazz)));
- list->GetList().push_back(std::move(*dict));
+ list->Append(std::move(*dict));
}
ino_t GetInodeValue(const base::FilePath& path) {
@@ -335,22 +262,10 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
base::BindRepeating(&DriveInternalsWebUIHandler::OnPeriodicUpdate,
weak_ptr_factory_.GetWeakPtr()));
web_ui()->RegisterMessageCallback(
- "clearAccessToken",
- base::BindRepeating(&DriveInternalsWebUIHandler::ClearAccessToken,
- weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
- "clearRefreshToken",
- base::BindRepeating(&DriveInternalsWebUIHandler::ClearRefreshToken,
- weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
"resetDriveFileSystem",
base::BindRepeating(&DriveInternalsWebUIHandler::ResetDriveFileSystem,
weak_ptr_factory_.GetWeakPtr()));
web_ui()->RegisterMessageCallback(
- "listFileEntries",
- base::BindRepeating(&DriveInternalsWebUIHandler::ListFileEntries,
- weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
"zipLogs",
base::BindRepeating(&DriveInternalsWebUIHandler::ZipDriveFsLogs,
weak_ptr_factory_.GetWeakPtr()));
@@ -441,224 +356,23 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
drive_notification_manager
? drive_notification_manager->push_notification_enabled()
: false);
- auto* drive_service = GetDriveService();
- if (drive_service) {
- connection_status.SetBoolean("has-refresh-token",
- drive_service->HasRefreshToken());
- connection_status.SetBoolean("has-access-token",
- drive_service->HasAccessToken());
- }
MaybeCallJavascript("updateConnectionStatus", std::move(connection_status));
}
void UpdateAboutResourceSection() {
- if (IsDriveFsEnabled()) {
- // TODO(crbug.com/896123): Maybe worth implementing.
- SetSectionEnabled("account-information-section", false);
- return;
- }
-
- SetSectionEnabled("account-information-section", true);
- auto* drive_service = GetDriveService();
- if (drive_service) {
- drive_service->GetAboutResource(
- base::Bind(&DriveInternalsWebUIHandler::OnGetAboutResource,
- weak_ptr_factory_.GetWeakPtr()));
- }
- }
-
- // Called when GetAboutResource() call to DriveService is complete.
- void OnGetAboutResource(
- google_apis::DriveApiErrorCode status,
- std::unique_ptr<google_apis::AboutResource> about_resource) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- if (status != google_apis::HTTP_SUCCESS) {
- LOG(ERROR) << "Failed to get about resource";
- return;
- }
- DCHECK(about_resource);
-
- base::DictionaryValue data;
- data.SetDouble("account-quota-total", about_resource->quota_bytes_total());
- data.SetDouble("account-quota-used",
- about_resource->quota_bytes_used_aggregate());
- data.SetDouble("account-largest-changestamp-remote",
- about_resource->largest_change_id());
- data.SetString("root-resource-id", about_resource->root_folder_id());
-
- MaybeCallJavascript("updateAboutResource", std::move(data));
+ // TODO(crbug.com/896123): Maybe worth implementing.
+ SetSectionEnabled("account-information-section", false);
}
void UpdateDeltaUpdateStatusSection() {
- if (IsDriveFsEnabled()) {
- // TODO(crbug.com/896123): Maybe worth implementing.
- SetSectionEnabled("delta-update-status-section", false);
- return;
- }
-
- SetSectionEnabled("delta-update-status-section", true);
- auto* debug_info_collector = GetDebugInfoCollector();
- if (debug_info_collector) {
- debug_info_collector->GetMetadata(base::Bind(
- &DriveInternalsWebUIHandler::OnGetFilesystemMetadataForDeltaUpdate,
- weak_ptr_factory_.GetWeakPtr()));
- }
- }
-
- // Callback for DebugInfoCollector::GetMetadata for delta update.
- void OnGetFilesystemMetadataForDeltaUpdate(
- const drive::FileSystemMetadata& metadata,
- const std::map<std::string, drive::FileSystemMetadata>&
- team_drive_metadata) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- auto items = std::make_unique<base::ListValue>();
- // Users default corpus first.
- auto app_data = std::make_unique<base::DictionaryValue>();
- app_data->SetString("id", "default corpus");
- app_data->SetString("root_entry_path", metadata.path);
- app_data->SetString("start_page_token", metadata.start_page_token);
- app_data->SetString("last_check_time",
- google_apis::util::FormatTimeAsStringLocaltime(
- metadata.last_update_check_time));
- app_data->SetString(
- "last_check_result",
- drive::FileErrorToString(metadata.last_update_check_error));
- app_data->SetString("refreshing", metadata.refreshing ? "Yes" : "No");
-
- items->Append(std::move(app_data));
-
- for (const auto& team_drive : team_drive_metadata) {
- app_data = std::make_unique<base::DictionaryValue>();
- app_data->SetString("id", team_drive.first);
- app_data->SetString("root_entry_path", team_drive.second.path);
- app_data->SetString("start_page_token",
- team_drive.second.start_page_token);
- app_data->SetString("last_check_time",
- google_apis::util::FormatTimeAsStringLocaltime(
- team_drive.second.last_update_check_time));
- app_data->SetString(
- "last_check_result",
- drive::FileErrorToString(team_drive.second.last_update_check_error));
- app_data->SetString("refreshing",
- team_drive.second.refreshing ? "Yes" : "No");
- items->Append(std::move(app_data));
- }
-
- base::DictionaryValue delta_update_status;
- delta_update_status.Set("items", std::move(items));
-
- MaybeCallJavascript("updateDeltaUpdateStatus",
- std::move(delta_update_status));
+ // TODO(crbug.com/896123): Maybe worth implementing.
+ SetSectionEnabled("delta-update-status-section", false);
}
void UpdateInFlightOperationsSection() {
- if (IsDriveFsEnabled()) {
- // TODO(crbug.com/896123): Maybe worth implementing.
- SetSectionEnabled("in-flight-operations-section", false);
- return;
- }
-
- SetSectionEnabled("in-flight-operations-section", true);
- auto* integration_service = GetIntegrationService();
- if (!integration_service)
- return;
- drive::JobListInterface* job_list = integration_service->job_list();
- if (!job_list)
- return;
- std::vector<drive::JobInfo> info_list = job_list->GetJobInfoList();
-
- base::ListValue in_flight_operations;
- for (size_t i = 0; i < info_list.size(); ++i) {
- const drive::JobInfo& info = info_list[i];
-
- auto dict = std::make_unique<base::DictionaryValue>();
- dict->SetInteger("id", info.job_id);
- dict->SetString("type", drive::JobTypeToString(info.job_type));
- dict->SetString("file_path", info.file_path.AsUTF8Unsafe());
- dict->SetString("state", drive::JobStateToString(info.state));
- dict->SetDouble("progress_current", info.num_completed_bytes);
- dict->SetDouble("progress_total", info.num_total_bytes);
- in_flight_operations.Append(std::move(dict));
- }
-
- MaybeCallJavascript("updateInFlightOperations",
- std::move(in_flight_operations));
- }
-
- void UpdateFileSystemContentsSection() {
- if (IsDriveFsEnabled()) {
- SetSectionEnabled("file-system-contents-section", false);
- return;
- }
-
- SetSectionEnabled("file-system-contents-section", true);
- drive::DebugInfoCollector* debug_info_collector = GetDebugInfoCollector();
- if (!debug_info_collector)
- return;
-
- // Start rendering the file system tree as text.
- const base::FilePath root_path = drive::util::GetDriveGrandRootPath();
-
- debug_info_collector->GetResourceEntry(
- root_path,
- base::BindOnce(&DriveInternalsWebUIHandler::OnGetResourceEntryByPath,
- weak_ptr_factory_.GetWeakPtr(), root_path));
-
- debug_info_collector->ReadDirectory(
- root_path,
- base::Bind(&DriveInternalsWebUIHandler::OnReadDirectoryByPath,
- weak_ptr_factory_.GetWeakPtr(), root_path));
- }
-
- // Called when GetResourceEntryByPath() is complete.
- void OnGetResourceEntryByPath(const base::FilePath& path,
- drive::FileError error,
- std::unique_ptr<drive::ResourceEntry> entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- if (error == drive::FILE_ERROR_OK) {
- DCHECK(entry.get());
- MaybeCallJavascript("updateFileSystemContents",
- base::Value(FormatEntry(path, *entry) + "\n"));
- }
- }
-
- // Called when ReadDirectoryByPath() is complete.
- void OnReadDirectoryByPath(
- const base::FilePath& parent_path,
- drive::FileError error,
- std::unique_ptr<drive::ResourceEntryVector> entries) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- if (error == drive::FILE_ERROR_OK) {
- DCHECK(entries.get());
-
- drive::DebugInfoCollector* debug_info_collector = GetDebugInfoCollector();
- std::string file_system_as_text;
- for (size_t i = 0; i < entries->size(); ++i) {
- const drive::ResourceEntry& entry = (*entries)[i];
- const base::FilePath current_path = parent_path.Append(
- base::FilePath::FromUTF8Unsafe(entry.base_name()));
-
- file_system_as_text.append(FormatEntry(current_path, entry) + "\n");
-
- if (entry.file_info().is_directory()) {
- debug_info_collector->ReadDirectory(
- current_path,
- base::Bind(&DriveInternalsWebUIHandler::OnReadDirectoryByPath,
- weak_ptr_factory_.GetWeakPtr(), current_path));
- }
- }
-
- // There may be pending ReadDirectoryByPath() calls, but we can update
- // the page with what we have now. This results in progressive
- // updates, which is good for a large file system.
- MaybeCallJavascript("updateFileSystemContents",
- base::Value(file_system_as_text));
- }
+ // TODO(crbug.com/896123): Maybe worth implementing.
+ SetSectionEnabled("in-flight-operations-section", false);
}
void UpdatePathConfigurationsSection() {
@@ -727,8 +441,6 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
PrefService* pref_service = profile()->GetPrefs();
base::ListValue preferences;
- AppendKeyValue(&preferences, "DriveFS",
- IsDriveFsEnabled() ? "true" : "false");
for (size_t i = 0; i < base::size(kDriveRelatedPreferences); ++i) {
const std::string key = kDriveRelatedPreferences[i];
// As of now, all preferences are boolean.
@@ -772,10 +484,6 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
}
void UpdateServiceLogSection() {
- if (!IsDriveFsEnabled()) {
- SetSectionEnabled("service-log-section", false);
- return;
- }
SetSectionEnabled("service-log-section", true);
if (service_log_file_is_processing_)
@@ -818,36 +526,8 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
}
void UpdateCacheContentsSection() {
- if (IsDriveFsEnabled()) {
- // TODO(crbug.com/896123): Maybe worth implementing.
- SetSectionEnabled("cache-contents-section", false);
- return;
- }
- SetSectionEnabled("cache-contents-section", true);
-
- auto* debug_info_collector = GetDebugInfoCollector();
- if (debug_info_collector) {
- debug_info_collector->IterateFileCache(
- base::Bind(&DriveInternalsWebUIHandler::OnUpdateCacheEntry,
- weak_ptr_factory_.GetWeakPtr()),
- base::DoNothing());
- }
- }
-
- // Called as the iterator for DebugInfoCollector::IterateFileCache().
- void OnUpdateCacheEntry(const std::string& local_id,
- const drive::FileCacheEntry& cache_entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- // Convert |cache_entry| into a dictionary.
- base::DictionaryValue value;
- value.SetString("local_id", local_id);
- value.SetString("md5", cache_entry.md5());
- value.SetBoolean("is_present", cache_entry.is_present());
- value.SetBoolean("is_pinned", cache_entry.is_pinned());
- value.SetBoolean("is_dirty", cache_entry.is_dirty());
-
- MaybeCallJavascript("updateCacheContents", std::move(value));
+ // TODO(crbug.com/896123): Maybe worth implementing.
+ SetSectionEnabled("cache-contents-section", false);
}
void UpdateGCacheContentsSection() {
@@ -873,24 +553,6 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
}
// Called when the corresponding button on the page is pressed.
- void ClearAccessToken(const base::ListValue* args) {
- AllowJavascript();
-
- drive::DriveServiceInterface* drive_service = GetDriveService();
- if (drive_service)
- drive_service->ClearAccessToken();
- }
-
- // Called when the corresponding button on the page is pressed.
- void ClearRefreshToken(const base::ListValue* args) {
- AllowJavascript();
-
- drive::DriveServiceInterface* drive_service = GetDriveService();
- if (drive_service)
- drive_service->ClearRefreshToken();
- }
-
- // Called when the corresponding button on the page is pressed.
void ResetDriveFileSystem(const base::ListValue* args) {
AllowJavascript();
@@ -903,13 +565,6 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
}
}
- // Called when the corresponding button on the page is pressed.
- void ListFileEntries(const base::ListValue* args) {
- AllowJavascript();
-
- UpdateFileSystemContentsSection();
- }
-
void ZipDriveFsLogs(const base::ListValue* args) {
AllowJavascript();
@@ -941,24 +596,6 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
return service;
}
- // Returns a DriveService instance.
- drive::DriveServiceInterface* GetDriveService() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
- return drive::util::GetDriveServiceByProfile(profile());
- }
-
- // Returns a DebugInfoCollector instance.
- drive::DebugInfoCollector* GetDebugInfoCollector() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
- drive::DriveIntegrationService* service = GetIntegrationService();
- return service ? service->debug_info_collector() : NULL;
- }
-
- // Whether DriveFS is enabled.
- bool IsDriveFsEnabled() {
- return base::FeatureList::IsEnabled(chromeos::features::kDriveFs);
- }
-
// The last event sent to the JavaScript side.
int last_sent_event_id_;