OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/webui/chromeos/drive_internals_ui.h" | 5 #include "chrome/browser/ui/webui/chromeos/drive_internals_ui.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
| 10 #include <memory> |
| 11 #include <utility> |
| 12 |
10 #include "base/bind.h" | 13 #include "base/bind.h" |
11 #include "base/files/file_enumerator.h" | 14 #include "base/files/file_enumerator.h" |
12 #include "base/files/file_util.h" | 15 #include "base/files/file_util.h" |
13 #include "base/format_macros.h" | 16 #include "base/format_macros.h" |
14 #include "base/macros.h" | 17 #include "base/macros.h" |
| 18 #include "base/memory/ptr_util.h" |
15 #include "base/memory/weak_ptr.h" | 19 #include "base/memory/weak_ptr.h" |
16 #include "base/path_service.h" | 20 #include "base/path_service.h" |
17 #include "base/strings/stringprintf.h" | 21 #include "base/strings/stringprintf.h" |
18 #include "base/sys_info.h" | 22 #include "base/sys_info.h" |
19 #include "chrome/browser/chromeos/drive/debug_info_collector.h" | 23 #include "chrome/browser/chromeos/drive/debug_info_collector.h" |
20 #include "chrome/browser/chromeos/drive/drive_integration_service.h" | 24 #include "chrome/browser/chromeos/drive/drive_integration_service.h" |
21 #include "chrome/browser/chromeos/drive/file_system_util.h" | 25 #include "chrome/browser/chromeos/drive/file_system_util.h" |
22 #include "chrome/browser/chromeos/file_manager/path_util.h" | 26 #include "chrome/browser/chromeos/file_manager/path_util.h" |
23 #include "chrome/browser/drive/drive_notification_manager_factory.h" | 27 #include "chrome/browser/drive/drive_notification_manager_factory.h" |
24 #include "chrome/browser/profiles/profile.h" | 28 #include "chrome/browser/profiles/profile.h" |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 return "error"; | 197 return "error"; |
194 default: // Treat all other higher severities as ERROR. | 198 default: // Treat all other higher severities as ERROR. |
195 return "error"; | 199 return "error"; |
196 } | 200 } |
197 } | 201 } |
198 | 202 |
199 // Appends {'key': key, 'value': value} dictionary to the |list|. | 203 // Appends {'key': key, 'value': value} dictionary to the |list|. |
200 void AppendKeyValue(base::ListValue* list, | 204 void AppendKeyValue(base::ListValue* list, |
201 const std::string& key, | 205 const std::string& key, |
202 const std::string& value) { | 206 const std::string& value) { |
203 base::DictionaryValue* dict = new base::DictionaryValue; | 207 auto dict = base::MakeUnique<base::DictionaryValue>(); |
204 dict->SetString("key", key); | 208 dict->SetString("key", key); |
205 dict->SetString("value", value); | 209 dict->SetString("value", value); |
206 list->Append(dict); | 210 list->Append(std::move(dict)); |
207 } | 211 } |
208 | 212 |
209 // Class to handle messages from chrome://drive-internals. | 213 // Class to handle messages from chrome://drive-internals. |
210 class DriveInternalsWebUIHandler : public content::WebUIMessageHandler { | 214 class DriveInternalsWebUIHandler : public content::WebUIMessageHandler { |
211 public: | 215 public: |
212 DriveInternalsWebUIHandler() | 216 DriveInternalsWebUIHandler() |
213 : last_sent_event_id_(-1), | 217 : last_sent_event_id_(-1), |
214 weak_ptr_factory_(this) { | 218 weak_ptr_factory_(this) { |
215 } | 219 } |
216 | 220 |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 return; | 349 return; |
346 } | 350 } |
347 DCHECK(parsed_app_list); | 351 DCHECK(parsed_app_list); |
348 | 352 |
349 base::DictionaryValue app_list; | 353 base::DictionaryValue app_list; |
350 app_list.SetString("etag", parsed_app_list->etag()); | 354 app_list.SetString("etag", parsed_app_list->etag()); |
351 | 355 |
352 base::ListValue* items = new base::ListValue(); | 356 base::ListValue* items = new base::ListValue(); |
353 for (size_t i = 0; i < parsed_app_list->items().size(); ++i) { | 357 for (size_t i = 0; i < parsed_app_list->items().size(); ++i) { |
354 const google_apis::AppResource* app = parsed_app_list->items()[i]; | 358 const google_apis::AppResource* app = parsed_app_list->items()[i]; |
355 base::DictionaryValue* app_data = new base::DictionaryValue(); | 359 auto app_data = base::MakeUnique<base::DictionaryValue>(); |
356 app_data->SetString("name", app->name()); | 360 app_data->SetString("name", app->name()); |
357 app_data->SetString("application_id", app->application_id()); | 361 app_data->SetString("application_id", app->application_id()); |
358 app_data->SetString("object_type", app->object_type()); | 362 app_data->SetString("object_type", app->object_type()); |
359 app_data->SetBoolean("supports_create", app->supports_create()); | 363 app_data->SetBoolean("supports_create", app->supports_create()); |
360 | 364 |
361 items->Append(app_data); | 365 items->Append(std::move(app_data)); |
362 } | 366 } |
363 app_list.Set("items", items); | 367 app_list.Set("items", items); |
364 | 368 |
365 web_ui()->CallJavascriptFunctionUnsafe("updateAppList", app_list); | 369 web_ui()->CallJavascriptFunctionUnsafe("updateAppList", app_list); |
366 } | 370 } |
367 | 371 |
368 void DriveInternalsWebUIHandler::RegisterMessages() { | 372 void DriveInternalsWebUIHandler::RegisterMessages() { |
369 web_ui()->RegisterMessageCallback( | 373 web_ui()->RegisterMessageCallback( |
370 "pageLoaded", | 374 "pageLoaded", |
371 base::Bind(&DriveInternalsWebUIHandler::OnPageLoaded, | 375 base::Bind(&DriveInternalsWebUIHandler::OnPageLoaded, |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
639 drive::JobListInterface* job_list) { | 643 drive::JobListInterface* job_list) { |
640 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 644 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
641 DCHECK(job_list); | 645 DCHECK(job_list); |
642 | 646 |
643 std::vector<drive::JobInfo> info_list = job_list->GetJobInfoList(); | 647 std::vector<drive::JobInfo> info_list = job_list->GetJobInfoList(); |
644 | 648 |
645 base::ListValue in_flight_operations; | 649 base::ListValue in_flight_operations; |
646 for (size_t i = 0; i < info_list.size(); ++i) { | 650 for (size_t i = 0; i < info_list.size(); ++i) { |
647 const drive::JobInfo& info = info_list[i]; | 651 const drive::JobInfo& info = info_list[i]; |
648 | 652 |
649 base::DictionaryValue* dict = new base::DictionaryValue; | 653 auto dict = base::MakeUnique<base::DictionaryValue>(); |
650 dict->SetInteger("id", info.job_id); | 654 dict->SetInteger("id", info.job_id); |
651 dict->SetString("type", drive::JobTypeToString(info.job_type)); | 655 dict->SetString("type", drive::JobTypeToString(info.job_type)); |
652 dict->SetString("file_path", info.file_path.AsUTF8Unsafe()); | 656 dict->SetString("file_path", info.file_path.AsUTF8Unsafe()); |
653 dict->SetString("state", drive::JobStateToString(info.state)); | 657 dict->SetString("state", drive::JobStateToString(info.state)); |
654 dict->SetDouble("progress_current", info.num_completed_bytes); | 658 dict->SetDouble("progress_current", info.num_completed_bytes); |
655 dict->SetDouble("progress_total", info.num_total_bytes); | 659 dict->SetDouble("progress_total", info.num_total_bytes); |
656 in_flight_operations.Append(dict); | 660 in_flight_operations.Append(std::move(dict)); |
657 } | 661 } |
658 web_ui()->CallJavascriptFunctionUnsafe("updateInFlightOperations", | 662 web_ui()->CallJavascriptFunctionUnsafe("updateInFlightOperations", |
659 in_flight_operations); | 663 in_flight_operations); |
660 } | 664 } |
661 | 665 |
662 void DriveInternalsWebUIHandler::UpdateGCacheContentsSection() { | 666 void DriveInternalsWebUIHandler::UpdateGCacheContentsSection() { |
663 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 667 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
664 | 668 |
665 // Start updating the GCache contents section. | 669 // Start updating the GCache contents section. |
666 Profile* profile = Profile::FromWebUI(web_ui()); | 670 Profile* profile = Profile::FromWebUI(web_ui()); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
743 integration_service->event_logger()->GetHistory(); | 747 integration_service->event_logger()->GetHistory(); |
744 | 748 |
745 base::ListValue list; | 749 base::ListValue list; |
746 for (size_t i = 0; i < log.size(); ++i) { | 750 for (size_t i = 0; i < log.size(); ++i) { |
747 // Skip events which were already sent. | 751 // Skip events which were already sent. |
748 if (log[i].id <= last_sent_event_id_) | 752 if (log[i].id <= last_sent_event_id_) |
749 continue; | 753 continue; |
750 | 754 |
751 std::string severity = SeverityToString(log[i].severity); | 755 std::string severity = SeverityToString(log[i].severity); |
752 | 756 |
753 base::DictionaryValue* dict = new base::DictionaryValue; | 757 auto dict = base::MakeUnique<base::DictionaryValue>(); |
754 dict->SetString("key", | 758 dict->SetString("key", |
755 google_apis::util::FormatTimeAsStringLocaltime(log[i].when)); | 759 google_apis::util::FormatTimeAsStringLocaltime(log[i].when)); |
756 dict->SetString("value", "[" + severity + "] " + log[i].what); | 760 dict->SetString("value", "[" + severity + "] " + log[i].what); |
757 dict->SetString("class", "log-" + severity); | 761 dict->SetString("class", "log-" + severity); |
758 list.Append(dict); | 762 list.Append(std::move(dict)); |
759 last_sent_event_id_ = log[i].id; | 763 last_sent_event_id_ = log[i].id; |
760 } | 764 } |
761 if (!list.empty()) | 765 if (!list.empty()) |
762 web_ui()->CallJavascriptFunctionUnsafe("updateEventLog", list); | 766 web_ui()->CallJavascriptFunctionUnsafe("updateEventLog", list); |
763 } | 767 } |
764 | 768 |
765 void DriveInternalsWebUIHandler::UpdatePathConfigurationsSection() { | 769 void DriveInternalsWebUIHandler::UpdatePathConfigurationsSection() { |
766 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 770 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
767 | 771 |
768 Profile* const profile = Profile::FromWebUI(web_ui()); | 772 Profile* const profile = Profile::FromWebUI(web_ui()); |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
897 content::WebUIDataSource::Create(chrome::kChromeUIDriveInternalsHost); | 901 content::WebUIDataSource::Create(chrome::kChromeUIDriveInternalsHost); |
898 source->AddResourcePath("drive_internals.css", IDR_DRIVE_INTERNALS_CSS); | 902 source->AddResourcePath("drive_internals.css", IDR_DRIVE_INTERNALS_CSS); |
899 source->AddResourcePath("drive_internals.js", IDR_DRIVE_INTERNALS_JS); | 903 source->AddResourcePath("drive_internals.js", IDR_DRIVE_INTERNALS_JS); |
900 source->SetDefaultResource(IDR_DRIVE_INTERNALS_HTML); | 904 source->SetDefaultResource(IDR_DRIVE_INTERNALS_HTML); |
901 | 905 |
902 Profile* profile = Profile::FromWebUI(web_ui); | 906 Profile* profile = Profile::FromWebUI(web_ui); |
903 content::WebUIDataSource::Add(profile, source); | 907 content::WebUIDataSource::Add(profile, source); |
904 } | 908 } |
905 | 909 |
906 } // namespace chromeos | 910 } // namespace chromeos |
OLD | NEW |