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

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

Issue 2068723002: Paint local attachment backgrounds into composited scrolling contents layer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments. Created 4 years, 4 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 27 matching lines...) Expand all
38 class ShapeOutsideInfo; 38 class ShapeOutsideInfo;
39 39
40 struct PaintInfo; 40 struct PaintInfo;
41 41
42 enum SizeType { MainOrPreferredSize, MinSize, MaxSize }; 42 enum SizeType { MainOrPreferredSize, MinSize, MaxSize };
43 enum AvailableLogicalHeightType { ExcludeMarginBorderPadding, IncludeMarginBorde rPadding }; 43 enum AvailableLogicalHeightType { ExcludeMarginBorderPadding, IncludeMarginBorde rPadding };
44 // When painting, overlay scrollbars do not take up space and should not affect 44 // When painting, overlay scrollbars do not take up space and should not affect
45 // clipping behavior. During hit testing, overlay scrollbars behave like regular 45 // clipping behavior. During hit testing, overlay scrollbars behave like regular
46 // scrollbars and should change how hit testing is clipped. 46 // scrollbars and should change how hit testing is clipped.
47 enum MarginDirection { BlockDirection, InlineDirection }; 47 enum MarginDirection { BlockDirection, InlineDirection };
48 enum BackgroundRectType { BackgroundClipRect, BackgroundKnownOpaqueRect };
48 49
49 enum ShouldComputePreferred { ComputeActual, ComputePreferred }; 50 enum ShouldComputePreferred { ComputeActual, ComputePreferred };
50 51
51 enum ApplyOverflowClipFlag { 52 enum ApplyOverflowClipFlag {
52 ApplyOverflowClip, 53 ApplyOverflowClip,
53 // Don't apply overflow clipping or scrolling. 54 // Don't apply overflow clipping or scrolling.
54 ApplyNonScrollOverflowClip 55 ApplyNonScrollOverflowClip
55 }; 56 };
56 57
57 using SnapAreaSet = HashSet<const LayoutBox*>; 58 using SnapAreaSet = HashSet<const LayoutBox*>;
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 342
342 // The content area of the box (excludes padding - and intrinsic padding for table cells, etc... - and border). 343 // The content area of the box (excludes padding - and intrinsic padding for table cells, etc... - and border).
343 LayoutRect contentBoxRect() const { return LayoutRect(borderLeft() + padding Left(), borderTop() + paddingTop(), contentWidth(), contentHeight()); } 344 LayoutRect contentBoxRect() const { return LayoutRect(borderLeft() + padding Left(), borderTop() + paddingTop(), contentWidth(), contentHeight()); }
344 LayoutSize contentBoxOffset() const { return LayoutSize(borderLeft() + paddi ngLeft(), borderTop() + paddingTop()); } 345 LayoutSize contentBoxOffset() const { return LayoutSize(borderLeft() + paddi ngLeft(), borderTop() + paddingTop()); }
345 // The content box in absolute coords. Ignores transforms. 346 // The content box in absolute coords. Ignores transforms.
346 IntRect absoluteContentBox() const; 347 IntRect absoluteContentBox() const;
347 // The offset of the content box in absolute coords, ignoring transforms. 348 // The offset of the content box in absolute coords, ignoring transforms.
348 IntSize absoluteContentBoxOffset() const; 349 IntSize absoluteContentBoxOffset() const;
349 // The content box converted to absolute coords (taking transforms into acco unt). 350 // The content box converted to absolute coords (taking transforms into acco unt).
350 FloatQuad absoluteContentQuad() const; 351 FloatQuad absoluteContentQuad() const;
351 // The clip rect of the background. 352 // The enclosing rectangle of the background with given opacity requirement.
trchen 2016/08/17 01:22:55 I think this comment needs to be revised too, as f
352 LayoutRect backgroundClipRect() const; 353 LayoutRect backgroundRect(BackgroundRectType) const;
353 354
354 // This returns the content area of the box (excluding padding and border). The only difference with contentBoxRect is that computedCSSContentBoxRect 355 // This returns the content area of the box (excluding padding and border). The only difference with contentBoxRect is that computedCSSContentBoxRect
355 // does include the intrinsic padding in the content box as this is what som e callers expect (like getComputedStyle). 356 // does include the intrinsic padding in the content box as this is what som e callers expect (like getComputedStyle).
356 LayoutRect computedCSSContentBoxRect() const { return LayoutRect(borderLeft( ) + computedCSSPaddingLeft(), borderTop() + computedCSSPaddingTop(), clientWidth () - computedCSSPaddingLeft() - computedCSSPaddingRight(), clientHeight() - comp utedCSSPaddingTop() - computedCSSPaddingBottom()); } 357 LayoutRect computedCSSContentBoxRect() const { return LayoutRect(borderLeft( ) + computedCSSPaddingLeft(), borderTop() + computedCSSPaddingTop(), clientWidth () - computedCSSPaddingLeft() - computedCSSPaddingRight(), clientHeight() - comp utedCSSPaddingTop() - computedCSSPaddingBottom()); }
357 358
358 void addOutlineRects(Vector<LayoutRect>&, const LayoutPoint& additionalOffse t, IncludeBlockVisualOverflowOrNot) const override; 359 void addOutlineRects(Vector<LayoutRect>&, const LayoutPoint& additionalOffse t, IncludeBlockVisualOverflowOrNot) const override;
359 360
360 // Use this with caution! No type checking is done! 361 // Use this with caution! No type checking is done!
361 LayoutBox* previousSiblingBox() const; 362 LayoutBox* previousSiblingBox() const;
362 LayoutBox* previousInFlowSiblingBox() const; 363 LayoutBox* previousInFlowSiblingBox() const;
(...skipping 854 matching lines...) Expand 10 before | Expand all | Expand 10 after
1217 || breakValue == BreakLeft 1218 || breakValue == BreakLeft
1218 || breakValue == BreakPage 1219 || breakValue == BreakPage
1219 || breakValue == BreakRecto 1220 || breakValue == BreakRecto
1220 || breakValue == BreakRight 1221 || breakValue == BreakRight
1221 || breakValue == BreakVerso; 1222 || breakValue == BreakVerso;
1222 } 1223 }
1223 1224
1224 } // namespace blink 1225 } // namespace blink
1225 1226
1226 #endif // LayoutBox_h 1227 #endif // LayoutBox_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698