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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBox.h

Issue 2642193011: Unify all types of overflow-related clips for paint and hit testing. (Closed)
Patch Set: none Created 3 years, 11 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * Copyright (C) 2003, 2006, 2007 Apple Inc. All rights reserved. 4 * Copyright (C) 2003, 2006, 2007 Apple Inc. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 1040 matching lines...) Expand 10 before | Expand all | Expand 10 after
1051 AvoidBreaks // Preferably avoid breaks. If not possible, examine children 1051 AvoidBreaks // Preferably avoid breaks. If not possible, examine children
1052 // to find possible break points. 1052 // to find possible break points.
1053 }; 1053 };
1054 virtual PaginationBreakability getPaginationBreakability() const; 1054 virtual PaginationBreakability getPaginationBreakability() const;
1055 1055
1056 LayoutRect localCaretRect( 1056 LayoutRect localCaretRect(
1057 InlineBox*, 1057 InlineBox*,
1058 int caretOffset, 1058 int caretOffset,
1059 LayoutUnit* extraWidthToEndOfLine = nullptr) override; 1059 LayoutUnit* extraWidthToEndOfLine = nullptr) override;
1060 1060
1061 // Returns whether content which overflows should be clipped. This is not just
1062 // because of overflow clip, but other types of clip as well, such as
1063 // control clips or contain: paint.
1064 virtual bool shouldClipOverflow() const;
1065
1066 // Returns the intersection of all overflow clips which apply.
1061 virtual LayoutRect overflowClipRect( 1067 virtual LayoutRect overflowClipRect(
1062 const LayoutPoint& location, 1068 const LayoutPoint& location,
1063 OverlayScrollbarClipBehavior = IgnoreOverlayScrollbarSize) const; 1069 OverlayScrollbarClipBehavior = IgnoreOverlayScrollbarSize) const;
1064 LayoutRect clipRect(const LayoutPoint& location) const; 1070 LayoutRect clipRect(const LayoutPoint& location) const;
1065 virtual bool hasControlClip() const { return false; }
1066 virtual LayoutRect controlClipRect(const LayoutPoint&) const {
1067 return LayoutRect();
1068 }
1069 1071
1070 // Returns the combination of overflow clip, contain: paint clip and CSS clip 1072 // Returns the combination of overflow clip, contain: paint clip and CSS clip
1071 // for this object, in local space. 1073 // for this object, in local space.
1072 LayoutRect clippingRect() const; 1074 LayoutRect clippingRect() const;
1073 1075
1074 virtual void paintBoxDecorationBackground(const PaintInfo&, 1076 virtual void paintBoxDecorationBackground(const PaintInfo&,
1075 const LayoutPoint&) const; 1077 const LayoutPoint&) const;
1076 virtual void paintMask(const PaintInfo&, const LayoutPoint&) const; 1078 virtual void paintMask(const PaintInfo&, const LayoutPoint&) const;
1077 void imageChanged(WrappedImagePtr, const IntRect* = nullptr) override; 1079 void imageChanged(WrappedImagePtr, const IntRect* = nullptr) override;
1078 ResourcePriority computeResourcePriority() const final; 1080 ResourcePriority computeResourcePriority() const final;
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
1298 bool mustInvalidateBackgroundOrBorderPaintOnHeightChange() const; 1300 bool mustInvalidateBackgroundOrBorderPaintOnHeightChange() const;
1299 bool mustInvalidateBackgroundOrBorderPaintOnWidthChange() const; 1301 bool mustInvalidateBackgroundOrBorderPaintOnWidthChange() const;
1300 1302
1301 // Returns true if the box intersects the viewport visible to the user. 1303 // Returns true if the box intersects the viewport visible to the user.
1302 bool intersectsVisibleViewport() const; 1304 bool intersectsVisibleViewport() const;
1303 1305
1304 bool hasNonCompositedScrollbars() const final; 1306 bool hasNonCompositedScrollbars() const final;
1305 1307
1306 void ensureIsReadyForPaintInvalidation() override; 1308 void ensureIsReadyForPaintInvalidation() override;
1307 1309
1308 virtual bool shouldClipOverflow() const; 1310 virtual bool hasControlClip() const { return false; }
1309 1311
1310 protected: 1312 protected:
1313 virtual LayoutRect controlClipRect(const LayoutPoint&) const {
1314 return LayoutRect();
1315 }
1316
1311 void willBeDestroyed() override; 1317 void willBeDestroyed() override;
1312 1318
1313 void insertedIntoTree() override; 1319 void insertedIntoTree() override;
1314 void willBeRemovedFromTree() override; 1320 void willBeRemovedFromTree() override;
1315 1321
1316 void styleWillChange(StyleDifference, const ComputedStyle& newStyle) override; 1322 void styleWillChange(StyleDifference, const ComputedStyle& newStyle) override;
1317 void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override; 1323 void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override;
1318 void updateFromStyle() override; 1324 void updateFromStyle() override;
1319 1325
1320 virtual ItemPosition selfAlignmentNormalBehavior() const { 1326 virtual ItemPosition selfAlignmentNormalBehavior() const {
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
1625 1631
1626 inline bool LayoutBox::isForcedFragmentainerBreakValue(EBreak breakValue) { 1632 inline bool LayoutBox::isForcedFragmentainerBreakValue(EBreak breakValue) {
1627 return breakValue == BreakColumn || breakValue == BreakLeft || 1633 return breakValue == BreakColumn || breakValue == BreakLeft ||
1628 breakValue == BreakPage || breakValue == BreakRecto || 1634 breakValue == BreakPage || breakValue == BreakRecto ||
1629 breakValue == BreakRight || breakValue == BreakVerso; 1635 breakValue == BreakRight || breakValue == BreakVerso;
1630 } 1636 }
1631 1637
1632 } // namespace blink 1638 } // namespace blink
1633 1639
1634 #endif // LayoutBox_h 1640 #endif // LayoutBox_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698