diff options
author | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-20 08:53:49 +0000 |
---|---|---|
committer | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-20 08:53:49 +0000 |
commit | dce502760342058ecaf1def46d1e1144c85b6cb3 (patch) | |
tree | f739f131bbc9bcc7d419d7ca697004d03cc23ad6 /chrome/browser/debugger/devtools_window.h | |
parent | e96893ec88c9331cabbf4a71384728b0d819ed11 (diff) | |
download | chromium_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.h | 129 |
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_ |