| 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 22 matching lines...) Expand all Loading... |
| 33 namespace blink { | 33 namespace blink { |
| 34 | 34 |
| 35 class FlowThreadController; | 35 class FlowThreadController; |
| 36 class RenderLayerCompositor; | 36 class RenderLayerCompositor; |
| 37 class RenderQuote; | 37 class RenderQuote; |
| 38 | 38 |
| 39 // The root of the render tree, corresponding to the CSS initial containing bloc
k. | 39 // The root of the render tree, corresponding to the CSS initial containing bloc
k. |
| 40 // It's dimensions match that of the logical viewport (which may be different fr
om | 40 // It's dimensions match that of the logical viewport (which may be different fr
om |
| 41 // the visible viewport in fixed-layout mode), and it is always at position (0,0
) | 41 // the visible viewport in fixed-layout mode), and it is always at position (0,0
) |
| 42 // relative to the document (and so isn't necessarily in view). | 42 // relative to the document (and so isn't necessarily in view). |
| 43 class RenderView FINAL : public RenderBlockFlow { | 43 class RenderView final : public RenderBlockFlow { |
| 44 public: | 44 public: |
| 45 explicit RenderView(Document*); | 45 explicit RenderView(Document*); |
| 46 virtual ~RenderView(); | 46 virtual ~RenderView(); |
| 47 virtual void trace(Visitor*) OVERRIDE; | 47 virtual void trace(Visitor*) override; |
| 48 | 48 |
| 49 bool hitTest(const HitTestRequest&, HitTestResult&); | 49 bool hitTest(const HitTestRequest&, HitTestResult&); |
| 50 bool hitTest(const HitTestRequest&, const HitTestLocation&, HitTestResult&); | 50 bool hitTest(const HitTestRequest&, const HitTestLocation&, HitTestResult&); |
| 51 | 51 |
| 52 // Returns the total count of calls to HitTest, for testing. | 52 // Returns the total count of calls to HitTest, for testing. |
| 53 unsigned hitTestCount() const { return m_hitTestCount; } | 53 unsigned hitTestCount() const { return m_hitTestCount; } |
| 54 | 54 |
| 55 virtual const char* renderName() const OVERRIDE { return "RenderView"; } | 55 virtual const char* renderName() const override { return "RenderView"; } |
| 56 | 56 |
| 57 virtual bool isRenderView() const OVERRIDE { return true; } | 57 virtual bool isRenderView() const override { return true; } |
| 58 | 58 |
| 59 virtual LayerType layerTypeRequired() const OVERRIDE { return NormalLayer; } | 59 virtual LayerType layerTypeRequired() const override { return NormalLayer; } |
| 60 | 60 |
| 61 virtual bool isChildAllowed(RenderObject*, RenderStyle*) const OVERRIDE; | 61 virtual bool isChildAllowed(RenderObject*, RenderStyle*) const override; |
| 62 | 62 |
| 63 virtual void layout() OVERRIDE; | 63 virtual void layout() override; |
| 64 virtual void updateLogicalWidth() OVERRIDE; | 64 virtual void updateLogicalWidth() override; |
| 65 virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logic
alTop, LogicalExtentComputedValues&) const OVERRIDE; | 65 virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logic
alTop, LogicalExtentComputedValues&) const override; |
| 66 | 66 |
| 67 virtual LayoutUnit availableLogicalHeight(AvailableLogicalHeightType) const
OVERRIDE; | 67 virtual LayoutUnit availableLogicalHeight(AvailableLogicalHeightType) const
override; |
| 68 | 68 |
| 69 // The same as the FrameView's layoutHeight/layoutWidth but with null check
guards. | 69 // The same as the FrameView's layoutHeight/layoutWidth but with null check
guards. |
| 70 int viewHeight(IncludeScrollbarsInRect = ExcludeScrollbars) const; | 70 int viewHeight(IncludeScrollbarsInRect = ExcludeScrollbars) const; |
| 71 int viewWidth(IncludeScrollbarsInRect = ExcludeScrollbars) const; | 71 int viewWidth(IncludeScrollbarsInRect = ExcludeScrollbars) const; |
| 72 int viewLogicalWidth() const | 72 int viewLogicalWidth() const |
| 73 { | 73 { |
| 74 return style()->isHorizontalWritingMode() ? viewWidth(ExcludeScrollbars)
: viewHeight(ExcludeScrollbars); | 74 return style()->isHorizontalWritingMode() ? viewWidth(ExcludeScrollbars)
: viewHeight(ExcludeScrollbars); |
| 75 } | 75 } |
| 76 int viewLogicalHeight() const; | 76 int viewLogicalHeight() const; |
| 77 LayoutUnit viewLogicalHeightForPercentages() const; | 77 LayoutUnit viewLogicalHeightForPercentages() const; |
| 78 | 78 |
| 79 float zoomFactor() const; | 79 float zoomFactor() const; |
| 80 | 80 |
| 81 FrameView* frameView() const { return m_frameView; } | 81 FrameView* frameView() const { return m_frameView; } |
| 82 | 82 |
| 83 enum ViewportConstrainedPosition { | 83 enum ViewportConstrainedPosition { |
| 84 IsNotFixedPosition, | 84 IsNotFixedPosition, |
| 85 IsFixedPosition, | 85 IsFixedPosition, |
| 86 }; | 86 }; |
| 87 void mapRectToPaintInvalidationBacking(const RenderLayerModelObject* paintIn
validationContainer, LayoutRect&, ViewportConstrainedPosition, const PaintInvali
dationState*) const; | 87 void mapRectToPaintInvalidationBacking(const RenderLayerModelObject* paintIn
validationContainer, LayoutRect&, ViewportConstrainedPosition, const PaintInvali
dationState*) const; |
| 88 virtual void mapRectToPaintInvalidationBacking(const RenderLayerModelObject*
paintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const O
VERRIDE; | 88 virtual void mapRectToPaintInvalidationBacking(const RenderLayerModelObject*
paintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const o
verride; |
| 89 | 89 |
| 90 void invalidatePaintForRectangle(const LayoutRect&, InvalidationReason) cons
t; | 90 void invalidatePaintForRectangle(const LayoutRect&, InvalidationReason) cons
t; |
| 91 | 91 |
| 92 void invalidatePaintForViewAndCompositedLayers(); | 92 void invalidatePaintForViewAndCompositedLayers(); |
| 93 | 93 |
| 94 virtual void paint(PaintInfo&, const LayoutPoint&) OVERRIDE; | 94 virtual void paint(PaintInfo&, const LayoutPoint&) override; |
| 95 virtual void paintBoxDecorationBackground(PaintInfo&, const LayoutPoint&) OV
ERRIDE; | 95 virtual void paintBoxDecorationBackground(PaintInfo&, const LayoutPoint&) ov
erride; |
| 96 | 96 |
| 97 enum SelectionPaintInvalidationMode { PaintInvalidationNewXOROld, PaintInval
idationNewMinusOld }; | 97 enum SelectionPaintInvalidationMode { PaintInvalidationNewXOROld, PaintInval
idationNewMinusOld }; |
| 98 void setSelection(RenderObject* start, int startPos, RenderObject*, int endP
os, SelectionPaintInvalidationMode = PaintInvalidationNewXOROld); | 98 void setSelection(RenderObject* start, int startPos, RenderObject*, int endP
os, SelectionPaintInvalidationMode = PaintInvalidationNewXOROld); |
| 99 void clearSelection(); | 99 void clearSelection(); |
| 100 RenderObject* selectionStart() const { return m_selectionStart; } | 100 RenderObject* selectionStart() const { return m_selectionStart; } |
| 101 RenderObject* selectionEnd() const { return m_selectionEnd; } | 101 RenderObject* selectionEnd() const { return m_selectionEnd; } |
| 102 IntRect selectionBounds() const; | 102 IntRect selectionBounds() const; |
| 103 void selectionStartEnd(int& startPos, int& endPos) const; | 103 void selectionStartEnd(int& startPos, int& endPos) const; |
| 104 void invalidatePaintForSelection() const; | 104 void invalidatePaintForSelection() const; |
| 105 | 105 |
| 106 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedO
ffset) const OVERRIDE; | 106 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedO
ffset) const override; |
| 107 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const OVERRID
E; | 107 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const overrid
e; |
| 108 | 108 |
| 109 virtual LayoutRect viewRect() const OVERRIDE; | 109 virtual LayoutRect viewRect() const override; |
| 110 | 110 |
| 111 bool shouldDoFullPaintInvalidationForNextLayout() const; | 111 bool shouldDoFullPaintInvalidationForNextLayout() const; |
| 112 bool doingFullPaintInvalidation() const { return m_frameView->needsFullPaint
Invalidation(); } | 112 bool doingFullPaintInvalidation() const { return m_frameView->needsFullPaint
Invalidation(); } |
| 113 | 113 |
| 114 LayoutState* layoutState() const { return m_layoutState; } | 114 LayoutState* layoutState() const { return m_layoutState; } |
| 115 | 115 |
| 116 virtual void updateHitTestResult(HitTestResult&, const LayoutPoint&) OVERRID
E; | 116 virtual void updateHitTestResult(HitTestResult&, const LayoutPoint&) overrid
e; |
| 117 | 117 |
| 118 LayoutUnit pageLogicalHeight() const { return m_pageLogicalHeight; } | 118 LayoutUnit pageLogicalHeight() const { return m_pageLogicalHeight; } |
| 119 void setPageLogicalHeight(LayoutUnit height) | 119 void setPageLogicalHeight(LayoutUnit height) |
| 120 { | 120 { |
| 121 if (m_pageLogicalHeight != height) { | 121 if (m_pageLogicalHeight != height) { |
| 122 m_pageLogicalHeight = height; | 122 m_pageLogicalHeight = height; |
| 123 m_pageLogicalHeightChanged = true; | 123 m_pageLogicalHeightChanged = true; |
| 124 } | 124 } |
| 125 } | 125 } |
| 126 bool pageLogicalHeightChanged() const { return m_pageLogicalHeightChanged; } | 126 bool pageLogicalHeightChanged() const { return m_pageLogicalHeightChanged; } |
| (...skipping 20 matching lines...) Expand all Loading... |
| 147 RenderQuote* renderQuoteHead() const { return m_renderQuoteHead; } | 147 RenderQuote* renderQuoteHead() const { return m_renderQuoteHead; } |
| 148 | 148 |
| 149 // FIXME: This is a work around because the current implementation of counte
rs | 149 // FIXME: This is a work around because the current implementation of counte
rs |
| 150 // requires walking the entire tree repeatedly and most pages don't actually
use either | 150 // requires walking the entire tree repeatedly and most pages don't actually
use either |
| 151 // feature so we shouldn't take the performance hit when not needed. Long te
rm we should | 151 // feature so we shouldn't take the performance hit when not needed. Long te
rm we should |
| 152 // rewrite the counter and quotes code. | 152 // rewrite the counter and quotes code. |
| 153 void addRenderCounter() { m_renderCounterCount++; } | 153 void addRenderCounter() { m_renderCounterCount++; } |
| 154 void removeRenderCounter() { ASSERT(m_renderCounterCount > 0); m_renderCount
erCount--; } | 154 void removeRenderCounter() { ASSERT(m_renderCounterCount > 0); m_renderCount
erCount--; } |
| 155 bool hasRenderCounters() { return m_renderCounterCount; } | 155 bool hasRenderCounters() { return m_renderCounterCount; } |
| 156 | 156 |
| 157 virtual bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect)
const OVERRIDE; | 157 virtual bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect)
const override; |
| 158 | 158 |
| 159 double layoutViewportWidth() const; | 159 double layoutViewportWidth() const; |
| 160 double layoutViewportHeight() const; | 160 double layoutViewportHeight() const; |
| 161 | 161 |
| 162 void pushLayoutState(LayoutState&); | 162 void pushLayoutState(LayoutState&); |
| 163 void popLayoutState(); | 163 void popLayoutState(); |
| 164 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&) OVERRIDE
FINAL; | 164 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&) override
final; |
| 165 | 165 |
| 166 private: | 166 private: |
| 167 virtual void mapLocalToContainer(const RenderLayerModelObject* paintInvalida
tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool*
wasFixed = 0, const PaintInvalidationState* = 0) const OVERRIDE; | 167 virtual void mapLocalToContainer(const RenderLayerModelObject* paintInvalida
tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool*
wasFixed = 0, const PaintInvalidationState* = 0) const override; |
| 168 virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObj
ect* ancestorToStopAt, RenderGeometryMap&) const OVERRIDE; | 168 virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObj
ect* ancestorToStopAt, RenderGeometryMap&) const override; |
| 169 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c
onst OVERRIDE; | 169 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c
onst override; |
| 170 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint&
layerOffset) const OVERRIDE; | 170 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint&
layerOffset) const override; |
| 171 | 171 |
| 172 void layoutContent(); | 172 void layoutContent(); |
| 173 #if ENABLE(ASSERT) | 173 #if ENABLE(ASSERT) |
| 174 void checkLayoutState(); | 174 void checkLayoutState(); |
| 175 #endif | 175 #endif |
| 176 | 176 |
| 177 friend class ForceHorriblySlowRectMapping; | 177 friend class ForceHorriblySlowRectMapping; |
| 178 | 178 |
| 179 bool shouldUsePrintingLayout() const; | 179 bool shouldUsePrintingLayout() const; |
| 180 | 180 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 m_paintInvalidationState->m_cachedOffsetsEnabled = true; | 225 m_paintInvalidationState->m_cachedOffsetsEnabled = true; |
| 226 } | 226 } |
| 227 private: | 227 private: |
| 228 const PaintInvalidationState* m_paintInvalidationState; | 228 const PaintInvalidationState* m_paintInvalidationState; |
| 229 bool m_didDisable; | 229 bool m_didDisable; |
| 230 }; | 230 }; |
| 231 | 231 |
| 232 } // namespace blink | 232 } // namespace blink |
| 233 | 233 |
| 234 #endif // RenderView_h | 234 #endif // RenderView_h |
| OLD | NEW |