From fa2e32bada9bb65f8aa595569d2f41c02715bc63 Mon Sep 17 00:00:00 2001 From: "brettw@chromium.org" Date: Fri, 13 Mar 2009 19:23:16 +0000 Subject: Rename DebuggerContents to DebuggerUI and move to the dom_ui folder. Review URL: http://codereview.chromium.org/46036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11655 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/browser.scons | 3 + chrome/browser/browser.vcproj | 14 +- chrome/browser/debugger/debugger.scons | 3 - chrome/browser/debugger/debugger.vcproj | 8 -- chrome/browser/debugger/debugger_contents.cc | 150 --------------------- chrome/browser/debugger/debugger_contents.h | 36 ----- chrome/browser/dom_ui/debugger_ui.cc | 148 ++++++++++++++++++++ chrome/browser/dom_ui/debugger_ui.h | 28 ++++ chrome/browser/dom_ui/dom_ui_contents.cc | 6 +- .../browser/tab_contents/tab_contents_factory.cc | 4 +- 10 files changed, 195 insertions(+), 205 deletions(-) delete mode 100644 chrome/browser/debugger/debugger_contents.cc delete mode 100644 chrome/browser/debugger/debugger_contents.h create mode 100644 chrome/browser/dom_ui/debugger_ui.cc create mode 100644 chrome/browser/dom_ui/debugger_ui.h (limited to 'chrome/browser') diff --git a/chrome/browser/browser.scons b/chrome/browser/browser.scons index 70da7dc..6949384 100644 --- a/chrome/browser/browser.scons +++ b/chrome/browser/browser.scons @@ -394,6 +394,8 @@ input_files = ChromeFileList([ MSVSFilter('DOM UI', [ 'dom_ui/chrome_url_data_manager.cc', 'dom_ui/chrome_url_data_manager.h', + 'dom_ui/debugger_ui.cc', + 'dom_ui/debugger_ui.h', 'dom_ui/dev_tools_ui.cc', 'dom_ui/dev_tools_ui.h', 'dom_ui/dom_ui.cc', @@ -672,6 +674,7 @@ if not env.Bit('windows'): 'browser_accessibility.cc', 'browser_accessibility_manager.cc', 'dock_info.cc', + 'dom_ui/debugger_ui.cc', 'dom_ui/html_dialog_contents.cc', 'download/download_exe.cc', 'download/download_util.cc', diff --git a/chrome/browser/browser.vcproj b/chrome/browser/browser.vcproj index e5c0614..eeff546 100644 --- a/chrome/browser/browser.vcproj +++ b/chrome/browser/browser.vcproj @@ -710,15 +710,15 @@ > + + + + diff --git a/chrome/browser/debugger/debugger.scons b/chrome/browser/debugger/debugger.scons index c1800f6..3b0cb2f 100644 --- a/chrome/browser/debugger/debugger.scons +++ b/chrome/browser/debugger/debugger.scons @@ -36,8 +36,6 @@ input_files = ChromeFileList([ 'resources/debugger.js', 'resources/debugger_shell.js', ]), - 'debugger_contents.cc', - 'debugger_contents.h', 'debugger_host.h', 'debugger_host_impl.cpp', 'debugger_host_impl.h', @@ -64,7 +62,6 @@ input_files = ChromeFileList([ if env.Bit('linux'): # TODO(port): Port these. input_files.Remove( - 'debugger_contents.cc', 'debugger_view.cc', 'debugger_window.cc', 'dev_tools_view.cc', diff --git a/chrome/browser/debugger/debugger.vcproj b/chrome/browser/debugger/debugger.vcproj index 88af468..3cd3e16 100644 --- a/chrome/browser/debugger/debugger.vcproj +++ b/chrome/browser/debugger/debugger.vcproj @@ -142,14 +142,6 @@ - - - - diff --git a/chrome/browser/debugger/debugger_contents.cc b/chrome/browser/debugger/debugger_contents.cc deleted file mode 100644 index 5927caa..0000000 --- a/chrome/browser/debugger/debugger_contents.cc +++ /dev/null @@ -1,150 +0,0 @@ -// Copyright (c) 2006-2008 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. -// -// This file defines utility functions for working with strings. - -#include "base/command_line.h" -#include "base/file_util.h" -#include "base/string_util.h" -#include "base/values.h" -#include "chrome/browser/browser_process.h" -#include "chrome/browser/debugger/debugger_contents.h" -#include "chrome/browser/debugger/debugger_shell.h" -#include "chrome/browser/debugger/debugger_wrapper.h" -#include "chrome/browser/dom_ui/chrome_url_data_manager.h" -#include "chrome/common/chrome_switches.h" -#include "chrome/common/resource_bundle.h" -#include "net/base/mime_util.h" - -#include "grit/debugger_resources.h" - -// DebuggerUI is accessible from chrome-ui://inspector. -static const char kDebuggerHost[] = "inspector"; - -class DebuggerHTMLSource : public ChromeURLDataManager::DataSource { - public: - // Creates our datasource and sets our user message to a specific message - // from our string bundle. - DebuggerHTMLSource() - : DataSource("debugger", MessageLoop::current()) { } - - // Called when the network layer has requested a resource underneath - // the path we registered. - virtual void StartDataRequest(const std::string& path, int request_id) { - int resource_id = 0; - - if (!path.length()) { - resource_id = IDR_DEBUGGER_HTML; - } else if (path == "debugger.js") { - resource_id = IDR_DEBUGGER_JS; - } else if (path == "debugger.css") { - resource_id = IDR_DEBUGGER_CSS; - } else { - SendResponse(request_id, NULL); - return; - } - - std::wstring debugger_path = - CommandLine::ForCurrentProcess()->GetSwitchValue( - switches::kJavaScriptDebuggerPath); - std::string data_str; - if (!debugger_path.empty() && file_util::PathExists(debugger_path)) { - if (path.empty()) - file_util::AppendToPath(&debugger_path, L"debugger.html"); - else - file_util::AppendToPath(&debugger_path, UTF8ToWide(path)); - if (!file_util::ReadFileToString(debugger_path, &data_str)) { - SendResponse(request_id, NULL); - return; - } - } else { - ResourceBundle& rb = ResourceBundle::GetSharedInstance(); - data_str = rb.GetDataResource(resource_id); - } - scoped_refptr data_bytes(new RefCountedBytes); - data_bytes->data.resize(data_str.size()); - std::copy(data_str.begin(), data_str.end(), data_bytes->data.begin()); - - SendResponse(request_id, data_bytes); - } - - virtual std::string GetMimeType(const std::string& path) const { - // Currently but three choices {"", "debugger.js", "debugger.css"}. - // Map the extension to mime-type, defaulting to "text/html". - std::string mime_type("text/html"); -#if defined(OS_WIN) - FilePath file_path(ASCIIToWide(path)); -#elif defined(OS_POSIX) - FilePath file_path(path); -#endif - net::GetMimeTypeFromFile(file_path, &mime_type); - return mime_type; - } - - private: - DISALLOW_EVIL_CONSTRUCTORS(DebuggerHTMLSource); -}; - - -class DebuggerHandler : public DOMMessageHandler { - public: - explicit DebuggerHandler(DOMUI* dom_ui) : DOMMessageHandler(dom_ui) { - dom_ui->RegisterMessageCallback("DebuggerHostMessage", - NewCallback(this, &DebuggerHandler::HandleDebuggerHostMessage)); - } - - void HandleDebuggerHostMessage(const Value* content) { - if (!content || !content->IsType(Value::TYPE_LIST)) { - NOTREACHED(); - return; - } - const ListValue* args = static_cast(content); - if (args->GetSize() < 1) { - NOTREACHED(); - return; - } - -#ifndef CHROME_DEBUGGER_DISABLED - DebuggerWrapper* wrapper = g_browser_process->debugger_wrapper(); - DebuggerHost* debugger_host = wrapper->GetDebugger(); - if (!debugger_host) { - NOTREACHED(); - return; - } - debugger_host->OnDebuggerHostMsg(args); -#endif - } - - private: - DISALLOW_EVIL_CONSTRUCTORS(DebuggerHandler); -}; - - -DebuggerContents::DebuggerContents(DOMUIContents* contents) - : DOMUI(contents) { -} - -void DebuggerContents::Init() { - AddMessageHandler(new DebuggerHandler(this)); - - DebuggerHTMLSource* html_source = new DebuggerHTMLSource(); - g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE, - NewRunnableMethod(&chrome_url_data_manager, - &ChromeURLDataManager::AddDataSource, - html_source)); -} - -// static -bool DebuggerContents::IsDebuggerUrl(const GURL& url) { - return (url.SchemeIs(DOMUIContents::GetScheme().c_str()) && - url.host() == kDebuggerHost); -} - -// static -GURL DebuggerContents::GetBaseURL() { - std::string url = DOMUIContents::GetScheme(); - url += "://"; - url += kDebuggerHost; - return GURL(url); -} diff --git a/chrome/browser/debugger/debugger_contents.h b/chrome/browser/debugger/debugger_contents.h deleted file mode 100644 index 01689c3..0000000 --- a/chrome/browser/debugger/debugger_contents.h +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) 2006-2008 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. -// -// This file defines utility functions for working with strings. - -#ifndef CHROME_BROWSER_SHELL_DEBUGGER_CONTENTS_H__ -#define CHROME_BROWSER_SHELL_DEBUGGER_CONTENTS_H__ - -#include "chrome/browser/dom_ui/dom_ui.h" - -class DebuggerContents : public DOMUI { - public: - DebuggerContents(DOMUIContents* contents); - - // DOMUI Implementation - virtual void Init(); - - // Return the URL for the front page of this UI. - static GURL GetBaseURL(); - - static bool IsDebuggerUrl(const GURL& url); - - protected: - DOMUIContents* contents_; - - // WebContents overrides: - // We override updating history with a no-op so these pages - // are not saved to history. - virtual void UpdateHistoryForNavigation(const GURL& url, - const ViewHostMsg_FrameNavigate_Params& params) { } - - DISALLOW_EVIL_CONSTRUCTORS(DebuggerContents); -}; - -#endif // CHROME_BROWSER_DEBUGGER_CONTENTS_H__ diff --git a/chrome/browser/dom_ui/debugger_ui.cc b/chrome/browser/dom_ui/debugger_ui.cc new file mode 100644 index 0000000..3af0faa --- /dev/null +++ b/chrome/browser/dom_ui/debugger_ui.cc @@ -0,0 +1,148 @@ +// Copyright (c) 2006-2008 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/dom_ui/debugger_ui.h" + +#include "base/command_line.h" +#include "base/file_util.h" +#include "base/string_util.h" +#include "base/values.h" +#include "chrome/browser/browser_process.h" +#include "chrome/browser/debugger/debugger_shell.h" +#include "chrome/browser/debugger/debugger_wrapper.h" +#include "chrome/browser/dom_ui/chrome_url_data_manager.h" +#include "chrome/common/chrome_switches.h" +#include "chrome/common/resource_bundle.h" +#include "chrome/common/url_constants.h" +#include "net/base/mime_util.h" + +#include "grit/debugger_resources.h" + +class DebuggerHTMLSource : public ChromeURLDataManager::DataSource { + public: + // Creates our datasource and sets our user message to a specific message + // from our string bundle. + DebuggerHTMLSource() + : DataSource("debugger", MessageLoop::current()) { } + + // Called when the network layer has requested a resource underneath + // the path we registered. + virtual void StartDataRequest(const std::string& path, int request_id) { + int resource_id = 0; + + if (!path.length()) { + resource_id = IDR_DEBUGGER_HTML; + } else if (path == "debugger.js") { + resource_id = IDR_DEBUGGER_JS; + } else if (path == "debugger.css") { + resource_id = IDR_DEBUGGER_CSS; + } else { + SendResponse(request_id, NULL); + return; + } + + std::wstring debugger_path = + CommandLine::ForCurrentProcess()->GetSwitchValue( + switches::kJavaScriptDebuggerPath); + std::string data_str; + if (!debugger_path.empty() && file_util::PathExists(debugger_path)) { + if (path.empty()) + file_util::AppendToPath(&debugger_path, L"debugger.html"); + else + file_util::AppendToPath(&debugger_path, UTF8ToWide(path)); + if (!file_util::ReadFileToString(debugger_path, &data_str)) { + SendResponse(request_id, NULL); + return; + } + } else { + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); + data_str = rb.GetDataResource(resource_id); + } + scoped_refptr data_bytes(new RefCountedBytes); + data_bytes->data.resize(data_str.size()); + std::copy(data_str.begin(), data_str.end(), data_bytes->data.begin()); + + SendResponse(request_id, data_bytes); + } + + virtual std::string GetMimeType(const std::string& path) const { + // Currently but three choices {"", "debugger.js", "debugger.css"}. + // Map the extension to mime-type, defaulting to "text/html". + std::string mime_type("text/html"); +#if defined(OS_WIN) + FilePath file_path(ASCIIToWide(path)); +#elif defined(OS_POSIX) + FilePath file_path(path); +#endif + net::GetMimeTypeFromFile(file_path, &mime_type); + return mime_type; + } + + private: + DISALLOW_EVIL_CONSTRUCTORS(DebuggerHTMLSource); +}; + + +class DebuggerHandler : public DOMMessageHandler { + public: + explicit DebuggerHandler(DOMUI* dom_ui) : DOMMessageHandler(dom_ui) { + dom_ui->RegisterMessageCallback("DebuggerHostMessage", + NewCallback(this, &DebuggerHandler::HandleDebuggerHostMessage)); + } + + void HandleDebuggerHostMessage(const Value* content) { + if (!content || !content->IsType(Value::TYPE_LIST)) { + NOTREACHED(); + return; + } + const ListValue* args = static_cast(content); + if (args->GetSize() < 1) { + NOTREACHED(); + return; + } + +#ifndef CHROME_DEBUGGER_DISABLED + DebuggerWrapper* wrapper = g_browser_process->debugger_wrapper(); + DebuggerHost* debugger_host = wrapper->GetDebugger(); + if (!debugger_host) { + NOTREACHED(); + return; + } + debugger_host->OnDebuggerHostMsg(args); +#endif + } + + private: + DISALLOW_COPY_AND_ASSIGN(DebuggerHandler); +}; + + +DebuggerUI::DebuggerUI(DOMUIContents* contents) + : DOMUI(contents) { +} + +void DebuggerUI::Init() { + AddMessageHandler(new DebuggerHandler(this)); + + DebuggerHTMLSource* html_source = new DebuggerHTMLSource(); + g_browser_process->io_thread()->message_loop()->PostTask(FROM_HERE, + NewRunnableMethod(&chrome_url_data_manager, + &ChromeURLDataManager::AddDataSource, + html_source)); +} + +// static +bool DebuggerUI::IsDebuggerUrl(const GURL& url) { + return url.SchemeIs(chrome::kChromeUIScheme) && + url.host() == chrome::kInspectorHost; +} + +// static +GURL DebuggerUI::GetBaseURL() { + // DebuggerUI is accessible from chrome-ui://inspector. + std::string url = chrome::kChromeUIScheme; + url += chrome::kStandardSchemeSeparator; + url += chrome::kInspectorHost; + return GURL(url); +} diff --git a/chrome/browser/dom_ui/debugger_ui.h b/chrome/browser/dom_ui/debugger_ui.h new file mode 100644 index 0000000..3b12ec9 --- /dev/null +++ b/chrome/browser/dom_ui/debugger_ui.h @@ -0,0 +1,28 @@ +// Copyright (c) 2006-2008 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. +// +// This file defines utility functions for working with strings. + +#ifndef CHROME_BROWSER_DOM_UI_DEBUGGER_UI_H_ +#define CHROME_BROWSER_DOM_UI_DEBUGGER_UI_H_ + +#include "chrome/browser/dom_ui/dom_ui.h" + +class DebuggerUI : public DOMUI { + public: + DebuggerUI(DOMUIContents* contents); + + // DOMUI Implementation + virtual void Init(); + + // Return the URL for the front page of this UI. + static GURL GetBaseURL(); + + static bool IsDebuggerUrl(const GURL& url); + + private: + DISALLOW_COPY_AND_ASSIGN(DebuggerUI); +}; + +#endif // CHROME_BROWSER_DOM_UI_DEBUGGER_UI_H_ diff --git a/chrome/browser/dom_ui/dom_ui_contents.cc b/chrome/browser/dom_ui/dom_ui_contents.cc index 4fe32d1..4d5f7e3 100644 --- a/chrome/browser/dom_ui/dom_ui_contents.cc +++ b/chrome/browser/dom_ui/dom_ui_contents.cc @@ -4,7 +4,7 @@ #include "chrome/browser/dom_ui/dom_ui_contents.h" -#include "chrome/browser/debugger/debugger_contents.h" +#include "chrome/browser/dom_ui/debugger_ui.h" #include "chrome/browser/dom_ui/dev_tools_ui.h" #include "chrome/browser/dom_ui/dom_ui.h" #include "chrome/browser/dom_ui/downloads_ui.h" @@ -287,8 +287,8 @@ DOMUI* DOMUIContents::GetDOMUIForURL(const GURL &url) { if (url.host() == ExtensionsUI::GetBaseURL().host()) { return new ExtensionsUI(this); } - if (url.host() == DebuggerContents::GetBaseURL().host()) { - return new DebuggerContents(this); + if (url.host() == DebuggerUI::GetBaseURL().host()) { + return new DebuggerUI(this); } if (url.host() == DevToolsUI::GetBaseURL().host()) { return new DevToolsUI(this); diff --git a/chrome/browser/tab_contents/tab_contents_factory.cc b/chrome/browser/tab_contents/tab_contents_factory.cc index e519476..d6087e9 100644 --- a/chrome/browser/tab_contents/tab_contents_factory.cc +++ b/chrome/browser/tab_contents/tab_contents_factory.cc @@ -5,11 +5,11 @@ #include "base/string_util.h" #include "chrome/browser/browser_about_handler.h" #include "chrome/browser/browser_url_handler.h" +#include "chrome/browser/dom_ui/debugger_ui.h" #include "chrome/browser/dom_ui/dom_ui_contents.h" #include "chrome/browser/dom_ui/new_tab_ui.h" #include "chrome/browser/profile.h" #include "chrome/browser/renderer_host/render_process_host.h" -#include "chrome/browser/debugger/debugger_contents.h" #include "chrome/browser/tab_contents/tab_contents_factory.h" #include "chrome/browser/tab_contents/web_contents.h" #include "net/base/net_util.h" @@ -101,7 +101,7 @@ TabContentsType TabContents::TypeForURL(GURL* url) { if (HtmlDialogContents::IsHtmlDialogUrl(*url)) return TAB_CONTENTS_HTML_DIALOG; - if (DebuggerContents::IsDebuggerUrl(*url)) + if (DebuggerUI::IsDebuggerUrl(*url)) return TAB_CONTENTS_DEBUGGER; if (url->SchemeIs(DOMUIContents::GetScheme().c_str())) -- cgit v1.1