diff options
author | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-23 09:33:46 +0000 |
---|---|---|
committer | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-23 09:33:46 +0000 |
commit | 3cf8f917bfa4920c126dc0268f032ac3118b6ca4 (patch) | |
tree | 49ac6326e73673fb5f0885dcbcd4b6c4c0ca88ce | |
parent | 7df529d08274cf92877570bb57b93933c803ca66 (diff) | |
download | chromium_src-3cf8f917bfa4920c126dc0268f032ac3118b6ca4.zip chromium_src-3cf8f917bfa4920c126dc0268f032ac3118b6ca4.tar.gz chromium_src-3cf8f917bfa4920c126dc0268f032ac3118b6ca4.tar.bz2 |
DevTools: open resources in the front-end's browser, not the agent's browser.
Review URL: https://chromiumcodereview.appspot.com/9138014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118666 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/debugger/devtools_window.cc | 20 | ||||
-rw-r--r-- | chrome/browser/debugger/devtools_window.h | 1 | ||||
-rw-r--r-- | content/browser/debugger/devtools_frontend_host.cc | 6 | ||||
-rw-r--r-- | content/browser/debugger/devtools_frontend_host.h | 1 | ||||
-rw-r--r-- | content/common/devtools_messages.h | 4 | ||||
-rw-r--r-- | content/public/browser/devtools_frontend_host_delegate.h | 4 | ||||
-rw-r--r-- | content/renderer/devtools_client.cc | 5 | ||||
-rw-r--r-- | content/renderer/devtools_client.h | 1 |
8 files changed, 41 insertions, 1 deletions
diff --git a/chrome/browser/debugger/devtools_window.cc b/chrome/browser/debugger/devtools_window.cc index 160dd62..4126d4a 100644 --- a/chrome/browser/debugger/devtools_window.cc +++ b/chrome/browser/debugger/devtools_window.cc @@ -45,6 +45,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_view.h" #include "content/public/common/bindings_policy.h" +#include "content/public/common/page_transition_types.h" #include "grit/generated_resources.h" typedef std::vector<DevToolsWindow*> DevToolsWindowList; @@ -716,6 +717,25 @@ void DevToolsWindow::SetDockSide(const std::string& side) { } } +void DevToolsWindow::OpenInNewTab(const std::string& url) { + OpenURLParams params(GURL(url), + content::Referrer(), + NEW_FOREGROUND_TAB, + content::PAGE_TRANSITION_LINK, + false /* is_renderer_initiated */); + if (inspected_tab_) { + inspected_tab_->web_contents()->OpenURL(params); + } else { + for (BrowserList::const_iterator it = BrowserList::begin(); + it != BrowserList::end(); ++it) { + if ((*it)->type() == Browser::TYPE_TABBED) { + (*it)->OpenURL(params); + break; + } + } + } +} + void DevToolsWindow::SaveToFile(const std::string& suggested_file_name, const std::string& content) { DevToolsFileUtil::SaveAs(tab_contents_->profile(), diff --git a/chrome/browser/debugger/devtools_window.h b/chrome/browser/debugger/devtools_window.h index f1fc5d7..3c26c71 100644 --- a/chrome/browser/debugger/devtools_window.h +++ b/chrome/browser/debugger/devtools_window.h @@ -131,6 +131,7 @@ class DevToolsWindow : private content::NotificationObserver, virtual void DockWindow() OVERRIDE; virtual void UndockWindow() OVERRIDE; virtual void SetDockSide(const std::string& side) OVERRIDE; + virtual void OpenInNewTab(const std::string& url) OVERRIDE; virtual void SaveToFile(const std::string& suggested_file_name, const std::string& content) OVERRIDE; diff --git a/content/browser/debugger/devtools_frontend_host.cc b/content/browser/debugger/devtools_frontend_host.cc index fb614c8..e565fb1 100644 --- a/content/browser/debugger/devtools_frontend_host.cc +++ b/content/browser/debugger/devtools_frontend_host.cc @@ -73,6 +73,8 @@ bool DevToolsFrontendHost::OnMessageReceived( OnRequestUndockWindow) IPC_MESSAGE_HANDLER(DevToolsHostMsg_RequestSetDockSide, OnRequestSetDockSide) + IPC_MESSAGE_HANDLER(DevToolsHostMsg_OpenInNewTab, + OnOpenInNewTab) IPC_MESSAGE_HANDLER(DevToolsHostMsg_SaveAs, OnSaveAs) IPC_MESSAGE_UNHANDLED(handled = false) @@ -98,6 +100,10 @@ void DevToolsFrontendHost::OnMoveWindow(int x, int y) { delegate_->MoveWindow(x, y); } +void DevToolsFrontendHost::OnOpenInNewTab(const std::string& url) { + delegate_->OpenInNewTab(url); +} + void DevToolsFrontendHost::OnSaveAs( const std::string& suggested_file_name, const std::string& content) { diff --git a/content/browser/debugger/devtools_frontend_host.h b/content/browser/debugger/devtools_frontend_host.h index e66048d..31e5d08 100644 --- a/content/browser/debugger/devtools_frontend_host.h +++ b/content/browser/debugger/devtools_frontend_host.h @@ -47,6 +47,7 @@ class DevToolsFrontendHost : public DevToolsClientHost, void OnRequestDockWindow(); void OnRequestUndockWindow(); void OnRequestSetDockSide(const std::string& side); + void OnOpenInNewTab(const std::string& url); void OnSaveAs(const std::string& file_name, const std::string& content); diff --git a/content/common/devtools_messages.h b/content/common/devtools_messages.h index d328d52..f342e5de 100644 --- a/content/common/devtools_messages.h +++ b/content/common/devtools_messages.h @@ -121,6 +121,10 @@ IPC_MESSAGE_ROUTED0(DevToolsHostMsg_RequestUndockWindow) IPC_MESSAGE_ROUTED1(DevToolsHostMsg_RequestSetDockSide, std::string /* side */) +// Opens given URL in the new tab. +IPC_MESSAGE_ROUTED1(DevToolsHostMsg_OpenInNewTab, + std::string /* url */) + // Shows Save As dialog for content. IPC_MESSAGE_ROUTED2(DevToolsHostMsg_SaveAs, std::string /* file_name */, diff --git a/content/public/browser/devtools_frontend_host_delegate.h b/content/public/browser/devtools_frontend_host_delegate.h index 3437505..2db511b 100644 --- a/content/public/browser/devtools_frontend_host_delegate.h +++ b/content/public/browser/devtools_frontend_host_delegate.h @@ -36,11 +36,13 @@ class DevToolsFrontendHostDelegate { // Specifies side for devtools to dock to. virtual void SetDockSide(const std::string& side) = 0; + // Opens given |url| in the new tab. + virtual void OpenInNewTab(const std::string& url) = 0; + // Shows "Save As..." dialog to save |content|. virtual void SaveToFile(const std::string& suggested_file_name, const std::string& content) = 0; - // This method is called when tab inspected by this devtools frontend is // closing. virtual void InspectedTabClosing() = 0; diff --git a/content/renderer/devtools_client.cc b/content/renderer/devtools_client.cc index 6fba0d3..268ed33 100644 --- a/content/renderer/devtools_client.cc +++ b/content/renderer/devtools_client.cc @@ -74,6 +74,11 @@ void DevToolsClient::requestSetDockSide(const WebKit::WebString& side) { Send(new DevToolsHostMsg_RequestSetDockSide(routing_id(), side.utf8())); } +void DevToolsClient::openInNewTab(const WebKit::WebString& url) { + Send(new DevToolsHostMsg_OpenInNewTab(routing_id(), + url.utf8())); +} + void DevToolsClient::saveAs(const WebKit::WebString& file_name, const WebKit::WebString& content) { Send(new DevToolsHostMsg_SaveAs(routing_id(), diff --git a/content/renderer/devtools_client.h b/content/renderer/devtools_client.h index 582d32b..a2f177f 100644 --- a/content/renderer/devtools_client.h +++ b/content/renderer/devtools_client.h @@ -45,6 +45,7 @@ class DevToolsClient : public content::RenderViewObserver, virtual void requestDockWindow() OVERRIDE; virtual void requestUndockWindow() OVERRIDE; virtual void requestSetDockSide(const WebKit::WebString& side) OVERRIDE; + virtual void openInNewTab(const WebKit::WebString& side) OVERRIDE; virtual void saveAs(const WebKit::WebString& file_name, const WebKit::WebString& content) OVERRIDE; |