| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * Copyright (C) 2006 Apple Computer, Inc. | 3 * Copyright (C) 2006 Apple Computer, Inc. |
| 4 * | 4 * |
| 5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
| 7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
| 9 * | 9 * |
| 10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 #include "core/rendering/LayoutState.h" | 27 #include "core/rendering/LayoutState.h" |
| 28 #include "core/rendering/PaintInvalidationState.h" | 28 #include "core/rendering/PaintInvalidationState.h" |
| 29 #include "core/rendering/RenderBlockFlow.h" | 29 #include "core/rendering/RenderBlockFlow.h" |
| 30 #include "platform/PODFreeListArena.h" | 30 #include "platform/PODFreeListArena.h" |
| 31 #include "platform/RuntimeEnabledFeatures.h" | 31 #include "platform/RuntimeEnabledFeatures.h" |
| 32 #include "platform/scroll/ScrollableArea.h" | 32 #include "platform/scroll/ScrollableArea.h" |
| 33 #include "wtf/OwnPtr.h" | 33 #include "wtf/OwnPtr.h" |
| 34 | 34 |
| 35 namespace blink { | 35 namespace blink { |
| 36 | 36 |
| 37 class RenderLayerCompositor; | 37 class LayerCompositor; |
| 38 class RenderQuote; | 38 class RenderQuote; |
| 39 | 39 |
| 40 // The root of the render tree, corresponding to the CSS initial containing bloc
k. | 40 // The root of the render tree, corresponding to the CSS initial containing bloc
k. |
| 41 // It's dimensions match that of the logical viewport (which may be different fr
om | 41 // It's dimensions match that of the logical viewport (which may be different fr
om |
| 42 // the visible viewport in fixed-layout mode), and it is always at position (0,0
) | 42 // the visible viewport in fixed-layout mode), and it is always at position (0,0
) |
| 43 // relative to the document (and so isn't necessarily in view). | 43 // relative to the document (and so isn't necessarily in view). |
| 44 class RenderView final : public RenderBlockFlow { | 44 class RenderView final : public RenderBlockFlow { |
| 45 public: | 45 public: |
| 46 explicit RenderView(Document*); | 46 explicit RenderView(Document*); |
| 47 virtual ~RenderView(); | 47 virtual ~RenderView(); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 float zoomFactor() const; | 80 float zoomFactor() const; |
| 81 | 81 |
| 82 FrameView* frameView() const { return m_frameView; } | 82 FrameView* frameView() const { return m_frameView; } |
| 83 | 83 |
| 84 enum ViewportConstrainedPosition { | 84 enum ViewportConstrainedPosition { |
| 85 IsNotFixedPosition, | 85 IsNotFixedPosition, |
| 86 IsFixedPosition, | 86 IsFixedPosition, |
| 87 }; | 87 }; |
| 88 | 88 |
| 89 static ViewportConstrainedPosition viewportConstrainedPosition(EPosition pos
ition) { return position == FixedPosition ? IsFixedPosition : IsNotFixedPosition
; } | 89 static ViewportConstrainedPosition viewportConstrainedPosition(EPosition pos
ition) { return position == FixedPosition ? IsFixedPosition : IsNotFixedPosition
; } |
| 90 void mapRectToPaintInvalidationBacking(const RenderLayerModelObject* paintIn
validationContainer, LayoutRect&, ViewportConstrainedPosition, const PaintInvali
dationState*) const; | 90 void mapRectToPaintInvalidationBacking(const LayoutLayerModelObject* paintIn
validationContainer, LayoutRect&, ViewportConstrainedPosition, const PaintInvali
dationState*) const; |
| 91 virtual void mapRectToPaintInvalidationBacking(const RenderLayerModelObject*
paintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const o
verride; | 91 virtual void mapRectToPaintInvalidationBacking(const LayoutLayerModelObject*
paintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const o
verride; |
| 92 void adjustViewportConstrainedOffset(LayoutRect&, ViewportConstrainedPositio
n) const; | 92 void adjustViewportConstrainedOffset(LayoutRect&, ViewportConstrainedPositio
n) const; |
| 93 | 93 |
| 94 void invalidatePaintForRectangle(const LayoutRect&, PaintInvalidationReason)
const; | 94 void invalidatePaintForRectangle(const LayoutRect&, PaintInvalidationReason)
const; |
| 95 | 95 |
| 96 void invalidatePaintForViewAndCompositedLayers(); | 96 void invalidatePaintForViewAndCompositedLayers(); |
| 97 | 97 |
| 98 virtual void paint(const PaintInfo&, const LayoutPoint&) override; | 98 virtual void paint(const PaintInfo&, const LayoutPoint&) override; |
| 99 virtual void paintBoxDecorationBackground(const PaintInfo&, const LayoutPoin
t&) override; | 99 virtual void paintBoxDecorationBackground(const PaintInfo&, const LayoutPoin
t&) override; |
| 100 | 100 |
| 101 enum SelectionPaintInvalidationMode { PaintInvalidationNewXOROld, PaintInval
idationNewMinusOld }; | 101 enum SelectionPaintInvalidationMode { PaintInvalidationNewXOROld, PaintInval
idationNewMinusOld }; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 128 if (m_pageLogicalHeight != height) { | 128 if (m_pageLogicalHeight != height) { |
| 129 m_pageLogicalHeight = height; | 129 m_pageLogicalHeight = height; |
| 130 m_pageLogicalHeightChanged = true; | 130 m_pageLogicalHeightChanged = true; |
| 131 } | 131 } |
| 132 } | 132 } |
| 133 bool pageLogicalHeightChanged() const { return m_pageLogicalHeightChanged; } | 133 bool pageLogicalHeightChanged() const { return m_pageLogicalHeightChanged; } |
| 134 | 134 |
| 135 // Notification that this view moved into or out of a native window. | 135 // Notification that this view moved into or out of a native window. |
| 136 void setIsInWindow(bool); | 136 void setIsInWindow(bool); |
| 137 | 137 |
| 138 RenderLayerCompositor* compositor(); | 138 LayerCompositor* compositor(); |
| 139 bool usesCompositing() const; | 139 bool usesCompositing() const; |
| 140 | 140 |
| 141 IntRect unscaledDocumentRect() const; | 141 IntRect unscaledDocumentRect() const; |
| 142 LayoutRect backgroundRect(RenderBox* backgroundRenderer) const; | 142 LayoutRect backgroundRect(RenderBox* backgroundRenderer) const; |
| 143 | 143 |
| 144 IntRect documentRect() const; | 144 IntRect documentRect() const; |
| 145 | 145 |
| 146 // Renderer that paints the root background has background-images which all
have background-attachment: fixed. | 146 // Renderer that paints the root background has background-images which all
have background-attachment: fixed. |
| 147 bool rootBackgroundIsEntirelyFixed() const; | 147 bool rootBackgroundIsEntirelyFixed() const; |
| 148 | 148 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 162 virtual bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect)
const override; | 162 virtual bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect)
const override; |
| 163 | 163 |
| 164 double layoutViewportWidth() const; | 164 double layoutViewportWidth() const; |
| 165 double layoutViewportHeight() const; | 165 double layoutViewportHeight() const; |
| 166 | 166 |
| 167 void pushLayoutState(LayoutState& layoutState) { m_layoutState = &layoutStat
e; } | 167 void pushLayoutState(LayoutState& layoutState) { m_layoutState = &layoutStat
e; } |
| 168 void popLayoutState() { ASSERT(m_layoutState); m_layoutState = m_layoutState
->next(); } | 168 void popLayoutState() { ASSERT(m_layoutState); m_layoutState = m_layoutState
->next(); } |
| 169 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&) override
final; | 169 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&) override
final; |
| 170 | 170 |
| 171 private: | 171 private: |
| 172 virtual void mapLocalToContainer(const RenderLayerModelObject* paintInvalida
tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool*
wasFixed = 0, const PaintInvalidationState* = 0) const override; | 172 virtual void mapLocalToContainer(const LayoutLayerModelObject* paintInvalida
tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool*
wasFixed = 0, const PaintInvalidationState* = 0) const override; |
| 173 virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObj
ect* ancestorToStopAt, RenderGeometryMap&) const override; | 173 virtual const RenderObject* pushMappingToContainer(const LayoutLayerModelObj
ect* ancestorToStopAt, RenderGeometryMap&) const override; |
| 174 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c
onst override; | 174 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c
onst override; |
| 175 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint&
layerOffset) const override; | 175 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint&
layerOffset) const override; |
| 176 | 176 |
| 177 void layoutContent(); | 177 void layoutContent(); |
| 178 #if ENABLE(ASSERT) | 178 #if ENABLE(ASSERT) |
| 179 void checkLayoutState(); | 179 void checkLayoutState(); |
| 180 #endif | 180 #endif |
| 181 | 181 |
| 182 friend class ForceHorriblySlowRectMapping; | 182 friend class ForceHorriblySlowRectMapping; |
| 183 | 183 |
| 184 bool shouldUsePrintingLayout() const; | 184 bool shouldUsePrintingLayout() const; |
| 185 | 185 |
| 186 RenderObject* backgroundRenderer() const; | 186 RenderObject* backgroundRenderer() const; |
| 187 | 187 |
| 188 virtual void invalidateDisplayItemClients(DisplayItemList*) const override; | 188 virtual void invalidateDisplayItemClients(DisplayItemList*) const override; |
| 189 | 189 |
| 190 FrameView* m_frameView; | 190 FrameView* m_frameView; |
| 191 | 191 |
| 192 RenderObject* m_selectionStart; | 192 RenderObject* m_selectionStart; |
| 193 RenderObject* m_selectionEnd; | 193 RenderObject* m_selectionEnd; |
| 194 | 194 |
| 195 int m_selectionStartPos; | 195 int m_selectionStartPos; |
| 196 int m_selectionEndPos; | 196 int m_selectionEndPos; |
| 197 | 197 |
| 198 LayoutUnit m_pageLogicalHeight; | 198 LayoutUnit m_pageLogicalHeight; |
| 199 bool m_pageLogicalHeightChanged; | 199 bool m_pageLogicalHeightChanged; |
| 200 LayoutState* m_layoutState; | 200 LayoutState* m_layoutState; |
| 201 OwnPtr<RenderLayerCompositor> m_compositor; | 201 OwnPtr<LayerCompositor> m_compositor; |
| 202 RefPtr<IntervalArena> m_intervalArena; | 202 RefPtr<IntervalArena> m_intervalArena; |
| 203 | 203 |
| 204 RenderQuote* m_renderQuoteHead; | 204 RenderQuote* m_renderQuoteHead; |
| 205 unsigned m_layoutCounterCount; | 205 unsigned m_layoutCounterCount; |
| 206 | 206 |
| 207 unsigned m_hitTestCount; | 207 unsigned m_hitTestCount; |
| 208 | 208 |
| 209 class PendingSelection final { | 209 class PendingSelection final { |
| 210 DISALLOW_ALLOCATION(); | 210 DISALLOW_ALLOCATION(); |
| 211 public: | 211 public: |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 m_paintInvalidationState->m_cachedOffsetsEnabled = true; | 253 m_paintInvalidationState->m_cachedOffsetsEnabled = true; |
| 254 } | 254 } |
| 255 private: | 255 private: |
| 256 const PaintInvalidationState* m_paintInvalidationState; | 256 const PaintInvalidationState* m_paintInvalidationState; |
| 257 bool m_didDisable; | 257 bool m_didDisable; |
| 258 }; | 258 }; |
| 259 | 259 |
| 260 } // namespace blink | 260 } // namespace blink |
| 261 | 261 |
| 262 #endif // RenderView_h | 262 #endif // RenderView_h |
| OLD | NEW |