Bug 1413288: The owner of a bullet frame is the first continuation of the parent. r?xidorn draft
authorEmilio Cobos Álvarez <emilio@crisal.io>
Wed, 01 Nov 2017 12:20:55 +0100
changeset 690048 52e4f209f2d19c19394f7bea40802e81bda5f59f
parent 689820 ee21e5f7f1c1726e0ed2697eb45df54cdceedd36
child 690053 2358d5232af0c8a7020f662f6f7be320a232e25d
push id87186
push userbmo:emilio@crisal.io
push dateWed, 01 Nov 2017 11:22:53 +0000
reviewersxidorn
bugs1413288
milestone58.0a1
Bug 1413288: The owner of a bullet frame is the first continuation of the parent. r?xidorn MozReview-Commit-ID: FUsdsETkV2Q
layout/base/ServoRestyleManager.cpp
layout/style/crashtests/1413288.html
layout/style/crashtests/crashtests.list
--- a/layout/base/ServoRestyleManager.cpp
+++ b/layout/base/ServoRestyleManager.cpp
@@ -61,17 +61,17 @@ ExpectedOwnerForChild(const nsIFrame& aF
     if (parent->IsLineFrame()) {
       parent = parent->GetParent();
     }
     return parent->IsViewportFrame() ?
       nullptr : FirstContinuationOrPartOfIBSplit(parent);
   }
 
   if (aFrame.IsBulletFrame()) {
-    return parent;
+    return FirstContinuationOrPartOfIBSplit(parent);
   }
 
   if (aFrame.IsLineFrame()) {
     // A ::first-line always ends up here via its block, which is therefore the
     // right expected owner.  That block can be an
     // anonymous box.  For example, we could have a ::first-line on a columnated
     // block; the blockframe is the column-content anonymous box in that case.
     // So we don't want to end up in the code below, which steps out of anon
new file mode 100644
--- /dev/null
+++ b/layout/style/crashtests/1413288.html
@@ -0,0 +1,17 @@
+<style>
+:root { column-width: 0px; }
+:not(article) {	padding: 2 0px; }
+</style>
+<script>
+function jsfuzzer() {
+try { htmlvar00007.setAttribute("align", "LEFT"); } catch(e) { }
+try { svgvar00016.getStartPositionOfChar(0); } catch(e) { }
+try { htmlvar00016.style.setProperty("column-gap", "0"); } catch(e) { }
+}
+</script>
+<body onload=jsfuzzer()>
+<iframe id="htmlvar00007"></iframe>
+<details>
+<summary id="htmlvar00016">)
+<svg>
+<tspan id="svgvar00016" />
--- a/layout/style/crashtests/crashtests.list
+++ b/layout/style/crashtests/crashtests.list
@@ -253,8 +253,9 @@ load 1404324-2.html
 load 1404324-3.html
 load 1404057.html
 load 1409502.html
 load 1409931.html
 load 1410226-1.html
 load 1410226-2.html
 load 1411143.html
 load 1411478.html
+load 1413288.html