Bug 1077872 - Implement rendering of isolation CSS property. r=roc

This commit is contained in:
Rik Cabanier 2014-10-16 14:52:00 +02:00
parent 8c5e4de5a1
commit 76f0edb969
4 changed files with 48 additions and 0 deletions

View File

@ -2313,11 +2313,13 @@ nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder* aBuilder,
(isPositioned && (disp->mPosition == NS_STYLE_POSITION_STICKY ||
pos->mZIndex.GetUnit() == eStyleUnit_Integer)) ||
(disp->mWillChangeBitField & NS_STYLE_WILL_CHANGE_STACKING_CONTEXT) ||
disp->mIsolation != NS_STYLE_ISOLATION_AUTO ||
isVisuallyAtomic || (aFlags & DISPLAY_CHILD_FORCE_STACKING_CONTEXT);
if (isVisuallyAtomic || isPositioned || (!isSVG && disp->IsFloating(child)) ||
((disp->mClipFlags & NS_STYLE_CLIP_RECT) &&
IsSVGContentWithCSSClip(child)) ||
disp->mIsolation != NS_STYLE_ISOLATION_AUTO ||
(disp->mWillChangeBitField & NS_STYLE_WILL_CHANGE_STACKING_CONTEXT) ||
(aFlags & DISPLAY_CHILD_FORCE_STACKING_CONTEXT)) {
// If you change this, also change IsPseudoStackingContextFromStyle()

View File

@ -0,0 +1,15 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<style>
#a {
background-color: rgb(0,255,0);
width: 200px;
height: 210px;
}
</style>
<div id="a">
</div>
</html>

View File

@ -0,0 +1,28 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html>
<style>
.a {
background-color: rgb(0,255,0);
}
#b {
width: 200px;
height: 210px;
}
.c {
width: 100px;
height: 100px;
mix-blend-mode: difference;
}
#d {
isolation: isolate;
}
</style>
<div id="b" class="a">
<div id="d">
<div class="a c"></div>
</div>
</div>
</html>

View File

@ -84,3 +84,6 @@ pref(layout.css.background-blend-mode.enabled,true) == background-blend-mode-bod
pref(layout.css.background-blend-mode.enabled,true) == background-blend-mode-body-transparent-image.html background-blend-mode-body-transparent-image-ref.html
pref(layout.css.background-blend-mode.enabled,true) == background-blending-moz-element.html background-blending-moz-element-ref.html
# Test plan 4.4.2 element with isolation:isolate creates an isolated group for blended children
pref(layout.css.isolation.enabled,true) == blend-isolation.html blend-isolation-ref.html