Commit 4eceeaa3 authored by hshi@chromium.org's avatar hshi@chromium.org

Chrome diagnostics: First cut at implementing chrome://diagnostics.

BUG=139442
TEST=chrome://diagnostics


Review URL: https://chromiumcodereview.appspot.com/10836039

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149676 0039d316-1c4b-4281-b951-d872f2087c98
parent f9fb95aa
......@@ -66,6 +66,7 @@ const char* const kChromePaths[] = {
#if defined(OS_CHROMEOS)
chrome::kChromeUIChooseMobileNetworkHost,
chrome::kChromeUICryptohomeHost,
chrome::kChromeUIDiagnosticsHost,
chrome::kChromeUIDiscardsHost,
chrome::kChromeUIImageBurnerHost,
chrome::kChromeUIKeyboardOverlayHost,
......
......@@ -183,6 +183,7 @@
<include name="IDR_CRYPTOHOME_JS" file="resources\chromeos\cryptohome.js" type="BINDATA" />
<!-- manifest file of ChromeVox accessibility extension -->
<include name="IDR_CHROMEVOX_MANIFEST" file="resources\chromeos\access_chromevox\manifest.json" type="BINDATA" />
<include name="IDR_DIAGNOSTICS_MAIN_HTML" file="resources\chromeos\diagnostics\main.html" flattenhtml="true" type="BINDATA" />
<include name="IDR_DRIVE_INTERNALS_CSS" file="resources\chromeos\drive_internals.css" type="BINDATA" />
<include name="IDR_DRIVE_INTERNALS_HTML" file="resources\chromeos\drive_internals.html" flattenhtml="true" type="BINDATA" />
<include name="IDR_DRIVE_INTERNALS_JS" file="resources\chromeos\drive_internals.js" type="BINDATA" />
......
<!DOCTYPE HTML>
<html>
<head>
<title>diagnostics</title>
<meta charset="utf-8">
<script src="chrome://resources/js/util.js"></script>
</head>
<body>
<h1>Diagnostics</h1>
<p>To be implemented. crbug.com/139442</p>
</body>
</html>
......@@ -64,6 +64,7 @@
#include "chrome/browser/ui/webui/chromeos/drive_internals_ui.h"
#include "chrome/browser/ui/webui/chromeos/choose_mobile_network_ui.h"
#include "chrome/browser/ui/webui/chromeos/cryptohome_ui.h"
#include "chrome/browser/ui/webui/chromeos/diagnostics/diagnostics_ui.h"
#include "chrome/browser/ui/webui/chromeos/imageburner/imageburner_ui.h"
#include "chrome/browser/ui/webui/chromeos/keyboard_overlay_ui.h"
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
......@@ -275,6 +276,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<chromeos::CryptohomeUI>;
if (url.host() == chrome::kChromeUIDriveInternalsHost)
return &NewWebUI<chromeos::DriveInternalsUI>;
if (url.host() == chrome::kChromeUIDiagnosticsHost)
return &NewWebUI<chromeos::DiagnosticsUI>;
if (url.host() == chrome::kChromeUIImageBurnerHost)
return &NewWebUI<ImageBurnUI>;
if (url.host() == chrome::kChromeUIKeyboardOverlayHost)
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/webui/chromeos/diagnostics/diagnostics_ui.h"
#include "base/bind.h"
#include "base/memory/weak_ptr.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/chrome_web_ui_data_source.h"
#include "chrome/common/url_constants.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_message_handler.h"
#include "grit/browser_resources.h"
namespace chromeos {
namespace {
////////////////////////////////////////////////////////////////////////////////
// DiagnosticsHandler
// Class to handle messages from chrome://diagnostics.
class DiagnosticsWebUIHandler : public content::WebUIMessageHandler {
public:
DiagnosticsWebUIHandler()
: weak_ptr_factory_(this) {
}
virtual ~DiagnosticsWebUIHandler() {}
private:
// WebUIMessageHandler implementation.
virtual void RegisterMessages() OVERRIDE;
// Called when the page is first loaded.
void OnPageLoaded(const base::ListValue* args);
base::WeakPtrFactory<DiagnosticsWebUIHandler> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(DiagnosticsWebUIHandler);
};
void DiagnosticsWebUIHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"pageLoaded",
base::Bind(&DiagnosticsWebUIHandler::OnPageLoaded,
weak_ptr_factory_.GetWeakPtr()));
}
void DiagnosticsWebUIHandler::OnPageLoaded(const base::ListValue* args) {
// TODO: invoke debugd methods to retrieve diagnostics information, and
// upon completion call javascript function to update status.
}
} // namespace
////////////////////////////////////////////////////////////////////////////////
// DiagnosticsUI
DiagnosticsUI::DiagnosticsUI(content::WebUI* web_ui)
: WebUIController(web_ui) {
web_ui->AddMessageHandler(new DiagnosticsWebUIHandler());
ChromeWebUIDataSource* source =
new ChromeWebUIDataSource(chrome::kChromeUIDiagnosticsHost);
source->set_default_resource(IDR_DIAGNOSTICS_MAIN_HTML);
Profile* profile = Profile::FromWebUI(web_ui);
ChromeURLDataManager::AddDataSource(profile, source);
}
} // namespace chromeos
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_DIAGNOSTICS_DIAGNOSTICS_UI_H_
#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_DIAGNOSTICS_DIAGNOSTICS_UI_H_
#include "content/public/browser/web_ui_controller.h"
namespace chromeos {
// WebUI for end-user diagnostic information for Chrome OS devices, for users
// to self-diagnose hardware and software configuration problems and to help
// assist support personnel.
class DiagnosticsUI : public content::WebUIController {
public:
explicit DiagnosticsUI(content::WebUI* web_ui);
private:
DISALLOW_COPY_AND_ASSIGN(DiagnosticsUI);
};
} // namespace chromeos
#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_DIAGNOSTICS_DIAGNOSTICS_UI_H_
......@@ -79,8 +79,8 @@ class SimUnlockUIHTMLSource : public ChromeURLDataManager::DataSource {
// the path we registered.
virtual void StartDataRequest(const std::string& path,
bool is_incognito,
int request_id);
virtual std::string GetMimeType(const std::string&) const {
int request_id) OVERRIDE;
virtual std::string GetMimeType(const std::string&) const OVERRIDE {
return "text/html";
}
......
......@@ -50,8 +50,8 @@ class SystemInfoUIHTMLSource : public ChromeURLDataManager::DataSource {
// the path we registered.
virtual void StartDataRequest(const std::string& path,
bool is_incognito,
int request_id);
virtual std::string GetMimeType(const std::string&) const {
int request_id) OVERRIDE;
virtual std::string GetMimeType(const std::string&) const OVERRIDE {
return "text/html";
}
......
......@@ -3927,6 +3927,8 @@
'browser/ui/webui/chromeos/cryptohome_ui.h',
'browser/ui/webui/chromeos/cryptohome_web_ui_handler.cc',
'browser/ui/webui/chromeos/cryptohome_web_ui_handler.h',
'browser/ui/webui/chromeos/diagnostics/diagnostics_ui.cc',
'browser/ui/webui/chromeos/diagnostics/diagnostics_ui.h',
'browser/ui/webui/chromeos/imageburner/imageburner_ui.cc',
'browser/ui/webui/chromeos/imageburner/imageburner_ui.h',
'browser/ui/webui/chromeos/keyboard_overlay_ui.cc',
......
......@@ -82,6 +82,7 @@ const char kChromeUIVersionURL[] = "chrome://version/";
const char kChromeUIActivationMessage[] = "chrome://activationmessage/";
const char kChromeUIChooseMobileNetworkURL[] =
"chrome://choose-mobile-network/";
const char kChromeUIDiagnosticsURL[] = "chrome://diagnostics/";
const char kChromeUIDiscardsURL[] = "chrome://discards/";
const char kChromeUIIdleLogoutDialogURL[] = "chrome://idle-logout/";
const char kChromeUIImageBurnerURL[] = "chrome://imageburner/";
......@@ -215,6 +216,7 @@ const char kChromeUISandboxHost[] = "sandbox";
const char kChromeUIActivationMessageHost[] = "activationmessage";
const char kChromeUIChooseMobileNetworkHost[] = "choose-mobile-network";
const char kChromeUICryptohomeHost[] = "cryptohome";
const char kChromeUIDiagnosticsHost[] = "diagnostics";
const char kChromeUIDiscardsHost[] = "discards";
const char kChromeUIIdleLogoutDialogHost[] = "idle-logout";
const char kChromeUIImageBurnerHost[] = "imageburner";
......
......@@ -73,6 +73,7 @@ extern const char kChromeUIVersionURL[];
#if defined(OS_CHROMEOS)
extern const char kChromeUIActivationMessage[];
extern const char kChromeUIChooseMobileNetworkURL[];
extern const char kChromeUIDiagnosticsURL[];
extern const char kChromeUIDiscardsURL[];
extern const char kChromeUIIdleLogoutDialogURL[];
extern const char kChromeUIImageBurnerURL[];
......@@ -204,6 +205,7 @@ extern const char kChromeUISandboxHost[];
extern const char kChromeUIActivationMessageHost[];
extern const char kChromeUIChooseMobileNetworkHost[];
extern const char kChromeUICryptohomeHost[];
extern const char kChromeUIDiagnosticsHost[];
extern const char kChromeUIDiscardsHost[];
extern const char kChromeUIIdleLogoutDialogHost[];
extern const char kChromeUIImageBurnerHost[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment