diff options
author | yurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-27 08:26:06 +0000 |
---|---|---|
committer | yurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-27 08:26:06 +0000 |
commit | bf7cc538f3e6f04f043fb5c56457597e2702fda7 (patch) | |
tree | 31745bc501a32190b9eedde0b9783a5395405bbb /chrome | |
parent | 69b5cc1cd49d108cdb7ced431f8caf56e8d3bd43 (diff) | |
download | chromium_src-bf7cc538f3e6f04f043fb5c56457597e2702fda7.zip chromium_src-bf7cc538f3e6f04f043fb5c56457597e2702fda7.tar.gz chromium_src-bf7cc538f3e6f04f043fb5c56457597e2702fda7.tar.bz2 |
This change provides initial support for sending DevTools messages between Worker and Page processes.
On the Page side devtools messages are handled by WorkerDevtoolsAgentProxy. It implements WebWorkerBase::DevToolsDelegate interface which isolates worker stuff under content/ from DevTools specifics.
In the worker process it's WorkerDevtoolsAgent that is responsible for sending/receiving devtools messages. It implements WebWorkerStub::DevToolsDelegate and WebWorkerClientProxy::DevToolsDelegate which insulate worker stuff under content/ from the devtools implementation details.
WorkerDevtoolsAgentProxy and WorkerDevtoolsAgent are counterparts of WebWorkerProxy and WebWorkerStub. Since devtools is not a part of HTML5 the new classes live under chrome/
ContentWorkerClient is introduced for notifying embedder about certain events when worker clients can be installed.
BUG=13684
TEST=None
Review URL: http://codereview.chromium.org/6990059
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86991 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
19 files changed, 16 insertions, 160 deletions
diff --git a/chrome/browser/debugger/debugger_remote_service.cc b/chrome/browser/debugger/debugger_remote_service.cc index 5847191..8f814a8 100644 --- a/chrome/browser/debugger/debugger_remote_service.cc +++ b/chrome/browser/debugger/debugger_remote_service.cc @@ -17,10 +17,10 @@ #include "chrome/browser/debugger/devtools_protocol_handler.h" #include "chrome/browser/debugger/devtools_remote_message.h" #include "chrome/browser/debugger/inspectable_tab_proxy.h" -#include "chrome/common/devtools_messages.h" #include "chrome/common/render_messages.h" #include "content/browser/renderer_host/render_view_host.h" #include "content/browser/tab_contents/tab_contents.h" +#include "content/common/devtools_messages.h" namespace { diff --git a/chrome/browser/debugger/devtools_handler.cc b/chrome/browser/debugger/devtools_handler.cc index 9e60a11..3627954 100644 --- a/chrome/browser/debugger/devtools_handler.cc +++ b/chrome/browser/debugger/devtools_handler.cc @@ -6,9 +6,9 @@ #include "chrome/browser/debugger/devtools_file_util.h" #include "chrome/browser/debugger/devtools_manager.h" -#include "chrome/common/devtools_messages.h" #include "content/browser/renderer_host/render_view_host.h" #include "content/browser/tab_contents/tab_contents.h" +#include "content/common/devtools_messages.h" DevToolsHandler::DevToolsHandler(RenderViewHost* render_view_host) : RenderViewHostObserver(render_view_host) { diff --git a/chrome/browser/debugger/devtools_http_protocol_handler.cc b/chrome/browser/debugger/devtools_http_protocol_handler.cc index 9b2abacf..b0763b0 100644 --- a/chrome/browser/debugger/devtools_http_protocol_handler.cc +++ b/chrome/browser/debugger/devtools_http_protocol_handler.cc @@ -20,9 +20,9 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" #include "chrome/browser/ui/webui/devtools_ui.h" -#include "chrome/common/devtools_messages.h" #include "content/browser/browser_thread.h" #include "content/browser/tab_contents/tab_contents.h" +#include "content/common/devtools_messages.h" #include "grit/devtools_frontend_resources.h" #include "googleurl/src/gurl.h" #include "net/base/escape.h" diff --git a/chrome/browser/debugger/devtools_manager.cc b/chrome/browser/debugger/devtools_manager.cc index 34e935d..0f4180b 100644 --- a/chrome/browser/debugger/devtools_manager.cc +++ b/chrome/browser/debugger/devtools_manager.cc @@ -16,12 +16,12 @@ #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" -#include "chrome/common/devtools_messages.h" #include "chrome/common/pref_names.h" #include "content/browser/browsing_instance.h" #include "content/browser/child_process_security_policy.h" #include "content/browser/renderer_host/render_view_host.h" #include "content/browser/site_instance.h" +#include "content/common/devtools_messages.h" #include "content/common/notification_service.h" #include "googleurl/src/gurl.h" diff --git a/chrome/browser/debugger/devtools_remote_service.cc b/chrome/browser/debugger/devtools_remote_service.cc index 0d3e776..048a6bf 100644 --- a/chrome/browser/debugger/devtools_remote_service.cc +++ b/chrome/browser/debugger/devtools_remote_service.cc @@ -14,9 +14,9 @@ #include "chrome/browser/debugger/devtools_protocol_handler.h" #include "chrome/browser/debugger/devtools_remote_message.h" #include "chrome/browser/debugger/inspectable_tab_proxy.h" -#include "chrome/common/devtools_messages.h" #include "content/browser/tab_contents/navigation_controller.h" #include "content/browser/tab_contents/navigation_entry.h" +#include "content/common/devtools_messages.h" const char DevToolsRemoteServiceCommand::kPing[] = "ping"; const char DevToolsRemoteServiceCommand::kVersion[] = "version"; diff --git a/chrome/browser/debugger/extension_ports_remote_service.cc b/chrome/browser/debugger/extension_ports_remote_service.cc index 9db706c..1cf8155 100644 --- a/chrome/browser/debugger/extension_ports_remote_service.cc +++ b/chrome/browser/debugger/extension_ports_remote_service.cc @@ -20,9 +20,9 @@ #include "chrome/browser/debugger/devtools_remote_message.h" #include "chrome/browser/debugger/inspectable_tab_proxy.h" #include "chrome/browser/profiles/profile_manager.h" -#include "chrome/common/devtools_messages.h" #include "chrome/common/extensions/extension_messages.h" #include "content/browser/tab_contents/tab_contents.h" +#include "content/common/devtools_messages.h" namespace { diff --git a/chrome/browser/debugger/inspectable_tab_proxy.cc b/chrome/browser/debugger/inspectable_tab_proxy.cc index 3998143..6f73bd8 100644 --- a/chrome/browser/debugger/inspectable_tab_proxy.cc +++ b/chrome/browser/debugger/inspectable_tab_proxy.cc @@ -12,8 +12,8 @@ #include "chrome/browser/tabs/tab_strip_model.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" -#include "chrome/common/devtools_messages.h" #include "content/browser/tab_contents/tab_contents.h" +#include "content/common/devtools_messages.h" DevToolsClientHostImpl::DevToolsClientHostImpl( int32 id, diff --git a/chrome/browser/extensions/extension_debugger_api.cc b/chrome/browser/extensions/extension_debugger_api.cc index c65687a..8a47316 100644 --- a/chrome/browser/extensions/extension_debugger_api.cc +++ b/chrome/browser/extensions/extension_debugger_api.cc @@ -21,10 +21,10 @@ #include "chrome/browser/extensions/extension_tabs_module.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" -#include "chrome/common/devtools_messages.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_error_utils.h" #include "content/browser/tab_contents/tab_contents.h" +#include "content/common/devtools_messages.h" #include "content/common/notification_service.h" namespace keys = extension_debugger_api_constants; diff --git a/chrome/browser/extensions/extension_devtools_bridge.cc b/chrome/browser/extensions/extension_devtools_bridge.cc index 9077bf5..b928025 100644 --- a/chrome/browser/extensions/extension_devtools_bridge.cc +++ b/chrome/browser/extensions/extension_devtools_bridge.cc @@ -16,8 +16,8 @@ #include "chrome/browser/extensions/extension_tabs_module.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" -#include "chrome/common/devtools_messages.h" #include "content/browser/tab_contents/tab_contents.h" +#include "content/common/devtools_messages.h" ExtensionDevToolsBridge::ExtensionDevToolsBridge(int tab_id, Profile* profile) diff --git a/chrome/browser/extensions/extension_devtools_browsertests.cc b/chrome/browser/extensions/extension_devtools_browsertests.cc index e0ccc0f..7ead773 100644 --- a/chrome/browser/extensions/extension_devtools_browsertests.cc +++ b/chrome/browser/extensions/extension_devtools_browsertests.cc @@ -16,12 +16,12 @@ #include "chrome/browser/tabs/tab_strip_model.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/common/chrome_paths.h" -#include "chrome/common/devtools_messages.h" #include "chrome/common/url_constants.h" #include "chrome/test/ui_test_utils.h" #include "content/browser/renderer_host/render_view_host.h" #include "content/browser/site_instance.h" #include "content/browser/tab_contents/tab_contents.h" +#include "content/common/devtools_messages.h" #include "net/base/net_util.h" // Looks for an ExtensionHost whose URL has the given path component (including diff --git a/chrome/browser/ui/views/about_ipc_dialog.cc b/chrome/browser/ui/views/about_ipc_dialog.cc index fd446f3..fbb6e29 100644 --- a/chrome/browser/ui/views/about_ipc_dialog.cc +++ b/chrome/browser/ui/views/about_ipc_dialog.cc @@ -24,8 +24,8 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/common/chrome_constants.h" -#include "chrome/common/devtools_messages.h" #include "chrome/common/render_messages.h" +#include "content/common/devtools_messages.h" #include "content/common/plugin_messages.h" #include "net/url_request/url_request.h" #include "net/url_request/url_request_job.h" diff --git a/chrome/browser/ui/webui/devtools_ui.cc b/chrome/browser/ui/webui/devtools_ui.cc index 4782c53..6008f46 100644 --- a/chrome/browser/ui/webui/devtools_ui.cc +++ b/chrome/browser/ui/webui/devtools_ui.cc @@ -8,11 +8,11 @@ #include "chrome/browser/net/chrome_url_request_context.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/chrome_url_data_manager_backend.h" -#include "chrome/common/devtools_messages.h" #include "chrome/common/url_constants.h" #include "content/browser/browser_thread.h" #include "content/browser/renderer_host/render_view_host.h" #include "content/browser/tab_contents/tab_contents.h" +#include "content/common/devtools_messages.h" #include "grit/devtools_resources_map.h" #include "ui/base/resource/resource_bundle.h" diff --git a/chrome/chrome_common.gypi b/chrome/chrome_common.gypi index 63ff6e78..0037a88 100644 --- a/chrome/chrome_common.gypi +++ b/chrome/chrome_common.gypi @@ -44,7 +44,6 @@ 'common/content_settings_helper.cc', 'common/content_settings_helper.h', 'common/content_settings_types.h', - 'common/devtools_messages.h', 'common/external_ipc_fuzzer.h', 'common/external_ipc_fuzzer.cc', 'common/guid.cc', diff --git a/chrome/common/common_message_generator.h b/chrome/common/common_message_generator.h index 5597abd..52b8ec2 100644 --- a/chrome/common/common_message_generator.h +++ b/chrome/common/common_message_generator.h @@ -5,7 +5,6 @@ // Multiply-included file, hence no include guard. #include "chrome/common/autofill_messages.h" -#include "chrome/common/devtools_messages.h" #include "chrome/common/extensions/extension_messages.h" #include "chrome/common/icon_messages.h" #include "chrome/common/print_messages.h" diff --git a/chrome/common/devtools_messages.h b/chrome/common/devtools_messages.h deleted file mode 100644 index e3275766..0000000 --- a/chrome/common/devtools_messages.h +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright (c) 2011 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. - -// Developer tools consist of the following parts: -// -// DevToolsAgent lives in the renderer of an inspected page and provides access -// to the pages resources, DOM, v8 etc. by means of IPC messages. -// -// DevToolsClient is a thin delegate that lives in the tools front-end -// renderer and converts IPC messages to frontend method calls and allows the -// frontend to send messages to the DevToolsAgent. -// -// All the messages are routed through browser process. There is a -// DevToolsManager living in the browser process that is responsible for -// routing logistics. It is also capable of sending direct messages to the -// agent rather than forwarding messages between agents and clients only. -// -// Chain of communication between the components may be described by the -// following diagram: -// ---------------------------- -// | (tools frontend | -// | renderer process) | -// | | -------------------- -// |tools <--> DevToolsClient+<-- IPC -->+ (browser process) | -// |frontend | | | -// ---------------------------- ---------+---------- -// ^ -// | -// IPC -// | -// v -// --------------------------+-------- -// | inspected page <--> DevToolsAgent | -// | | -// | (inspected page renderer process) | -// ----------------------------------- -// -// This file describes developer tools message types. - -// Multiply-included message file, no standard include guard. -#include <map> -#include <string> - -#include "ipc/ipc_message_macros.h" - -// Singly-included section. -#ifndef CHROME_COMMON_DEVTOOLS_MESSAGES_H_ -#define CHROME_COMMON_DEVTOOLS_MESSAGES_H_ - -typedef std::map<std::string, std::string> DevToolsRuntimeProperties; - -#endif // CHROME_COMMON_DEVTOOLS_MESSAGES_H_ - -#define IPC_MESSAGE_START DevToolsMsgStart - -// These are messages sent from DevToolsAgent to DevToolsClient through the -// browser. -// WebKit-level transport. -IPC_MESSAGE_CONTROL1(DevToolsClientMsg_DispatchOnInspectorFrontend, - std::string /* message */) - -// Legacy debugger output message. -IPC_MESSAGE_CONTROL1(DevToolsClientMsg_DebuggerOutput, - std::string /* message */) - - -//----------------------------------------------------------------------------- -// These are messages sent from DevToolsClient to DevToolsAgent through the -// browser. -// Tells agent that there is a client host connected to it. -IPC_MESSAGE_CONTROL1(DevToolsAgentMsg_Attach, - DevToolsRuntimeProperties /* properties */) - -// Tells agent that there is no longer a client host connected to it. -IPC_MESSAGE_CONTROL0(DevToolsAgentMsg_Detach) - -// Tells agent that the front-end has been loaded -IPC_MESSAGE_CONTROL0(DevToolsAgentMsg_FrontendLoaded) - -// WebKit-level transport. -IPC_MESSAGE_CONTROL1(DevToolsAgentMsg_DispatchOnInspectorBackend, - std::string /* message */) - -// Send debugger command to the debugger agent. Debugger commands should -// be handled on IO thread(while all other devtools messages are handled in -// the render thread) to allow executing the commands when v8 is on a -// breakpoint. -IPC_MESSAGE_CONTROL1(DevToolsAgentMsg_DebuggerCommand, - std::string /* command */) - -// Inspect element with the given coordinates. -IPC_MESSAGE_CONTROL2(DevToolsAgentMsg_InspectElement, - int /* x */, - int /* y */) - - -//----------------------------------------------------------------------------- -// These are messages sent from the browser to the renderer. - -// RenderViewHostDelegate::RenderViewCreated method sends this message to a -// new renderer to notify it that it will host developer tools UI and should -// set up all neccessary bindings and create DevToolsClient instance that -// will handle communication with inspected page DevToolsAgent. -IPC_MESSAGE_ROUTED0(DevToolsMsg_SetupDevToolsClient) - - -//----------------------------------------------------------------------------- -// These are messages sent from the renderer to the browser. - -// Wraps an IPC message that's destined to the DevToolsClient on -// DevToolsAgent->browser hop. -IPC_MESSAGE_ROUTED1(DevToolsHostMsg_ForwardToClient, - IPC::Message /* one of DevToolsClientMsg_XXX types */) - -// Wraps an IPC message that's destined to the DevToolsAgent on -// DevToolsClient->browser hop. -IPC_MESSAGE_ROUTED1(DevToolsHostMsg_ForwardToAgent, - IPC::Message /* one of DevToolsAgentMsg_XXX types */) - -// Activates (brings to the front) corresponding dev tools window. -IPC_MESSAGE_ROUTED0(DevToolsHostMsg_ActivateWindow) - -// Closes dev tools window that is inspecting current render_view_host. -IPC_MESSAGE_ROUTED0(DevToolsHostMsg_CloseWindow) - -// Attaches dev tools window that is inspecting current render_view_host. -IPC_MESSAGE_ROUTED0(DevToolsHostMsg_RequestDockWindow) - -// Detaches dev tools window that is inspecting current render_view_host. -IPC_MESSAGE_ROUTED0(DevToolsHostMsg_RequestUndockWindow) - -// Shows Save As dialog for content. -IPC_MESSAGE_ROUTED2(DevToolsHostMsg_SaveAs, - std::string /* file_name */, - std::string /* content */) - -// Updates runtime features store in devtools manager in order to support -// cross-navigation instrumentation. -IPC_MESSAGE_ROUTED2(DevToolsHostMsg_RuntimePropertyChanged, - std::string /* name */, - std::string /* value */) diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc index 7f5c6a6..2c27809 100644 --- a/chrome/common/logging_chrome.cc +++ b/chrome/common/logging_chrome.cc @@ -16,8 +16,8 @@ // IPC_MESSAGE_MACROS_LOG_ENABLED doesn't get undefined. #if defined(OS_POSIX) && defined(IPC_MESSAGE_LOG_ENABLED) #define IPC_MESSAGE_MACROS_LOG_ENABLED -#include "chrome/common/devtools_messages.h" #include "chrome/common/render_messages.h" +#include "content/common/devtools_messages.h" #include "content/common/plugin_messages.h" #include "content/common/worker_messages.h" #endif diff --git a/chrome/renderer/devtools_agent.cc b/chrome/renderer/devtools_agent.cc index ba27dba..21e411a 100644 --- a/chrome/renderer/devtools_agent.cc +++ b/chrome/renderer/devtools_agent.cc @@ -9,9 +9,9 @@ #include "base/command_line.h" #include "base/message_loop.h" #include "chrome/common/chrome_switches.h" -#include "chrome/common/devtools_messages.h" #include "chrome/renderer/devtools_agent_filter.h" #include "chrome/renderer/devtools_client.h" +#include "content/common/devtools_messages.h" #include "content/common/view_messages.h" #include "content/renderer/render_view.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebDevToolsAgent.h" diff --git a/chrome/renderer/devtools_agent_filter.cc b/chrome/renderer/devtools_agent_filter.cc index 4300461..330fca3 100644 --- a/chrome/renderer/devtools_agent_filter.cc +++ b/chrome/renderer/devtools_agent_filter.cc @@ -5,9 +5,9 @@ #include "chrome/renderer/devtools_agent_filter.h" #include "base/message_loop.h" -#include "chrome/common/devtools_messages.h" #include "chrome/common/render_messages.h" #include "chrome/renderer/devtools_agent.h" +#include "content/common/devtools_messages.h" #include "content/renderer/plugin_channel_host.h" #include "content/renderer/render_view.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebDevToolsAgent.h" diff --git a/chrome/renderer/devtools_client.cc b/chrome/renderer/devtools_client.cc index ac6c090..02882b5 100644 --- a/chrome/renderer/devtools_client.cc +++ b/chrome/renderer/devtools_client.cc @@ -8,7 +8,7 @@ #include "base/message_loop.h" #include "base/utf_string_conversions.h" #include "chrome/common/chrome_switches.h" -#include "chrome/common/devtools_messages.h" +#include "content/common/devtools_messages.h" #include "content/renderer/render_thread.h" #include "content/renderer/render_view.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebDevToolsFrontend.h" |