Index: chrome/browser/ui/views/frame/contents_container.h |
diff --git a/chrome/browser/ui/views/frame/contents_container.h b/chrome/browser/ui/views/frame/contents_container.h |
index cfd6d9a2e16d0d2eff3ab310045e7815bc269174..72779ee7af750671ea342f4e788b5962037e3193 100644 |
--- a/chrome/browser/ui/views/frame/contents_container.h |
+++ b/chrome/browser/ui/views/frame/contents_container.h |
@@ -9,13 +9,20 @@ |
#include "base/basictypes.h" |
#include "base/compiler_specific.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "ui/compositor/layer.h" |
+#include "ui/gfx/rect.h" |
#include "ui/views/view.h" |
+namespace views { |
+class WebView; |
+} |
+ |
// ContentsContainer is responsible for managing the active WebContents view. |
// ContentsContainer has one child: the currently active WebContents. |
class ContentsContainer : public views::View { |
public: |
- explicit ContentsContainer(views::View* active_web_view); |
+ explicit ContentsContainer(views::WebView* active_web_view); |
virtual ~ContentsContainer(); |
// Sets the active top margin; the active WebView's y origin would be |
@@ -24,17 +31,34 @@ class ContentsContainer : public views::View { |
// if the margin changed and this view needs Layout(). |
bool SetActiveTopMargin(int margin); |
+ // Fast-resize is used for |active_web_view_| while the scroll-end effect is |
+ // active. It also prevents the bounds of the contents from being updated by |
+ // layouts of this class. |
+ virtual void ActivateScrollEndEffect(); |
+ virtual void DeactivateScrollEndEffect(); |
+ |
+ virtual void UpdateScrollEndEffectHeightDelta(int height_delta, |
+ bool scrolling_down); |
+ |
// Overridden from views::View: |
virtual void Layout() OVERRIDE; |
virtual const char* GetClassName() const OVERRIDE; |
private: |
- views::View* active_web_view_; |
+ views::WebView* active_web_view_; |
// The margin between the top and the active view. This is used to make the |
// find bar overlap the detached bookmark bar on the new tab page. |
int active_top_margin_; |
+ // When the effect is active the web contents will not have its bounds |
+ // adjusted on layout and instead will just be clipped. |
+ bool scroll_effect_active_; |
+ |
+ // Stores the bounds of the web_view before the scroll end effect starts. This |
+ // allows for restoring the bounds of the view at the end of the effect. |
+ gfx::Rect web_view_bounds_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ContentsContainer); |
}; |