OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 12 matching lines...) Expand all Loading... |
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 #include "core/layout/LayoutBlockFlow.h" | 31 #include "core/layout/LayoutBlockFlow.h" |
32 | 32 |
| 33 #include <memory> |
33 #include "core/editing/Editor.h" | 34 #include "core/editing/Editor.h" |
34 #include "core/frame/FrameView.h" | 35 #include "core/frame/FrameView.h" |
35 #include "core/frame/LocalFrame.h" | 36 #include "core/frame/LocalFrame.h" |
| 37 #include "core/frame/UseCounter.h" |
36 #include "core/html/HTMLDialogElement.h" | 38 #include "core/html/HTMLDialogElement.h" |
37 #include "core/layout/HitTestLocation.h" | 39 #include "core/layout/HitTestLocation.h" |
38 #include "core/layout/LayoutAnalyzer.h" | 40 #include "core/layout/LayoutAnalyzer.h" |
39 #include "core/layout/LayoutFlowThread.h" | 41 #include "core/layout/LayoutFlowThread.h" |
40 #include "core/layout/LayoutInline.h" | 42 #include "core/layout/LayoutInline.h" |
41 #include "core/layout/LayoutMultiColumnFlowThread.h" | 43 #include "core/layout/LayoutMultiColumnFlowThread.h" |
42 #include "core/layout/LayoutMultiColumnSpannerPlaceholder.h" | 44 #include "core/layout/LayoutMultiColumnSpannerPlaceholder.h" |
43 #include "core/layout/LayoutPagedFlowThread.h" | 45 #include "core/layout/LayoutPagedFlowThread.h" |
44 #include "core/layout/LayoutView.h" | 46 #include "core/layout/LayoutView.h" |
45 #include "core/layout/TextAutosizer.h" | 47 #include "core/layout/TextAutosizer.h" |
46 #include "core/layout/line/GlyphOverflow.h" | 48 #include "core/layout/line/GlyphOverflow.h" |
47 #include "core/layout/line/InlineIterator.h" | 49 #include "core/layout/line/InlineIterator.h" |
48 #include "core/layout/line/InlineTextBox.h" | 50 #include "core/layout/line/InlineTextBox.h" |
49 #include "core/layout/line/LineWidth.h" | 51 #include "core/layout/line/LineWidth.h" |
50 #include "core/layout/shapes/ShapeOutsideInfo.h" | 52 #include "core/layout/shapes/ShapeOutsideInfo.h" |
51 #include "core/paint/BlockFlowPaintInvalidator.h" | 53 #include "core/paint/BlockFlowPaintInvalidator.h" |
52 #include "core/paint/PaintLayer.h" | 54 #include "core/paint/PaintLayer.h" |
53 #include "platform/RuntimeEnabledFeatures.h" | 55 #include "platform/RuntimeEnabledFeatures.h" |
54 #include "wtf/PtrUtil.h" | 56 #include "wtf/PtrUtil.h" |
55 #include <memory> | |
56 | 57 |
57 namespace blink { | 58 namespace blink { |
58 | 59 |
59 bool LayoutBlockFlow::s_canPropagateFloatIntoSibling = false; | 60 bool LayoutBlockFlow::s_canPropagateFloatIntoSibling = false; |
60 | 61 |
61 struct SameSizeAsLayoutBlockFlow : public LayoutBlock { | 62 struct SameSizeAsLayoutBlockFlow : public LayoutBlock { |
62 LineBoxList lineBoxes; | 63 LineBoxList lineBoxes; |
63 void* pointers[2]; | 64 void* pointers[2]; |
64 }; | 65 }; |
65 | 66 |
(...skipping 4145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4211 } | 4212 } |
4212 | 4213 |
4213 LayoutMultiColumnFlowThread* LayoutBlockFlow::createMultiColumnFlowThread( | 4214 LayoutMultiColumnFlowThread* LayoutBlockFlow::createMultiColumnFlowThread( |
4214 FlowThreadType type) { | 4215 FlowThreadType type) { |
4215 switch (type) { | 4216 switch (type) { |
4216 case MultiColumnFlowThread: | 4217 case MultiColumnFlowThread: |
4217 return LayoutMultiColumnFlowThread::createAnonymous(document(), | 4218 return LayoutMultiColumnFlowThread::createAnonymous(document(), |
4218 styleRef()); | 4219 styleRef()); |
4219 case PagedFlowThread: | 4220 case PagedFlowThread: |
4220 // Paged overflow is currently done using the multicol implementation. | 4221 // Paged overflow is currently done using the multicol implementation. |
| 4222 UseCounter::count(document(), UseCounter::CSSOverflowPaged); |
4221 return LayoutPagedFlowThread::createAnonymous(document(), styleRef()); | 4223 return LayoutPagedFlowThread::createAnonymous(document(), styleRef()); |
4222 default: | 4224 default: |
4223 ASSERT_NOT_REACHED(); | 4225 ASSERT_NOT_REACHED(); |
4224 return nullptr; | 4226 return nullptr; |
4225 } | 4227 } |
4226 } | 4228 } |
4227 | 4229 |
4228 void LayoutBlockFlow::createOrDestroyMultiColumnFlowThreadIfNeeded( | 4230 void LayoutBlockFlow::createOrDestroyMultiColumnFlowThreadIfNeeded( |
4229 const ComputedStyle* oldStyle) { | 4231 const ComputedStyle* oldStyle) { |
4230 if (RuntimeEnabledFeatures::layoutNGEnabled()) | 4232 if (RuntimeEnabledFeatures::layoutNGEnabled()) |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4585 return LayoutBlock::invalidatePaintIfNeeded(paintInvalidationState); | 4587 return LayoutBlock::invalidatePaintIfNeeded(paintInvalidationState); |
4586 } | 4588 } |
4587 | 4589 |
4588 void LayoutBlockFlow::invalidateDisplayItemClients( | 4590 void LayoutBlockFlow::invalidateDisplayItemClients( |
4589 PaintInvalidationReason invalidationReason) const { | 4591 PaintInvalidationReason invalidationReason) const { |
4590 BlockFlowPaintInvalidator(*this).invalidateDisplayItemClients( | 4592 BlockFlowPaintInvalidator(*this).invalidateDisplayItemClients( |
4591 invalidationReason); | 4593 invalidationReason); |
4592 } | 4594 } |
4593 | 4595 |
4594 } // namespace blink | 4596 } // namespace blink |
OLD | NEW |