Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(365)

Side by Side Diff: sky/engine/core/frame/FrameView.h

Issue 646273006: Get rid of ScrollView. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: merge to ToT Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 Copyright (C) 1997 Martin Jones (mjones@kde.org) 2 Copyright (C) 1997 Martin Jones (mjones@kde.org)
3 (C) 1998 Waldo Bastian (bastian@kde.org) 3 (C) 1998 Waldo Bastian (bastian@kde.org)
4 (C) 1998, 1999 Torben Weis (weis@kde.org) 4 (C) 1998, 1999 Torben Weis (weis@kde.org)
5 (C) 1999 Lars Knoll (knoll@kde.org) 5 (C) 1999 Lars Knoll (knoll@kde.org)
6 (C) 1999 Antti Koivisto (koivisto@kde.org) 6 (C) 1999 Antti Koivisto (koivisto@kde.org)
7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. 7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
8 8
9 This library is free software; you can redistribute it and/or 9 This library is free software; you can redistribute it and/or
10 modify it under the terms of the GNU Library General Public 10 modify it under the terms of the GNU Library General Public
11 License as published by the Free Software Foundation; either 11 License as published by the Free Software Foundation; either
12 version 2 of the License, or (at your option) any later version. 12 version 2 of the License, or (at your option) any later version.
13 13
14 This library is distributed in the hope that it will be useful, 14 This library is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 Library General Public License for more details. 17 Library General Public License for more details.
18 18
19 You should have received a copy of the GNU Library General Public License 19 You should have received a copy of the GNU Library General Public License
20 along with this library; see the file COPYING.LIB. If not, write to 20 along with this library; see the file COPYING.LIB. If not, write to
21 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 21 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 Boston, MA 02110-1301, USA. 22 Boston, MA 02110-1301, USA.
23 */ 23 */
24 24
25 #ifndef FrameView_h 25 #ifndef FrameView_h
26 #define FrameView_h 26 #define FrameView_h
27 27
28 #include "core/rendering/PaintPhase.h" 28 #include "core/rendering/PaintPhase.h"
29 #include "platform/FrameWidget.h"
30 #include "platform/HostWindow.h"
29 #include "platform/RuntimeEnabledFeatures.h" 31 #include "platform/RuntimeEnabledFeatures.h"
32 #include "platform/Widget.h"
33 #include "platform/Widget.h"
30 #include "platform/geometry/LayoutRect.h" 34 #include "platform/geometry/LayoutRect.h"
31 #include "platform/graphics/Color.h" 35 #include "platform/graphics/Color.h"
32 #include "platform/scroll/ScrollView.h" 36 #include "platform/scroll/ScrollableArea.h"
33 #include "wtf/Forward.h" 37 #include "wtf/Forward.h"
34 #include "wtf/OwnPtr.h" 38 #include "wtf/OwnPtr.h"
35 #include "wtf/text/WTFString.h" 39 #include "wtf/text/WTFString.h"
36 40
37 namespace blink { 41 namespace blink {
38 42
39 class DocumentLifecycle; 43 class DocumentLifecycle;
40 class Cursor; 44 class Cursor;
41 class Element; 45 class Element;
42 class FloatSize; 46 class FloatSize;
43 class LocalFrame; 47 class LocalFrame;
44 class KURL; 48 class KURL;
45 class Node; 49 class Node;
46 class Page; 50 class Page;
47 class RenderBox; 51 class RenderBox;
48 class RenderObject; 52 class RenderObject;
49 class RenderStyle; 53 class RenderStyle;
50 class RenderView; 54 class RenderView;
51 class RenderWidget; 55 class RenderWidget;
52 56
53 typedef unsigned long long DOMTimeStamp; 57 typedef unsigned long long DOMTimeStamp;
54 58
55 class FrameView FINAL : public ScrollView { 59 class FrameView final : public FrameWidget {
56 public: 60 public:
57 friend class RenderView; 61 friend class RenderView;
58 62
59 static PassRefPtr<FrameView> create(LocalFrame*); 63 static PassRefPtr<FrameView> create(LocalFrame*);
60 static PassRefPtr<FrameView> create(LocalFrame*, const IntSize& initialSize) ; 64 static PassRefPtr<FrameView> create(LocalFrame*, const IntSize& initialSize) ;
61 65
62 virtual ~FrameView(); 66 virtual ~FrameView();
63 67
64 virtual HostWindow* hostWindow() const OVERRIDE; 68 HostWindow* hostWindow() const;
65 69
66 virtual void invalidateRect(const IntRect&) OVERRIDE; 70 void invalidateRect(const IntRect&);
67 virtual void setFrameRect(const IntRect&) OVERRIDE; 71 void setFrameRect(const IntRect&);
68 72
69 LocalFrame& frame() const { return *m_frame; } 73 LocalFrame& frame() const { return *m_frame; }
70 Page* page() const; 74 Page* page() const;
71 75
72 RenderView* renderView() const; 76 RenderView* renderView() const;
73 77
74 virtual void setCanHaveScrollbars(bool) OVERRIDE; 78 // FIXME(sky): Remove.
79 void setCanHaveScrollbars(bool);
75 80
76 virtual void setContentsSize(const IntSize&) OVERRIDE; 81 void setContentsSize(const IntSize&);
77 IntPoint clampOffsetAtScale(const IntPoint& offset, float scale) const; 82 IntPoint clampOffsetAtScale(const IntPoint& offset, float scale) const;
78 83
79 void layout(bool allowSubtree = true); 84 void layout(bool allowSubtree = true);
80 bool didFirstLayout() const; 85 bool didFirstLayout() const;
81 void scheduleRelayout(); 86 void scheduleRelayout();
82 void scheduleRelayoutOfSubtree(RenderObject*); 87 void scheduleRelayoutOfSubtree(RenderObject*);
83 bool layoutPending() const; 88 bool layoutPending() const;
84 bool isInPerformLayout() const; 89 bool isInPerformLayout() const;
85 90
86 void setCanInvalidatePaintDuringPerformLayout(bool b) { m_canInvalidatePaint DuringPerformLayout = b; } 91 void setCanInvalidatePaintDuringPerformLayout(bool b) { m_canInvalidatePaint DuringPerformLayout = b; }
(...skipping 18 matching lines...) Expand all
105 bool layoutSizeFixedToFrameSize() { return m_layoutSizeFixedToFrameSize; } 110 bool layoutSizeFixedToFrameSize() { return m_layoutSizeFixedToFrameSize; }
106 111
107 bool needsFullPaintInvalidation() const { return m_doFullPaintInvalidation; } 112 bool needsFullPaintInvalidation() const { return m_doFullPaintInvalidation; }
108 113
109 void updateAcceleratedCompositingSettings(); 114 void updateAcceleratedCompositingSettings();
110 115
111 void recalcOverflowAfterStyleChange(); 116 void recalcOverflowAfterStyleChange();
112 117
113 bool isEnclosedInCompositingLayer() const; 118 bool isEnclosedInCompositingLayer() const;
114 119
115 void resetScrollbars();
116 void prepareForDetach(); 120 void prepareForDetach();
117 virtual void recalculateScrollbarOverlayStyle(); 121 virtual void recalculateScrollbarOverlayStyle();
118 122
119 void clear(); 123 void clear();
120 124
121 bool isTransparent() const; 125 bool isTransparent() const;
122 void setTransparent(bool isTransparent); 126 void setTransparent(bool isTransparent);
123 127
124 // True if the FrameView is not transparent, and the base background color i s opaque. 128 // True if the FrameView is not transparent, and the base background color i s opaque.
125 bool hasOpaqueBackground() const; 129 bool hasOpaqueBackground() const;
126 130
127 Color baseBackgroundColor() const; 131 Color baseBackgroundColor() const;
128 void setBaseBackgroundColor(const Color&); 132 void setBaseBackgroundColor(const Color&);
129 void updateBackgroundRecursively(const Color&, bool); 133 void updateBackgroundRecursively(const Color&, bool);
130 134
131 void adjustViewSize(); 135 void adjustViewSize();
132 136
133 virtual IntRect windowClipRect(IncludeScrollbarsInRect = ExcludeScrollbars) const OVERRIDE; 137 IntRect windowClipRect(IncludeScrollbarsInRect = ExcludeScrollbars) const;
134 138
135 virtual float visibleContentScaleFactor() const OVERRIDE { return m_visibleC ontentScaleFactor; } 139 float visibleContentScaleFactor() const { return m_visibleContentScaleFactor ; }
136 void setVisibleContentScaleFactor(float); 140 void setVisibleContentScaleFactor(float);
137 141
138 virtual float inputEventsScaleFactor() const OVERRIDE; 142 float inputEventsScaleFactor() const;
139 virtual IntSize inputEventsOffsetForEmulation() const OVERRIDE; 143 IntSize inputEventsOffsetForEmulation() const;
140 void setInputEventsTransformForEmulation(const IntSize&, float); 144 void setInputEventsTransformForEmulation(const IntSize&, float);
141 145
142 virtual void setScrollPosition(const IntPoint&, ScrollBehavior = ScrollBehav iorInstant) OVERRIDE; 146 // FIXME(sky): Remove
143 virtual bool isRubberBandInProgress() const OVERRIDE; 147 void setScrollPosition(const IntPoint&, ScrollBehavior = ScrollBehaviorInsta nt);
148 bool isRubberBandInProgress() const;
144 void setScrollPositionNonProgrammatically(const IntPoint&); 149 void setScrollPositionNonProgrammatically(const IntPoint&);
145 150
146 // This is different than visibleContentRect() in that it ignores negative ( or overly positive) 151 // This is different than visibleContentRect() in that it ignores negative ( or overly positive)
147 // offsets from rubber-banding, and it takes zooming into account. 152 // offsets from rubber-banding, and it takes zooming into account.
148 LayoutRect viewportConstrainedVisibleContentRect() const; 153 LayoutRect viewportConstrainedVisibleContentRect() const;
149 void viewportConstrainedVisibleContentSizeChanged(bool widthChanged, bool he ightChanged); 154 void viewportConstrainedVisibleContentSizeChanged(bool widthChanged, bool he ightChanged);
150 155
151 AtomicString mediaType() const; 156 AtomicString mediaType() const;
152 void setMediaType(const AtomicString&); 157 void setMediaType(const AtomicString&);
153 158
(...skipping 12 matching lines...) Expand all
166 171
167 void postLayoutTimerFired(Timer<FrameView>*); 172 void postLayoutTimerFired(Timer<FrameView>*);
168 173
169 bool wasScrolledByUser() const; 174 bool wasScrolledByUser() const;
170 void setWasScrolledByUser(bool); 175 void setWasScrolledByUser(bool);
171 176
172 void addWidget(RenderWidget*); 177 void addWidget(RenderWidget*);
173 void removeWidget(RenderWidget*); 178 void removeWidget(RenderWidget*);
174 void updateWidgetPositions(); 179 void updateWidgetPositions();
175 180
176 virtual void paintContents(GraphicsContext*, const IntRect& damageRect) OVER RIDE; 181 void paintContents(GraphicsContext*, const IntRect& damageRect);
177 void setPaintBehavior(PaintBehavior); 182 void setPaintBehavior(PaintBehavior);
178 PaintBehavior paintBehavior() const; 183 PaintBehavior paintBehavior() const;
179 bool isPainting() const; 184 bool isPainting() const;
180 bool hasEverPainted() const { return m_lastPaintTime; } 185 bool hasEverPainted() const { return m_lastPaintTime; }
181 void setNodeToDraw(Node*); 186 void setNodeToDraw(Node*);
182 187
183 virtual void paintOverhangAreas(GraphicsContext*, const IntRect& horizontalO verhangArea, const IntRect& verticalOverhangArea, const IntRect& dirtyRect) OVER RIDE; 188 // FIXME(sky): Remove
189 void paintOverhangAreas(GraphicsContext*, const IntRect& horizontalOverhangA rea, const IntRect& verticalOverhangArea, const IntRect& dirtyRect);
184 190
185 Color documentBackgroundColor() const; 191 Color documentBackgroundColor() const;
186 192
187 static double currentFrameTimeStamp() { return s_currentFrameTimeStamp; } 193 static double currentFrameTimeStamp() { return s_currentFrameTimeStamp; }
188 194
189 void updateLayoutAndStyleForPainting(); 195 void updateLayoutAndStyleForPainting();
190 void updateLayoutAndStyleIfNeededRecursive(); 196 void updateLayoutAndStyleIfNeededRecursive();
191 197
192 void invalidateTreeIfNeededRecursive(); 198 void invalidateTreeIfNeededRecursive();
193 199
194 void forceLayout(bool allowSubtree = false); 200 void forceLayout(bool allowSubtree = false);
195 201
196 void scrollElementToRect(Element*, const IntRect&); 202 void scrollElementToRect(Element*, const IntRect&);
197 void scrollContentsIfNeededRecursive(); 203 void scrollContentsIfNeededRecursive();
198 204
199 // Methods to convert points and rects between the coordinate space of the r enderer, and this view. 205 // Methods to convert points and rects between the coordinate space of the r enderer, and this view.
200 IntRect convertFromRenderer(const RenderObject&, const IntRect&) const; 206 IntRect convertFromRenderer(const RenderObject&, const IntRect&) const;
201 IntRect convertToRenderer(const RenderObject&, const IntRect&) const; 207 IntRect convertToRenderer(const RenderObject&, const IntRect&) const;
202 IntPoint convertFromRenderer(const RenderObject&, const IntPoint&) const; 208 IntPoint convertFromRenderer(const RenderObject&, const IntPoint&) const;
203 IntPoint convertToRenderer(const RenderObject&, const IntPoint&) const; 209 IntPoint convertToRenderer(const RenderObject&, const IntPoint&) const;
204 210
205 bool isScrollable(); 211 bool isScrollable();
206 212
207 enum ScrollbarModesCalculationStrategy { RulesFromWebContentOnly, AnyRule }; 213 enum ScrollbarModesCalculationStrategy { RulesFromWebContentOnly, AnyRule };
208 void calculateScrollbarModesForLayoutAndSetViewportRenderer(ScrollbarMode& h Mode, ScrollbarMode& vMode, ScrollbarModesCalculationStrategy = AnyRule); 214 void calculateScrollbarModesForLayoutAndSetViewportRenderer(ScrollbarMode& h Mode, ScrollbarMode& vMode, ScrollbarModesCalculationStrategy = AnyRule);
209 215
210 virtual IntPoint lastKnownMousePosition() const OVERRIDE; 216 // FIXME(sky): Maybe remove now that we're not a ScrollView?
217 IntPoint lastKnownMousePosition() const;
211 bool shouldSetCursor() const; 218 bool shouldSetCursor() const;
212 219
213 void setCursor(const Cursor&); 220 void setCursor(const Cursor&);
214 221
215 virtual bool scrollbarsCanBeActive() const OVERRIDE; 222 // FIXME(sky): Remove
223 bool scrollbarsCanBeActive() const;
216 224
217 // FIXME: Remove this method once plugin loading is decoupled from layout. 225 // FIXME: Remove this method once plugin loading is decoupled from layout.
218 void flushAnyPendingPostLayoutTasks(); 226 void flushAnyPendingPostLayoutTasks();
219 227
220 void setTracksPaintInvalidations(bool); 228 void setTracksPaintInvalidations(bool);
221 bool isTrackingPaintInvalidations() const { return m_isTrackingPaintInvalida tions; } 229 bool isTrackingPaintInvalidations() const { return m_isTrackingPaintInvalida tions; }
222 void resetTrackedPaintInvalidations(); 230 void resetTrackedPaintInvalidations();
223 231
224 String trackedPaintInvalidationRectsAsText() const; 232 String trackedPaintInvalidationRectsAsText() const;
225 233
226 typedef HashSet<ScrollableArea*> ScrollableAreaSet; 234 typedef HashSet<ScrollableArea*> ScrollableAreaSet;
227 void addScrollableArea(ScrollableArea*); 235 void addScrollableArea(ScrollableArea*);
228 void removeScrollableArea(ScrollableArea*); 236 void removeScrollableArea(ScrollableArea*);
229 const ScrollableAreaSet* scrollableAreas() const { return m_scrollableAreas. get(); } 237 const ScrollableAreaSet* scrollableAreas() const { return m_scrollableAreas. get(); }
230 238
231 // With CSS style "resize:" enabled, a little resizer handle will appear at the bottom 239 // With CSS style "resize:" enabled, a little resizer handle will appear at the bottom
232 // right of the object. We keep track of these resizer areas for checking if touches 240 // right of the object. We keep track of these resizer areas for checking if touches
233 // (implemented using Scroll gesture) are targeting the resizer. 241 // (implemented using Scroll gesture) are targeting the resizer.
234 typedef HashSet<RenderBox*> ResizerAreaSet; 242 typedef HashSet<RenderBox*> ResizerAreaSet;
235 void addResizerArea(RenderBox&); 243 void addResizerArea(RenderBox&);
236 void removeResizerArea(RenderBox&); 244 void removeResizerArea(RenderBox&);
237 const ResizerAreaSet* resizerAreas() const { return m_resizerAreas.get(); } 245 const ResizerAreaSet* resizerAreas() const { return m_resizerAreas.get(); }
238 246
239 virtual void removeChild(Widget*) OVERRIDE; 247 void addChild(PassRefPtr<Widget>);
248 void removeChild(Widget*) final;
240 249
241 // This function exists for ports that need to handle wheel events manually. 250 // This function exists for ports that need to handle wheel events manually.
242 // On Mac WebKit1 the underlying NSScrollView just does the scrolling, but o n most other platforms 251 // On Mac WebKit1 the underlying NSScrollView just does the scrolling, but o n most other platforms
243 // we need this function in order to do the scroll ourselves. 252 // we need this function in order to do the scroll ourselves.
244 bool wheelEvent(const PlatformWheelEvent&); 253 bool wheelEvent(const PlatformWheelEvent&);
245 254
246 bool inProgrammaticScroll() const { return m_inProgrammaticScroll; } 255 bool inProgrammaticScroll() const { return m_inProgrammaticScroll; }
247 void setInProgrammaticScroll(bool programmaticScroll) { m_inProgrammaticScro ll = programmaticScroll; } 256 void setInProgrammaticScroll(bool programmaticScroll) { m_inProgrammaticScro ll = programmaticScroll; }
248 257
249 void setHasSoftwareFilters(bool hasSoftwareFilters) { m_hasSoftwareFilters = hasSoftwareFilters; } 258 void setHasSoftwareFilters(bool hasSoftwareFilters) { m_hasSoftwareFilters = hasSoftwareFilters; }
250 bool hasSoftwareFilters() const { return m_hasSoftwareFilters; } 259 bool hasSoftwareFilters() const { return m_hasSoftwareFilters; }
251 260
252 virtual bool isActive() const OVERRIDE; 261 bool isActive() const;
253 262
254 // DEPRECATED: Use viewportConstrainedVisibleContentRect() instead. 263 // DEPRECATED: Use viewportConstrainedVisibleContentRect() instead.
255 IntSize scrollOffsetForFixedPosition() const; 264 IntSize scrollOffsetForFixedPosition() const;
256 265
257 // FIXME: This should probably be renamed as the 'inSubtreeLayout' parameter 266 // FIXME: This should probably be renamed as the 'inSubtreeLayout' parameter
258 // passed around the FrameView layout methods can be true while this returns 267 // passed around the FrameView layout methods can be true while this returns
259 // false. 268 // false.
260 bool isSubtreeLayout() const { return !!m_layoutSubtreeRoot; } 269 bool isSubtreeLayout() const { return !!m_layoutSubtreeRoot; }
261 270
262 // Sets the tickmarks for the FrameView, overriding the default behavior 271 // Sets the tickmarks for the FrameView, overriding the default behavior
263 // which is to display the tickmarks corresponding to find results. 272 // which is to display the tickmarks corresponding to find results.
264 // If |m_tickmarks| is empty, the default behavior is restored. 273 // If |m_tickmarks| is empty, the default behavior is restored.
265 void setTickmarks(const Vector<IntRect>& tickmarks) { m_tickmarks = tickmark s; } 274 void setTickmarks(const Vector<IntRect>& tickmarks) { m_tickmarks = tickmark s; }
266 275
267 // ScrollableArea interface 276 // ScrollableArea interface
268 virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&) OVERRIDE; 277 // FIXME(sky): Remove
269 virtual void getTickmarks(Vector<IntRect>&) const OVERRIDE; 278 void invalidateScrollbarRect(Scrollbar*, const IntRect&);
270 virtual void scrollTo(const IntSize&) OVERRIDE; 279 void getTickmarks(Vector<IntRect>&) const;
271 virtual IntRect scrollableAreaBoundingBox() const OVERRIDE; 280 void scrollTo(const IntSize&);
272 virtual bool scrollAnimatorEnabled() const OVERRIDE; 281 IntRect scrollableAreaBoundingBox() const;
273 virtual bool usesCompositedScrolling() const OVERRIDE; 282 bool scrollAnimatorEnabled() const;
274 virtual GraphicsLayer* layerForScrolling() const OVERRIDE; 283 bool usesCompositedScrolling() const;
275 virtual GraphicsLayer* layerForHorizontalScrollbar() const OVERRIDE; 284 GraphicsLayer* layerForScrolling() const;
276 virtual GraphicsLayer* layerForVerticalScrollbar() const OVERRIDE; 285 GraphicsLayer* layerForHorizontalScrollbar() const;
277 virtual GraphicsLayer* layerForScrollCorner() const OVERRIDE; 286 GraphicsLayer* layerForVerticalScrollbar() const;
287 GraphicsLayer* layerForScrollCorner() const;
288
289 // FIXME(sky): remove
290 IntRect contentsToScreen(const IntRect& rect) const;
291 IntPoint contentsToRootView(const IntPoint& contentsPoint) const { return co nvertToRootView(contentsPoint); }
292 IntRect contentsToRootView(const IntRect& contentsRect) const { return conve rtToRootView(contentsRect); }
293 IntRect rootViewToContents(const IntRect& rootViewRect) const { return conve rtFromRootView(rootViewRect); }
294 IntPoint windowToContents(const IntPoint& windowPoint) const { return conver tFromContainingWindow(windowPoint); }
295 FloatPoint windowToContents(const FloatPoint& windowPoint) const { return co nvertFromContainingWindow(windowPoint); }
296 IntPoint contentsToWindow(const IntPoint& contentsPoint) const { return cont entsToWindow(contentsPoint); }
297 IntRect windowToContents(const IntRect& windowRect) const { return convertFr omContainingWindow(windowRect); }
298 IntRect contentsToWindow(const IntRect& contentsRect) const { return content sToWindow(contentsRect); }
299 IntSize scrollOffset() const { return IntSize(); }
300 IntPoint minimumScrollPosition() const { return IntPoint(); }
301 IntPoint maximumScrollPosition() const { return IntPoint(); }
302 IntPoint scrollPosition() const { return IntPoint(); }
303 bool scheduleAnimation();
304 int scrollX() const { return 0; }
305 int scrollY() const { return 0; }
306 void scrollBy(const IntSize& s, ScrollBehavior behavior = ScrollBehaviorInst ant) {}
307 void setScrollOffset(const IntPoint&) {}
308 // Scrollbar* horizontalScrollbar() const { return 0; }
309 // Scrollbar* verticalScrollbar() const { return 0; }
310 IntRect visibleContentRect(IncludeScrollbarsInRect = ExcludeScrollbars) cons t { return IntRect(IntPoint(), expandedIntSize(frameRect().size())); }
311 IntSize unscaledVisibleContentSize(IncludeScrollbarsInRect = ExcludeScrollba rs) const { return frameRect().size(); }
312 IntPoint clampScrollPosition(const IntPoint& scrollPosition) const { return scrollPosition; }
313 const IntPoint scrollOrigin() const { return IntPoint(); }
314 // FIXME(sky): Not clear what values these should return. This is just what they happen to be
315 // returning today.
316 bool paintsEntireContents() const { return false; }
317 bool clipsPaintInvalidations() const { return true; }
278 318
279 protected: 319 protected:
280 virtual void scrollContentsIfNeeded(); 320 virtual void scrollContentsIfNeeded();
281 virtual bool scrollContentsFastPath(const IntSize& scrollDelta) OVERRIDE; 321 bool scrollContentsFastPath(const IntSize& scrollDelta);
282 virtual void scrollContentsSlowPath(const IntRect& updateRect) OVERRIDE; 322 void scrollContentsSlowPath(const IntRect& updateRect);
283 323
284 virtual bool isVerticalDocument() const OVERRIDE; 324 bool isVerticalDocument() const;
285 virtual bool isFlippedDocument() const OVERRIDE; 325 bool isFlippedDocument() const;
286 326
287 private: 327 private:
288 explicit FrameView(LocalFrame*); 328 explicit FrameView(LocalFrame*);
289 329
290 void reset(); 330 void reset();
291 void init(); 331 void init();
292 332
293 virtual void frameRectsChanged() OVERRIDE; 333 virtual void frameRectsChanged() OVERRIDE;
294 virtual bool isFrameView() const OVERRIDE { return true; } 334 virtual bool isFrameView() const OVERRIDE { return true; }
295 335
296 friend class RenderWidget; 336 friend class RenderWidget;
297 337
298 bool contentsInCompositedLayer() const; 338 bool contentsInCompositedLayer() const;
299 339
300 void applyOverflowToViewportAndSetRenderer(RenderObject*, ScrollbarMode& hMo de, ScrollbarMode& vMode); 340 void applyOverflowToViewportAndSetRenderer(RenderObject*, ScrollbarMode& hMo de, ScrollbarMode& vMode);
301 void updateOverflowStatus(bool horizontalOverflow, bool verticalOverflow); 341 void updateOverflowStatus(bool horizontalOverflow, bool verticalOverflow);
302 342
303 void forceLayoutParentViewIfNeeded(); 343 void forceLayoutParentViewIfNeeded();
304 void performPreLayoutTasks(); 344 void performPreLayoutTasks();
305 void performLayout(RenderObject* rootForThisLayout, bool inSubtreeLayout); 345 void performLayout(RenderObject* rootForThisLayout, bool inSubtreeLayout);
306 void scheduleOrPerformPostLayoutTasks(); 346 void scheduleOrPerformPostLayoutTasks();
307 void performPostLayoutTasks(); 347 void performPostLayoutTasks();
308 348
309 void invalidateTreeIfNeeded(); 349 void invalidateTreeIfNeeded();
310 350
311 void gatherDebugLayoutRects(RenderObject* layoutRoot); 351 void gatherDebugLayoutRects(RenderObject* layoutRoot);
312 352
313 DocumentLifecycle& lifecycle() const; 353 DocumentLifecycle& lifecycle() const;
314 354
315 virtual void contentRectangleForPaintInvalidation(const IntRect&) OVERRIDE; 355 // FIXME(sky): Remove now that we're not a ScrollView?
316 virtual void contentsResized() OVERRIDE; 356 void contentRectangleForPaintInvalidation(const IntRect&);
317 virtual void scrollbarExistenceDidChange() OVERRIDE; 357 void contentsResized();
358 void scrollbarExistenceDidChange();
318 359
319 // Override ScrollView methods to do point conversion via renderers, in orde r to 360 // Override ScrollView methods to do point conversion via renderers, in orde r to
320 // take transforms into account. 361 // take transforms into account.
321 virtual IntRect convertToContainingView(const IntRect&) const OVERRIDE; 362 virtual IntRect convertToContainingView(const IntRect&) const OVERRIDE;
322 virtual IntRect convertFromContainingView(const IntRect&) const OVERRIDE; 363 virtual IntRect convertFromContainingView(const IntRect&) const OVERRIDE;
323 virtual IntPoint convertToContainingView(const IntPoint&) const OVERRIDE; 364 virtual IntPoint convertToContainingView(const IntPoint&) const OVERRIDE;
324 virtual IntPoint convertFromContainingView(const IntPoint&) const OVERRIDE; 365 virtual IntPoint convertFromContainingView(const IntPoint&) const OVERRIDE;
325 366
326 void updateWidgetPositionsIfNeeded(); 367 void updateWidgetPositionsIfNeeded();
327 368
328 bool wasViewportResized(); 369 bool wasViewportResized();
329 void sendResizeEventIfNeeded(); 370 void sendResizeEventIfNeeded();
330 371
331 virtual void notifyPageThatContentAreaWillPaint() const OVERRIDE; 372 // FIXME(sky): Remove now that we're not a ScrollView?
373 void notifyPageThatContentAreaWillPaint() const;
332 374
333 void scrollPositionChanged(); 375 void scrollPositionChanged();
334 void didScrollTimerFired(Timer<FrameView>*); 376 void didScrollTimerFired(Timer<FrameView>*);
335 377
336 void updateLayersAndCompositingAfterScrollIfNeeded(); 378 void updateLayersAndCompositingAfterScrollIfNeeded();
337 void updateFixedElementPaintInvalidationRectsAfterScroll(); 379 void updateFixedElementPaintInvalidationRectsAfterScroll();
338 void updateCompositedSelectionBoundsIfNeeded(); 380 void updateCompositedSelectionBoundsIfNeeded();
339 381
340 void setLayoutSizeInternal(const IntSize&); 382 void setLayoutSizeInternal(const IntSize&);
341 383
342 bool paintInvalidationIsAllowed() const 384 bool paintInvalidationIsAllowed() const
343 { 385 {
344 return !isInPerformLayout() || canInvalidatePaintDuringPerformLayout(); 386 return !isInPerformLayout() || canInvalidatePaintDuringPerformLayout();
345 } 387 }
346 388
347 static double s_currentFrameTimeStamp; // used for detecting decoded resourc e thrash in the cache 389 static double s_currentFrameTimeStamp; // used for detecting decoded resourc e thrash in the cache
348 static bool s_inPaintContents; 390 static bool s_inPaintContents;
349 391
350 LayoutSize m_size; 392 LayoutSize m_size;
351 393
352 // FIXME: These are just "children" of the FrameView and should be RefPtr<Wi dget> instead. 394 // FIXME: These are just "children" of the FrameView and should be RefPtr<Wi dget> instead.
353 WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderWidget> > m_widgets; 395 WillBePersistentHeapHashSet<RefPtrWillBeMember<RenderWidget> > m_widgets;
354 396
355 RefPtr<LocalFrame> m_frame; 397 RefPtr<LocalFrame> m_frame;
398 HashSet<RefPtr<Widget> > m_children;
356 399
357 bool m_doFullPaintInvalidation; 400 bool m_doFullPaintInvalidation;
358 401
402 // FIXME(sky): Remove
359 bool m_canHaveScrollbars; 403 bool m_canHaveScrollbars;
360 unsigned m_slowRepaintObjectCount; 404 unsigned m_slowRepaintObjectCount;
361 405
362 bool m_hasPendingLayout; 406 bool m_hasPendingLayout;
363 RenderObject* m_layoutSubtreeRoot; 407 RenderObject* m_layoutSubtreeRoot;
364 408
365 bool m_layoutSchedulingEnabled; 409 bool m_layoutSchedulingEnabled;
366 bool m_inPerformLayout; 410 bool m_inPerformLayout;
367 bool m_canInvalidatePaintDuringPerformLayout; 411 bool m_canInvalidatePaintDuringPerformLayout;
368 bool m_inSynchronousPostLayout; 412 bool m_inSynchronousPostLayout;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 m_view->setCanInvalidatePaintDuringPerformLayout(m_originalValue); 482 m_view->setCanInvalidatePaintDuringPerformLayout(m_originalValue);
439 } 483 }
440 private: 484 private:
441 FrameView* m_view; 485 FrameView* m_view;
442 bool m_originalValue; 486 bool m_originalValue;
443 }; 487 };
444 488
445 } // namespace blink 489 } // namespace blink
446 490
447 #endif // FrameView_h 491 #endif // FrameView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698