Bug 1422226 - Don't build display lists for NONDISPLAY content. r=jwatt

This commit is contained in:
Robert Longson 2018-05-13 19:16:26 +01:00
Родитель e057d51b4e
Коммит 1baf4cf80c
3 изменённых файлов: 42 добавлений и 1 удалений

Просмотреть файл

@ -3554,7 +3554,8 @@ nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder* aBuilder,
}
nsIFrame* child = aChild;
if (child->GetStateBits() & NS_FRAME_TOO_DEEP_IN_FRAME_TREE)
if (child->HasAnyStateBits(
NS_FRAME_TOO_DEEP_IN_FRAME_TREE | NS_FRAME_IS_NONDISPLAY))
return;
aBuilder->ClearWillChangeBudget(child);

Просмотреть файл

@ -0,0 +1,39 @@
<style id="htmlvar00001">
* {
filter: saturate(1) hue-rotate(0deg);
marker-mid: url()
}
</style>
<script>
function jsfuzzer() {
try { var var00078 = window.find("foo",true,true); } catch(e) { }
try { htmlvar00004.setAttribute("onselect", "eventhandler2()"); } catch(e) { }
try { htmlvar00004.selectionStart = 1; } catch(e) { }
try { svgvar00030.addEventListener("DOMSubtreeModified", eventhandler5); } catch(e) { }
}
function eventhandler1() {
try { var var00098 = document.createElement("select"); } catch(e) { }
try { htmlvar00001.appendChild(var00098); } catch(e) { }
}
function eventhandler2() {
try { htmlvar00015.href = "3" } catch(e) { }
try { svgvar00008.before(svgvar00013); } catch(e) { }
try { var var00014 = window.getSelection(); } catch(e) { }
try { var00014.setBaseAndExtent(htmlvar00011,0,htmlvar00010,0); } catch(e) { }
try { var00014.collapseToStart(); } catch(e) { }
}
function eventhandler5() {
try { svgvar00001.addEventListener("DOMNodeRemoved", eventhandler1); } catch(e) { }
}
</script>
<body onload=jsfuzzer()>
<input id="htmlvar00004">
<svg id="svgvar00001">
<marker>
<meshgradient id="svgvar00008">
<foreignObject id="svgvar00013">
<discard id="svgvar00030"/>
<a id="htmlvar00010" contenteditable="true"></a>
<a id="htmlvar00011">
<base id="htmlvar00015">

Просмотреть файл

@ -204,6 +204,7 @@ load 1348564.svg
load 1402109.html
load 1402124.html
load 1402486.html
load 1422226.html
load conditional-outer-svg-nondirty-reflow-assert.xhtml
load extref-test-1.xhtml
load blob-merging-and-retained-display-list.html