Index: chrome/browser/chrome_content_browser_client.cc |
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc |
index a50ec9c41986b3ee99d17e4f52b44b01956108ef..a0d03231095797fc8e7b8a1c7cec876b77f7225e 100644 |
--- a/chrome/browser/chrome_content_browser_client.cc |
+++ b/chrome/browser/chrome_content_browser_client.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/chrome_content_browser_client.h" |
#include "base/command_line.h" |
+#include "base/values.h" |
#include "chrome/app/breakpad_mac.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/character_encoding.h" |
@@ -13,6 +14,7 @@ |
#include "chrome/browser/chrome_worker_message_filter.h" |
#include "chrome/browser/content_settings/host_content_settings_map.h" |
#include "chrome/browser/content_settings/tab_specific_content_settings.h" |
+#include "chrome/browser/debugger/extension_ports_remote_service.h" |
#include "chrome/browser/extensions/extension_info_map.h" |
#include "chrome/browser/extensions/extension_message_handler.h" |
#include "chrome/browser/extensions/extension_service.h" |
@@ -46,6 +48,7 @@ |
#include "content/browser/browsing_instance.h" |
#include "content/browser/child_process_security_policy.h" |
#include "content/browser/debugger/devtools_handler.h" |
+#include "content/browser/debugger/devtools_protocol_handler.h" |
#include "content/browser/plugin_process_host.h" |
#include "content/browser/renderer_host/browser_render_process_host.h" |
#include "content/browser/renderer_host/render_view_host.h" |
@@ -602,6 +605,33 @@ bool ChromeContentBrowserClient::IsFastShutdownPossible() { |
return !browser_command_line.HasSwitch(switches::kChromeFrame); |
} |
+void ChromeContentBrowserClient::RegisterDevToolsRemoteListeners( |
+ DevToolsProtocolHandler* proto_handler) { |
+ proto_handler->RegisterDestination( |
+ new ExtensionPortsRemoteService(proto_handler), |
+ ExtensionPortsRemoteService::kToolName); |
+} |
+ |
+void ChromeContentBrowserClient::GetAdditionalStartPagesForDevTools( |
+ TabContents* dev_tools_tab, ListValue* results) { |
+ const ExtensionService* extension_service = |
+ dev_tools_tab->profile()->GetOriginalProfile()->GetExtensionService(); |
+ if (!extension_service) |
+ return; |
+ |
+ const ExtensionList* extensions = extension_service->extensions(); |
+ |
+ for (ExtensionList::const_iterator extension = extensions->begin(); |
+ extension != extensions->end(); ++extension) { |
+ if ((*extension)->devtools_url().is_empty()) |
+ continue; |
+ DictionaryValue* extension_info = new DictionaryValue(); |
+ extension_info->Set("startPage", |
+ new StringValue((*extension)->devtools_url().spec())); |
+ results->Append(extension_info); |
+ } |
+} |
+ |
#if defined(OS_LINUX) |
int ChromeContentBrowserClient::GetCrashSignalFD( |
const std::string& process_type) { |