diff options
Diffstat (limited to 'chrome/browser/debugger')
-rw-r--r-- | chrome/browser/debugger/devtools_client_host.h | 6 | ||||
-rw-r--r-- | chrome/browser/debugger/devtools_manager.cc | 24 | ||||
-rw-r--r-- | chrome/browser/debugger/devtools_manager.h | 5 | ||||
-rw-r--r-- | chrome/browser/debugger/devtools_manager_unittest.cc | 3 | ||||
-rw-r--r-- | chrome/browser/debugger/devtools_window_win.cc | 12 | ||||
-rw-r--r-- | chrome/browser/debugger/devtools_window_win.h | 2 | ||||
-rw-r--r-- | chrome/browser/debugger/inspectable_tab_proxy.cc | 4 | ||||
-rw-r--r-- | chrome/browser/debugger/inspectable_tab_proxy.h | 1 |
8 files changed, 46 insertions, 11 deletions
diff --git a/chrome/browser/debugger/devtools_client_host.h b/chrome/browser/debugger/devtools_client_host.h index 71534fb..7e1d67d 100644 --- a/chrome/browser/debugger/devtools_client_host.h +++ b/chrome/browser/debugger/devtools_client_host.h @@ -5,6 +5,8 @@ #ifndef CHROME_BROWSER_DEBUGGER_DEVTOOLS_CLIENT_HOST_H_ #define CHROME_BROWSER_DEBUGGER_DEVTOOLS_CLIENT_HOST_H_ +#include <string> + #include "base/basictypes.h" namespace IPC { @@ -33,6 +35,10 @@ class DevToolsClientHost { // closing. virtual void InspectedTabClosing() = 0; + // This method is called when tab inspected by this devtools client has + // navigated to some url. + virtual void SetInspectedTabUrl(const std::string& url) = 0; + // Sends the message to the devtools client hosted by this object. virtual void SendMessageToClient(const IPC::Message& msg) = 0; diff --git a/chrome/browser/debugger/devtools_manager.cc b/chrome/browser/debugger/devtools_manager.cc index 3ebfbd3..cf89d49 100644 --- a/chrome/browser/debugger/devtools_manager.cc +++ b/chrome/browser/debugger/devtools_manager.cc @@ -7,10 +7,12 @@ #include "chrome/browser/debugger/devtools_window.h" #include "chrome/browser/debugger/devtools_client_host.h" #include "chrome/browser/renderer_host/render_view_host.h" +#include "chrome/browser/tab_contents/navigation_entry.h" #include "chrome/browser/tab_contents/tab_contents.h" #include "chrome/common/devtools_messages.h" #include "chrome/common/notification_registrar.h" #include "chrome/common/notification_type.h" +#include "googleurl/src/gurl.h" DevToolsManager::DevToolsManager() : tab_contents_listeners_(NULL) { } @@ -63,7 +65,7 @@ void DevToolsManager::RegisterDevToolsClientHostFor( client_host->set_close_listener(this); StartListening(navigation_controller); - SendAttachToAgent(tab_contents, tab_contents.render_view_host()); + SendAttachToAgent(tab_contents.render_view_host()); } void DevToolsManager::ForwardToDevToolsAgent( @@ -153,7 +155,7 @@ void DevToolsManager::ClientHostClosing(DevToolsClientHost* host) { if (!tab_contents) { return; } - SendDetachToAgent(*tab_contents); + SendDetachToAgent(tab_contents->render_view_host()); UnregisterDevToolsClientHost(host, controller); } @@ -196,17 +198,25 @@ void DevToolsManager::StopListening( } } -void DevToolsManager::SendAttachToAgent(const TabContents& wc, - RenderViewHost* target_host) { - if (GetDevToolsClientHostFor(wc) && target_host) { +void DevToolsManager::OnNavigatingToPendingEntry(const TabContents& wc, + RenderViewHost* target_host) { + DevToolsClientHost* client_host = GetDevToolsClientHostFor(wc); + if (client_host) { + const NavigationEntry& entry = *wc.controller().pending_entry(); + client_host->SetInspectedTabUrl(entry.url().possibly_invalid_spec()); + SendAttachToAgent(target_host); + } +} + +void DevToolsManager::SendAttachToAgent(RenderViewHost* target_host) { + if (target_host) { IPC::Message* m = new DevToolsAgentMsg_Attach(); m->set_routing_id(target_host->routing_id()); target_host->Send(m); } } -void DevToolsManager::SendDetachToAgent(const TabContents& wc) { - RenderViewHost* target_host = wc.render_view_host(); +void DevToolsManager::SendDetachToAgent(RenderViewHost* target_host) { if (target_host) { IPC::Message* m = new DevToolsAgentMsg_Detach(); m->set_routing_id(target_host->routing_id()); diff --git a/chrome/browser/debugger/devtools_manager.h b/chrome/browser/debugger/devtools_manager.h index 143b7f4..d29a6ea 100644 --- a/chrome/browser/debugger/devtools_manager.h +++ b/chrome/browser/debugger/devtools_manager.h @@ -55,7 +55,7 @@ class DevToolsManager : public NotificationObserver, // Sends 'Attach' message to the agent using |target_host| in case // there is a DevToolsClientHost registered for the |tab_contents|. - void SendAttachToAgent( + void OnNavigatingToPendingEntry( const TabContents& tab_contents, RenderViewHost* target_host); @@ -81,7 +81,8 @@ private: NavigationController* navigation_controller); void StartListening(NavigationController* navigation_controller); void StopListening(NavigationController* navigation_controller); - void SendDetachToAgent(const TabContents& tab_contents); + void SendAttachToAgent(RenderViewHost* target_host); + void SendDetachToAgent(RenderViewHost* target_host); // This object is not NULL iff there is at least one registered // DevToolsClientHost. diff --git a/chrome/browser/debugger/devtools_manager_unittest.cc b/chrome/browser/debugger/devtools_manager_unittest.cc index 6169f60..5744471 100644 --- a/chrome/browser/debugger/devtools_manager_unittest.cc +++ b/chrome/browser/debugger/devtools_manager_unittest.cc @@ -33,6 +33,9 @@ class TestDevToolsClientHost : public DevToolsClientHost { Close(); } + virtual void SetInspectedTabUrl(const std::string& url) { + } + virtual void SendMessageToClient(const IPC::Message& message) { last_sent_message = &message; } diff --git a/chrome/browser/debugger/devtools_window_win.cc b/chrome/browser/debugger/devtools_window_win.cc index 25175f5..36ca327 100644 --- a/chrome/browser/debugger/devtools_window_win.cc +++ b/chrome/browser/debugger/devtools_window_win.cc @@ -7,8 +7,9 @@ #include "chrome/browser/debugger/devtools_manager.h" #include "chrome/browser/debugger/devtools_view.h" #include "chrome/browser/debugger/devtools_window.h" +#include "chrome/common/l10n_util.h" #include "chrome/views/window/window.h" - +#include "grit/generated_resources.h" // static DevToolsWindow* DevToolsWindow::Create() { @@ -50,6 +51,13 @@ void DevToolsWindowWin::InspectedTabClosing() { } } +void DevToolsWindowWin::SetInspectedTabUrl(const std::string& url) { + inspected_url_ = url; + if (window()) { + window()->UpdateWindowTitle(); + } +} + void DevToolsWindowWin::SendMessageToClient(const IPC::Message& message) { if (tools_view_) { tools_view_->SendMessageToClient(message); @@ -57,7 +65,7 @@ void DevToolsWindowWin::SendMessageToClient(const IPC::Message& message) { } std::wstring DevToolsWindowWin::GetWindowTitle() const { - return L"Developer Tools"; + return l10n_util::GetStringF(IDS_DEVTOOLS_TITLE, UTF8ToWide(inspected_url_)); } void DevToolsWindowWin::WindowClosing() { diff --git a/chrome/browser/debugger/devtools_window_win.h b/chrome/browser/debugger/devtools_window_win.h index 4cea5a3..066388d 100644 --- a/chrome/browser/debugger/devtools_window_win.h +++ b/chrome/browser/debugger/devtools_window_win.h @@ -25,6 +25,7 @@ class DevToolsWindowWin : public DevToolsWindow, virtual bool HasRenderViewHost(const RenderViewHost& rvh) const; virtual void InspectedTabClosing(); + virtual void SetInspectedTabUrl(const std::string& url); virtual void SendMessageToClient(const IPC::Message& message); private: @@ -39,6 +40,7 @@ class DevToolsWindowWin : public DevToolsWindow, virtual void DeleteDelegate(); DevToolsView* tools_view_; + std::string inspected_url_; DISALLOW_COPY_AND_ASSIGN(DevToolsWindowWin); }; diff --git a/chrome/browser/debugger/inspectable_tab_proxy.cc b/chrome/browser/debugger/inspectable_tab_proxy.cc index 48e0155..943a480 100644 --- a/chrome/browser/debugger/inspectable_tab_proxy.cc +++ b/chrome/browser/debugger/inspectable_tab_proxy.cc @@ -21,6 +21,10 @@ void DevToolsClientHostImpl::InspectedTabClosing() { delete this; } +void DevToolsClientHostImpl::SetInspectedTabUrl(const std::string& url) { + //TODO(apavlov): Notify debugger on the url update. +} + void DevToolsClientHostImpl::SendMessageToClient( const IPC::Message& msg) { IPC_BEGIN_MESSAGE_MAP(DevToolsClientHostImpl, msg) diff --git a/chrome/browser/debugger/inspectable_tab_proxy.h b/chrome/browser/debugger/inspectable_tab_proxy.h index c47c4d5..23e1b11 100644 --- a/chrome/browser/debugger/inspectable_tab_proxy.h +++ b/chrome/browser/debugger/inspectable_tab_proxy.h @@ -70,6 +70,7 @@ class DevToolsClientHostImpl : public DevToolsClientHost { // DevToolsClientHost interface virtual void InspectedTabClosing(); + virtual void SetInspectedTabUrl(const std::string& url); virtual void SendMessageToClient(const IPC::Message& msg); private: |