summaryrefslogtreecommitdiffstats
path: root/chrome/browser/debugger
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/debugger')
-rw-r--r--chrome/browser/debugger/devtools_client_host.h6
-rw-r--r--chrome/browser/debugger/devtools_manager.cc24
-rw-r--r--chrome/browser/debugger/devtools_manager.h5
-rw-r--r--chrome/browser/debugger/devtools_manager_unittest.cc3
-rw-r--r--chrome/browser/debugger/devtools_window_win.cc12
-rw-r--r--chrome/browser/debugger/devtools_window_win.h2
-rw-r--r--chrome/browser/debugger/inspectable_tab_proxy.cc4
-rw-r--r--chrome/browser/debugger/inspectable_tab_proxy.h1
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: