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; | 
