freebsd-ports/www/waterfox/files/patch-bug1419762
Jan Beich 80a466e59a www/waterfox: update to 56.0.3
- Apply more FF58 fixes [1]

Changes:	https://github.com/MrAlex94/Waterfox/compare/56.0.2...56.0.3
Security:	a891c5b4-3d7a-4de9-9c71-eef3fd698c77 [1]
2018-01-12 21:36:02 +00:00

69 lines
3.2 KiB
Text

commit 0f58a35d5cb7
Author: Emilio Cobos Álvarez <emilio@crisal.io>
Date: Thu Nov 23 01:01:34 2017 +0100
Bug 1419762 - Return the inline continuation of an IB split when appending. r=mats, a=jcristau
The only reason not to do that is when there's after content in there. We know
that there isn't really any ::after content, since it would've been handled by
FindNextSibling, so we know we're performing a real append.
MozReview-Commit-ID: ExoPolZy4gG
--HG--
extra : source : 333214e07fd463dc1c7db00875bb6dff98eb0cdf
---
layout/base/crashtests/1419762.html | 15 +++++++++++++++
layout/base/crashtests/crashtests.list | 1 +
layout/base/nsCSSFrameConstructor.cpp | 7 ++++---
3 files changed, 20 insertions(+), 3 deletions(-)
diff --git layout/base/crashtests/1419762.html layout/base/crashtests/1419762.html
new file mode 100644
index 000000000000..08a56106db93
--- /dev/null
+++ layout/base/crashtests/1419762.html
@@ -0,0 +1,15 @@
+<style id='style_1'>
+ :first-child { display: table-column-group; }
+</style>
+<script>
+ try { o1 = document.createElement('isindex') } catch(e) { }
+ try { o2 = document.createElement('input') } catch(e) { }
+ try { o3 = document.createElement('optgroup') } catch(e) { }
+ try { o4 = document.createElement('col') } catch(e) { }
+ try { document.documentElement.appendChild(o1) } catch(e) { }
+ try { o1.appendChild(o2) } catch(e) { }
+ try { o1.appendChild(o3) } catch(e) { }
+ try { document.documentElement.offsetTop; } catch (e) { }
+ try { document.documentElement.appendChild(o4) } catch(e) { }
+ try { document.styleSheets[0].insertRule('optgroup::first-line { list-style-type: japanese-formal; }', 0); } catch(e) { }
+</script>
diff --git layout/base/crashtests/crashtests.list layout/base/crashtests/crashtests.list
index 7010ca4f2d3f..ecced042e228 100644
--- layout/base/crashtests/crashtests.list
+++ layout/base/crashtests/crashtests.list
@@ -493,3 +493,4 @@ asserts(0-1) load 1343606.html # bug 1343948
load 1352380.html
load 1362423-1.html
load 1381323.html
+load 1419762.html
diff --git layout/base/nsCSSFrameConstructor.cpp layout/base/nsCSSFrameConstructor.cpp
index bb6da0dba1da..0a1b588c21df 100644
--- layout/base/nsCSSFrameConstructor.cpp
+++ layout/base/nsCSSFrameConstructor.cpp
@@ -7044,10 +7044,11 @@ nsCSSFrameConstructor::GetInsertionPrevSibling(InsertionPoint* aInsertion,
*aIsAppend = true;
if (IsFramePartOfIBSplit(aInsertion->mParentFrame)) {
// Since we're appending, we'll walk to the last anonymous frame
- // that was created for the broken inline frame. But don't walk
- // to the trailing inline if it's empty; stop at the block.
+ // that was created for the broken inline frame. We can walk to the
+ // trailing inline, since we know this is a real append, and not an
+ // insert (that would've been handled by `FindNextSibling`).
aInsertion->mParentFrame =
- GetLastIBSplitSibling(aInsertion->mParentFrame, false);
+ GetLastIBSplitSibling(aInsertion->mParentFrame, true);
}
// Get continuation that parents the last child. This MUST be done
// before the AdjustAppendParentForAfterContent call.