summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-23 09:33:46 +0000
committerpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-23 09:33:46 +0000
commit3cf8f917bfa4920c126dc0268f032ac3118b6ca4 (patch)
tree49ac6326e73673fb5f0885dcbcd4b6c4c0ca88ce
parent7df529d08274cf92877570bb57b93933c803ca66 (diff)
downloadchromium_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.cc20
-rw-r--r--chrome/browser/debugger/devtools_window.h1
-rw-r--r--content/browser/debugger/devtools_frontend_host.cc6
-rw-r--r--content/browser/debugger/devtools_frontend_host.h1
-rw-r--r--content/common/devtools_messages.h4
-rw-r--r--content/public/browser/devtools_frontend_host_delegate.h4
-rw-r--r--content/renderer/devtools_client.cc5
-rw-r--r--content/renderer/devtools_client.h1
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;