summaryrefslogtreecommitdiffstats
path: root/chrome/browser/debugger/devtools_window.h
diff options
context:
space:
mode:
authorpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-20 08:53:49 +0000
committerpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-20 08:53:49 +0000
commitdce502760342058ecaf1def46d1e1144c85b6cb3 (patch)
treef739f131bbc9bcc7d419d7ca697004d03cc23ad6 /chrome/browser/debugger/devtools_window.h
parente96893ec88c9331cabbf4a71384728b0d819ed11 (diff)
downloadchromium_src-dce502760342058ecaf1def46d1e1144c85b6cb3.zip
chromium_src-dce502760342058ecaf1def46d1e1144c85b6cb3.tar.gz
chromium_src-dce502760342058ecaf1def46d1e1144c85b6cb3.tar.bz2
DevTools: move devtools_window to chrome/, remove most chrome/ dependencies from devtools_manager.
BUG= TEST= Review URL: http://codereview.chromium.org/7429006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93173 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/debugger/devtools_window.h')
-rw-r--r--chrome/browser/debugger/devtools_window.h129
1 files changed, 129 insertions, 0 deletions
diff --git a/chrome/browser/debugger/devtools_window.h b/chrome/browser/debugger/devtools_window.h
new file mode 100644
index 0000000..5daac3d
--- /dev/null
+++ b/chrome/browser/debugger/devtools_window.h
@@ -0,0 +1,129 @@
+// Copyright (c) 2011 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.
+
+#ifndef CHROME_BROWSER_DEBUGGER_DEVTOOLS_WINDOW_H_
+#define CHROME_BROWSER_DEBUGGER_DEVTOOLS_WINDOW_H_
+#pragma once
+
+#include <string>
+#include <vector>
+
+#include "base/basictypes.h"
+#include "chrome/browser/debugger/devtools_toggle_action.h"
+#include "content/browser/debugger/devtools_client_host.h"
+#include "content/browser/tab_contents/tab_contents_delegate.h"
+#include "content/common/notification_observer.h"
+#include "content/common/notification_registrar.h"
+
+namespace IPC {
+class Message;
+}
+
+class Browser;
+class BrowserWindow;
+class PrefService;
+class Profile;
+class RenderViewHost;
+class TabContentsWrapper;
+
+namespace base {
+class Value;
+}
+
+class DevToolsWindow
+ : public DevToolsClientHost,
+ public NotificationObserver,
+ public TabContentsDelegate {
+ public:
+ static const char kDevToolsApp[];
+ static void RegisterUserPrefs(PrefService* prefs);
+ static TabContentsWrapper* GetDevToolsContents(TabContents* inspected_tab);
+ static DevToolsWindow* FindDevToolsWindow(RenderViewHost* window_rvh);
+
+ static DevToolsWindow* CreateDevToolsWindowForWorker(Profile* profile);
+ static DevToolsWindow* OpenDevToolsWindow(RenderViewHost* inspected_rvh);
+ static DevToolsWindow* ToggleDevToolsWindow(RenderViewHost* inspected_rvh,
+ DevToolsToggleAction action);
+ static void InspectElement(RenderViewHost* inspected_rvh, int x, int y);
+
+ virtual ~DevToolsWindow();
+
+ // Overridden from DevToolsClientHost.
+ virtual void SendMessageToClient(const IPC::Message& message);
+ virtual void InspectedTabClosing();
+ virtual void TabReplaced(TabContents* new_tab);
+ virtual RenderViewHost* GetClientRenderViewHost();
+ void Activate();
+ void SetDocked(bool docked);
+ void Close();
+ virtual void SaveAs(const std::string& suggested_file_name,
+ const std::string& content);
+ RenderViewHost* GetRenderViewHost();
+
+ void Show(DevToolsToggleAction action);
+
+ TabContentsWrapper* tab_contents() { return tab_contents_; }
+ Browser* browser() { return browser_; } // For tests.
+ bool is_docked() { return docked_; }
+
+ private:
+ DevToolsWindow(Profile* profile, RenderViewHost* inspected_rvh, bool docked,
+ bool shared_worker_frontend);
+
+ void CreateDevToolsBrowser();
+ bool FindInspectedBrowserAndTabIndex(Browser**, int* tab);
+ BrowserWindow* GetInspectedBrowserWindow();
+ bool IsInspectedBrowserPopupOrPanel();
+ void UpdateFrontendAttachedState();
+
+ // Overridden from NotificationObserver.
+ virtual void Observe(int type,
+ const NotificationSource& source,
+ const NotificationDetails& details);
+
+ void ScheduleAction(DevToolsToggleAction action);
+ void DoAction();
+ GURL GetDevToolsUrl();
+ void UpdateTheme();
+ void AddDevToolsExtensionsToClient();
+ void CallClientFunction(const string16& function_name,
+ const base::Value& arg);
+ // Overridden from TabContentsDelegate.
+ virtual void OpenURLFromTab(TabContents* source,
+ const GURL& url,
+ const GURL& referrer,
+ WindowOpenDisposition disposition,
+ PageTransition::Type transition);
+ virtual void AddNewContents(TabContents* source,
+ TabContents* new_contents,
+ WindowOpenDisposition disposition,
+ const gfx::Rect& initial_pos,
+ bool user_gesture);
+ virtual void CloseContents(TabContents* source) {}
+ virtual bool CanReloadContents(TabContents* source) const;
+ virtual bool PreHandleKeyboardEvent(const NativeWebKeyboardEvent& event,
+ bool* is_keyboard_shortcut);
+ virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event);
+ virtual content::JavaScriptDialogCreator* GetJavaScriptDialogCreator();
+
+ virtual void FrameNavigating(const std::string& url) {}
+
+ static DevToolsWindow* ToggleDevToolsWindow(RenderViewHost* inspected_rvh,
+ bool force_open,
+ DevToolsToggleAction action);
+ static DevToolsWindow* AsDevToolsWindow(DevToolsClientHost*);
+
+ Profile* profile_;
+ TabContentsWrapper* inspected_tab_;
+ TabContentsWrapper* tab_contents_;
+ Browser* browser_;
+ bool docked_;
+ bool is_loaded_;
+ DevToolsToggleAction action_on_load_;
+ const bool shared_worker_frontend_;
+ NotificationRegistrar registrar_;
+ DISALLOW_COPY_AND_ASSIGN(DevToolsWindow);
+};
+
+#endif // CHROME_BROWSER_DEBUGGER_DEVTOOLS_WINDOW_H_