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

Side by Side Diff: third_party/WebKit/Source/core/paint/README.md

Issue 1798263002: Rename isTreatedAsOrStackingContext to isStacked (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Markdown, isStacked, paintAllPhasesAtomically Created 4 years, 9 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 # `Source/core/paint` 1 # `Source/core/paint`
2 2
3 This directory contains implementation of painters of layout objects. 3 This directory contains implementation of painters of layout objects.
4 4
5 ## Stacked contents and stacking contexts
6
7 This chapter is basically a clarification of [CSS 2.1 appendix E. Elaborate desc ription
8 of Stacking Contexts](http://www.w3.org/TR/CSS21/zindex.html).
9
10 According to the documentation, we can have the following types of elements that are
11 treated in different ways during painting:
12
13 * Stacked elements: elements that are z-ordered in stacking contexts.
14
15 * Stacking contexts: elements with non-auto z-indices.
16
17 * Elements that are not real stacking contexts but are treated as stacking
18 contexts and their z-ordering are managed by real stacking contexts.
19 They are positioned elements with `z-index: auto` (E.2.8 in the document ation).
chrishtr 2016/03/16 16:26:16 Add a paragraph below that explains what "treated
Xianzhu 2016/03/16 18:10:24 Done.
20 They must be managed by the enclosing stacking context as stacked elemen ts
21 because `z-index:auto` and `z-index:0` are considered equal for stacking
22 context sorting and they may interleave by DOM order.
23
24 They are painted as self-painting PaintLayers.
25
26 * Non-stacked pseudo stacking contexts: elements that are not stacked, but pai nt
27 their descendants (excluding any stacked contents) as if they created stacki ng
28 contexts. This includes
29
30 * inline blocks, inline tables, inline-level replaced elements
31 (E.2.7.2.1.4 in the documentation)
32 * non-positioned floating elements (E.2.5 in the documentation)
33 * [flex items](http://www.w3.org/TR/css-flexbox-1/#painting)
34 * [grid items](http://www.w3.org/TR/css-grid-1/#z-order)
35 * custom scrollbar parts
36
37 They are painted as pseudo stacking contexts by `ObjectPainter::paintAsPseud oStackingContext()`.
pdr. 2016/03/16 02:22:53 Nit: update to be paintAllPhasesAtomically
Xianzhu 2016/03/16 18:10:24 Done.
38
39 * Other normal elements.
40
41 "Stacked element" is not defined as a formal term in the documentation, but we f ound
42 it convenient to use this term to refer to any elements participating z-index or dering
43 in stacking contexts.
44
5 ## Painters 45 ## Painters
6 46
7 ## Paint invalidation 47 ## Paint invalidation
8 48
9 Paint invalidation marks anything that need to be painted differently from the o riginal 49 Paint invalidation marks anything that need to be painted differently from the o riginal
10 cached painting. 50 cached painting.
11 51
12 ### Slimming paint v1 52 ### Slimming paint v1
13 53
14 Though described in this document, most of the actual paint invalidation code is under 54 Though described in this document, most of the actual paint invalidation code is under
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 so we never clear the flags. Instead, we use another set of flags (`previousPain tPhaseXXXWasEmpty`) 148 so we never clear the flags. Instead, we use another set of flags (`previousPain tPhaseXXXWasEmpty`)
109 to record if a painting of a phase actually produced nothing. We'll skip the nex t 149 to record if a painting of a phase actually produced nothing. We'll skip the nex t
110 painting of the phase if the flag is set, regardless of the corresponding 150 painting of the phase if the flag is set, regardless of the corresponding
111 `needsPaintPhaseXXX` flag. We will clear the `previousPaintPhaseXXXWasEmpty` fla gs when 151 `needsPaintPhaseXXX` flag. We will clear the `previousPaintPhaseXXXWasEmpty` fla gs when
112 we paint with different clipping, scroll offset or interest rect from the previo us paint. 152 we paint with different clipping, scroll offset or interest rect from the previo us paint.
113 153
114 We don't clear the `previousPaintPhaseXXXWasEmpty` flags when the layer is marke d `needsRepaint`. 154 We don't clear the `previousPaintPhaseXXXWasEmpty` flags when the layer is marke d `needsRepaint`.
115 Instead we clear the flag when the corresponding `needsPaintPhaseXXX` is set. Th is ensures that 155 Instead we clear the flag when the corresponding `needsPaintPhaseXXX` is set. Th is ensures that
116 we won't clear `previousPaintPhaseXXXWasEmpty` flags when unrelated things chang ed which won't 156 we won't clear `previousPaintPhaseXXXWasEmpty` flags when unrelated things chang ed which won't
117 cause the paint phases to become non-empty. 157 cause the paint phases to become non-empty.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698