summaryrefslogtreecommitdiffstats
path: root/chrome/browser/debugger/tools_window.cc
diff options
context:
space:
mode:
authoryurys@google.com <yurys@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-20 11:14:55 +0000
committeryurys@google.com <yurys@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-20 11:14:55 +0000
commit5e1ce07a5f99e59bfe961c70e1d5cc2bf8f4fd86 (patch)
treec311ca8cfad3579e526aa6e8f97b6aff0b68ccdc /chrome/browser/debugger/tools_window.cc
parenta10c64530127a1e735b8e7a0d4eb8351e3ef65d2 (diff)
downloadchromium_src-5e1ce07a5f99e59bfe961c70e1d5cc2bf8f4fd86.zip
chromium_src-5e1ce07a5f99e59bfe961c70e1d5cc2bf8f4fd86.tar.gz
chromium_src-5e1ce07a5f99e59bfe961c70e1d5cc2bf8f4fd86.tar.bz2
Add tab content type for developer tools UI.
Add code routing messages between ToolsAgent and ToolsClient in the browser process. There is no direct IPC channel between inspected process and developer tools UI so all messages have to be routed through the browser process. On the side of inspected page there is ToolsAgent existing in all renderers so that we can start inspecting the page at any moment by talking to this object. On the side of developer tools renderer there is ToolsClient which is created only for RenderView that host developer tools UI. (darin: tools message representation will be later changed from id+string to just IPC::Message) Review URL: http://codereview.chromium.org/21510 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10090 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/debugger/tools_window.cc')
-rw-r--r--chrome/browser/debugger/tools_window.cc54
1 files changed, 54 insertions, 0 deletions
diff --git a/chrome/browser/debugger/tools_window.cc b/chrome/browser/debugger/tools_window.cc
new file mode 100644
index 0000000..e87578e
--- /dev/null
+++ b/chrome/browser/debugger/tools_window.cc
@@ -0,0 +1,54 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/debugger/tools_window.h"
+
+#include "chrome/browser/debugger/tools_view.h"
+#include "chrome/views/window.h"
+
+ToolsWindow::ToolsWindow() : window_(NULL), tools_view_(NULL) {
+}
+
+ToolsWindow::~ToolsWindow() {
+}
+
+void ToolsWindow::Show(int inspected_process_id,
+ int inspected_view_id) {
+ if (window_) {
+ window_->Show();
+ return;
+ }
+
+ tools_view_ = new ToolsView(inspected_process_id, inspected_view_id);
+ window_ = views::Window::CreateChromeWindow(NULL, gfx::Rect(), this);
+ window_->Show();
+}
+
+void ToolsWindow::SendToolsClientMessage(int tools_message_type,
+ const std::wstring& body) {
+ if (!tools_view_)
+ return;
+ tools_view_->SendToolsClientMessage(tools_message_type, body);
+}
+
+std::wstring ToolsWindow::GetWindowTitle() const {
+ return L"Developer Tools";
+}
+
+void ToolsWindow::WindowClosing() {
+ if (tools_view_) {
+ tools_view_->OnWindowClosing();
+ tools_view_ = NULL;
+ window_ = NULL;
+ }
+}
+
+bool ToolsWindow::CanResize() const {
+ return true;
+}
+
+views::View* ToolsWindow::GetContentsView() {
+ return tools_view_;
+}
+