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>2009-07-07 07:40:02 +0000
committerpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-07 07:40:02 +0000
commit167c81a337698774cad8ef1c833e33fbd3d7d390 (patch)
tree459a42977ea5c11a8f4584dbfa82dd5f09cdf345 /chrome/browser/debugger/devtools_window.h
parent34f464fb752432829a22a30767b66eb5c24a2242 (diff)
downloadchromium_src-167c81a337698774cad8ef1c833e33fbd3d7d390.zip
chromium_src-167c81a337698774cad8ef1c833e33fbd3d7d390.tar.gz
chromium_src-167c81a337698774cad8ef1c833e33fbd3d7d390.tar.bz2
DevTools: Preserve devtools window contents on dock/undock.
Review URL: http://codereview.chromium.org/149199 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20016 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/debugger/devtools_window.h')
-rw-r--r--chrome/browser/debugger/devtools_window.h73
1 files changed, 49 insertions, 24 deletions
diff --git a/chrome/browser/debugger/devtools_window.h b/chrome/browser/debugger/devtools_window.h
index b6d4236..681c5bd 100644
--- a/chrome/browser/debugger/devtools_window.h
+++ b/chrome/browser/debugger/devtools_window.h
@@ -8,7 +8,9 @@
#include <string>
#include "base/basictypes.h"
+#include "base/scoped_ptr.h"
#include "chrome/browser/debugger/devtools_client_host.h"
+#include "chrome/browser/tab_contents/tab_contents_delegate.h"
#include "chrome/common/notification_registrar.h"
#include "chrome/common/notification_service.h"
@@ -22,45 +24,68 @@ class Profile;
class RenderViewHost;
class TabContents;
-class DevToolsWindow : public DevToolsClientHost, public NotificationObserver {
+class DevToolsWindow :
+ public DevToolsClientHost,
+ public NotificationObserver,
+ TabContentsDelegate {
public:
- static DevToolsWindow* CreateDevToolsWindow(Profile* profile,
- RenderViewHost* inspected_rvh,
- bool docked);
-
static TabContents* GetDevToolsContents(TabContents* inspected_tab);
+ DevToolsWindow(Profile* profile, RenderViewHost* inspected_rvh, bool docked);
virtual ~DevToolsWindow();
- virtual void Show() = 0;
- virtual void Activate() = 0;
- bool is_docked() { return docked_; };
- RenderViewHost* GetRenderViewHost();
- // DevToolsClientHost override.
+ // Overridden from DevToolsClientHost.
virtual DevToolsWindow* AsDevToolsWindow();
virtual void SendMessageToClient(const IPC::Message& message);
+ virtual void InspectedTabClosing();
- // NotificationObserver override.
- virtual void Observe(NotificationType type,
- const NotificationSource& source,
- const NotificationDetails& details);
+ void Show();
+ void Activate();
+ void SetDocked(bool docked);
+ RenderViewHost* GetRenderViewHost();
TabContents* tab_contents() { return tab_contents_; }
- Browser* browser() { return browser_; }
+ Browser* browser() { return browser_; } // For tests.
+ bool is_docked() { return docked_; };
+
+ private:
+ void CreateDevToolsBrowser();
+ BrowserWindow* GetInspectedBrowserWindow();
- protected:
- DevToolsWindow(bool docked);
- GURL GetContentsUrl();
- void InitTabContents(TabContents* tab_contents);
+ // Overridden from NotificationObserver.
+ virtual void Observe(NotificationType type,
+ const NotificationSource& source,
+ const NotificationDetails& details);
+ // Overridden from TabContentsDelegate.
+ virtual void OpenURLFromTab(TabContents* source,
+ const GURL& url,
+ const GURL& referrer,
+ WindowOpenDisposition disposition,
+ PageTransition::Type transition) {}
+ virtual void NavigationStateChanged(const TabContents* source,
+ unsigned changed_flags) {}
+ virtual void AddNewContents(TabContents* source,
+ TabContents* new_contents,
+ WindowOpenDisposition disposition,
+ const gfx::Rect& initial_pos,
+ bool user_gesture) {}
+ virtual void ActivateContents(TabContents* contents) {}
+ virtual void LoadingStateChanged(TabContents* source) {}
+ virtual void CloseContents(TabContents* source) {}
+ virtual void MoveContents(TabContents* source, const gfx::Rect& pos) {}
+ virtual bool IsPopup(TabContents* source) { return false; }
+ virtual void URLStarredChanged(TabContents* source, bool starred) {}
+ virtual void UpdateTargetURL(TabContents* source, const GURL& url) {}
+ virtual void ToolbarSizeChanged(TabContents* source, bool is_animating) {}
+
+ Profile* profile_;
+ TabContents* inspected_tab_;
TabContents* tab_contents_;
Browser* browser_;
-
- private:
- static BrowserWindow* GetBrowserWindow(RenderViewHost* rvh);
- NotificationRegistrar registrar_;
-
+ BrowserWindow* inspected_window_;
bool docked_;
+ NotificationRegistrar registrar_;
DISALLOW_COPY_AND_ASSIGN(DevToolsWindow);
};