Chromium Code Reviews| Index: chrome/browser/ui/webui/offline_internals_ui.cc |
| diff --git a/chrome/browser/ui/webui/offline_internals_ui.cc b/chrome/browser/ui/webui/offline_internals_ui.cc |
| index 93ed44994e32922e0c036e5ce4402044ad82cd50..17c0669b021bd37a781ae501169348b34d741e53 100644 |
| --- a/chrome/browser/ui/webui/offline_internals_ui.cc |
| +++ b/chrome/browser/ui/webui/offline_internals_ui.cc |
| @@ -19,12 +19,14 @@ |
| #include "chrome/common/url_constants.h" |
| #include "components/offline_pages/background/request_coordinator.h" |
| #include "components/offline_pages/background/save_page_request.h" |
| +#include "components/offline_pages/client_namespace_constants.h" |
| #include "components/offline_pages/offline_page_model.h" |
| #include "content/public/browser/web_ui.h" |
| #include "content/public/browser/web_ui_controller.h" |
| #include "content/public/browser/web_ui_data_source.h" |
| #include "content/public/browser/web_ui_message_handler.h" |
| #include "grit/browser_resources.h" |
| +#include "net/base/network_change_notifier.h" |
| namespace { |
| @@ -62,6 +64,12 @@ class OfflineInternalsUIMessageHandler : public content::WebUIMessageHandler { |
| // Load whether logs are being recorded. |
| void HandleGetLoggingState(const base::ListValue* args); |
| + // Adds a url to the background loader queue. |
| + void HandleAddToRequestQueue(const base::ListValue* args); |
| + |
| + // Load whether device is currently offline. |
| + void HandleGetNetworkStatus(const base::ListValue* args); |
| + |
| // Callback for async GetAllPages calls. |
| void HandleStoredPagesCallback( |
| std::string callback_id, |
| @@ -197,7 +205,7 @@ void OfflineInternalsUIMessageHandler::HandleStoredPagesCallback( |
| offline_page->SetString("namespace", page.client_id.name_space); |
| offline_page->SetDouble("size", page.file_size); |
| offline_page->SetString("id", std::to_string(page.offline_id)); |
| - offline_page->SetString("filePath", page.file_path.value()); |
| + offline_page->SetString("filePath", page.GetOfflineURL().spec()); |
| offline_page->SetDouble("creationTime", page.creation_time.ToJsTime()); |
| offline_page->SetDouble("lastAccessTime", |
| page.last_access_time.ToJsTime()); |
| @@ -270,6 +278,18 @@ void OfflineInternalsUIMessageHandler::HandleSetRecordPageModel( |
| offline_page_model_->GetLogger()->SetIsLogging(should_record); |
| } |
| +void OfflineInternalsUIMessageHandler::HandleGetNetworkStatus( |
| + const base::ListValue* args) { |
| + const base::Value* callback_id; |
| + CHECK(args->Get(0, &callback_id)); |
| + |
| + if (net::NetworkChangeNotifier::IsOffline()) { |
|
dpapad
2016/07/21 18:57:25
Nit: I think you can compress this by using the te
chili
2016/07/21 23:57:20
Done.
|
| + ResolveJavascriptCallback(*callback_id, base::StringValue("Offline")); |
| + } else { |
| + ResolveJavascriptCallback(*callback_id, base::StringValue("Online")); |
| + } |
| +} |
| + |
| void OfflineInternalsUIMessageHandler::HandleSetRecordRequestQueue( |
| const base::ListValue* args) { |
| bool should_record; |
| @@ -308,6 +328,21 @@ void OfflineInternalsUIMessageHandler::HandleGetEventLogs( |
| ResolveJavascriptCallback(*callback_id, result); |
| } |
| +void OfflineInternalsUIMessageHandler::HandleAddToRequestQueue( |
| + const base::ListValue* args) { |
| + const base::Value* callback_id; |
| + CHECK(args->Get(0, &callback_id)); |
| + |
| + std::string url; |
| + CHECK(args->GetString(1, &url)); |
| + |
| + bool result = request_coordinator_->SavePageLater( |
| + GURL(url), |
| + offline_pages::ClientId(offline_pages::kAsyncNamespace, "foo")); |
|
dpapad
2016/07/21 18:57:25
It is not clear here why "foo" is hardcoded. Pleas
chili
2016/07/21 23:57:20
I changed this in a following version but must've
|
| + |
| + ResolveJavascriptCallback(*callback_id, base::FundamentalValue(result)); |
| +} |
| + |
| void OfflineInternalsUIMessageHandler::RegisterMessages() { |
| web_ui()->RegisterMessageCallback( |
| "deleteAllPages", |
| @@ -341,6 +376,14 @@ void OfflineInternalsUIMessageHandler::RegisterMessages() { |
| "getLoggingState", |
| base::Bind(&OfflineInternalsUIMessageHandler::HandleGetLoggingState, |
| weak_ptr_factory_.GetWeakPtr())); |
| + web_ui()->RegisterMessageCallback( |
| + "addToRequestQueue", |
| + base::Bind(&OfflineInternalsUIMessageHandler::HandleAddToRequestQueue, |
| + weak_ptr_factory_.GetWeakPtr())); |
| + web_ui()->RegisterMessageCallback( |
| + "getNetworkStatus", |
| + base::Bind(&OfflineInternalsUIMessageHandler::HandleGetNetworkStatus, |
| + weak_ptr_factory_.GetWeakPtr())); |
| // Get the offline page model associated with this web ui. |
| Profile* profile = Profile::FromWebUI(web_ui()); |