Index: chrome/browser/ui/views/frame/browser_view.h |
diff --git a/chrome/browser/ui/views/frame/browser_view.h b/chrome/browser/ui/views/frame/browser_view.h |
index 5d2032b860b2efca8a6bcdcf8474bd614f0ab474..b0d1057028afc13ad3bc6b4f0dffeb5060340eb7 100644 |
--- a/chrome/browser/ui/views/frame/browser_view.h |
+++ b/chrome/browser/ui/views/frame/browser_view.h |
@@ -30,6 +30,7 @@ |
#include "ui/base/models/simple_menu_model.h" |
#include "ui/gfx/native_widget_types.h" |
#include "ui/views/controls/button/button.h" |
+#include "ui/views/controls/single_split_view_listener.h" |
#include "ui/views/controls/webview/unhandled_keyboard_event_handler.h" |
#include "ui/views/widget/widget_delegate.h" |
#include "ui/views/widget/widget_observer.h" |
@@ -68,6 +69,7 @@ class Extension; |
namespace views { |
class AccessiblePaneView; |
class ExternalFocusTracker; |
+class SingleSplitView; |
class WebView; |
} |
@@ -86,6 +88,7 @@ class BrowserView : public BrowserWindow, |
public InfoBarContainerDelegate, |
public LoadCompleteListener::Delegate, |
public OmniboxPopupModelObserver, |
+ public views::SingleSplitViewListener, |
public ExclusiveAccessContext, |
public ExclusiveAccessBubbleViewsContext { |
public: |
@@ -100,7 +103,7 @@ class BrowserView : public BrowserWindow, |
void set_frame(BrowserFrame* frame) { frame_ = frame; } |
BrowserFrame* frame() const { return frame_; } |
- |
+ int GetSidebarWidth() const; |
// Returns a pointer to the BrowserView* interface implementation (an |
// instance of this object, typically) for a given native window, or null if |
// there is no such association. |
@@ -456,6 +459,10 @@ class BrowserView : public BrowserWindow, |
views::WebView* GetContentsWebViewForTest() { return contents_web_view_; } |
views::WebView* GetDevToolsWebViewForTest() { return devtools_web_view_; } |
+ // Handle Sidebar |
+ void ShowSidebar(content::WebContents* sidebar_contents); |
+ void HideSidebar(); |
+ |
private: |
// Do not friend BrowserViewLayout. Use the BrowserViewLayoutDelegate |
// interface to keep these two classes decoupled and testable. |
@@ -520,7 +527,7 @@ class BrowserView : public BrowserWindow, |
// |contents|. |contents| can be null. In this case, all optional UI will be |
// removed. |
void UpdateUIForContents(content::WebContents* contents); |
- |
+ bool SplitHandleMoved(views::SingleSplitView* sender) override; |
// Invoked to update the necessary things when our fullscreen state changes |
// to |fullscreen|. On Windows this is invoked immediately when we toggle the |
// full screen state. On Linux changing the fullscreen state is async, so we |
@@ -549,6 +556,7 @@ class BrowserView : public BrowserWindow, |
// Initialize the hung plugin detector. |
void InitHangMonitor(); |
+ void UpdateSidebarForContents(content::WebContents* sidebar_contents); |
// Possibly records a user metrics action corresponding to the passed-in |
// accelerator. Only implemented for Chrome OS, where we're interested in |
@@ -691,6 +699,12 @@ class BrowserView : public BrowserWindow, |
views::UnhandledKeyboardEventHandler unhandled_keyboard_event_handler_; |
+ views::WebView* sidebar_web_view_; |
+ |
+ views::View* sidebar_container_; |
+ |
+ views::SingleSplitView* sidebar_split_; |
+ |
// Used to measure the loading spinner animation rate. |
base::TimeTicks last_animation_time_; |