зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1461812 - Make sure we fully cleanup any partially constructed display lists when returning a failure from AttemptPartialUpdate. r=miko
MozReview-Commit-ID: DJBG6UFcoyR --HG-- extra : rebase_source : 38e33ad785556b92b8058f00a85d48c27fb4d2e3
This commit is contained in:
Родитель
9ab2784516
Коммит
5412f4e50b
|
@ -0,0 +1,19 @@
|
|||
<style>
|
||||
:not(feConvolveMatrix) {
|
||||
width: -moz-max-content;
|
||||
column-width: 0em;
|
||||
text-indent: 1pt;
|
||||
}
|
||||
.cl {
|
||||
padding-bottom: 93vw;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function go() {
|
||||
b.appendChild(a);
|
||||
}
|
||||
</script>
|
||||
<marquee id="b">4H</marquee>
|
||||
<details class="cl">
|
||||
<summary id="a" style="mix-blend-mode:color-dodge">A</summary>
|
||||
<style onload="go()">
|
|
@ -531,3 +531,4 @@ load 1453702.html
|
|||
load 1453342.html
|
||||
load 1453196.html
|
||||
pref(dom.webcomponents.shadowdom.enabled,true) load 1414303.html
|
||||
load 1461812.html
|
||||
|
|
|
@ -463,11 +463,6 @@ public:
|
|||
bool mResultIsModified;
|
||||
};
|
||||
|
||||
void RetainedDisplayList::ClearDAG()
|
||||
{
|
||||
mDAG.Clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes two display lists and merges them into an output list.
|
||||
*
|
||||
|
@ -1119,7 +1114,7 @@ RetainedDisplayListBuilder::AttemptPartialUpdate(
|
|||
&modifiedAGR, framesWithProps.Frames()) ||
|
||||
!PreProcessDisplayList(&mList, modifiedAGR)) {
|
||||
mBuilder.LeavePresShell(mBuilder.RootReferenceFrame(), List());
|
||||
mList.ClearDAG();
|
||||
mList.DeleteAll(&mBuilder);
|
||||
return PartialUpdateResult::Failed;
|
||||
}
|
||||
|
||||
|
@ -1157,7 +1152,8 @@ RetainedDisplayListBuilder::AttemptPartialUpdate(
|
|||
if (mBuilder.PartialBuildFailed()) {
|
||||
mBuilder.SetPartialBuildFailed(false);
|
||||
mBuilder.LeavePresShell(mBuilder.RootReferenceFrame(), List());
|
||||
mList.ClearDAG();
|
||||
mList.DeleteAll(&mBuilder);
|
||||
modifiedDL.DeleteAll(&mBuilder);
|
||||
return PartialUpdateResult::Failed;
|
||||
}
|
||||
|
||||
|
|
|
@ -3474,11 +3474,10 @@ public:
|
|||
}
|
||||
}
|
||||
mOldItems.Clear();
|
||||
mDAG.Clear();
|
||||
nsDisplayList::DeleteAll(aBuilder);
|
||||
}
|
||||
|
||||
void ClearDAG();
|
||||
|
||||
DirectedAcyclicGraph<MergedListUnits> mDAG;
|
||||
|
||||
// Temporary state initialized during the preprocess pass
|
||||
|
|
Загрузка…
Ссылка в новой задаче