diff --git a/layout/generic/nsSubDocumentFrame.cpp b/layout/generic/nsSubDocumentFrame.cpp index 40ae74cefa4a..8be040aed00f 100644 --- a/layout/generic/nsSubDocumentFrame.cpp +++ b/layout/generic/nsSubDocumentFrame.cpp @@ -419,10 +419,17 @@ nsSubDocumentFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, childItems.AppendToTop(layerItem); } + nsDisplayList list; // Clip children to the child root frame's rectangle - rv = aLists.Content()->AppendNewToTop( + rv = list.AppendNewToTop( new (aBuilder) nsDisplayClip(aBuilder, this, &childItems, subdocBoundsInParentUnits)); + + if (mIsInline) { + WrapReplacedContentForBorderRadius(aBuilder, &list, aLists); + } else { + aLists.Content()->AppendToTop(&list); + } } // delete childItems in case of OOM childItems.DeleteAll(); diff --git a/layout/reftests/border-radius/iframe-1-ref.html b/layout/reftests/border-radius/iframe-1-ref.html new file mode 100644 index 000000000000..360c443f046b --- /dev/null +++ b/layout/reftests/border-radius/iframe-1-ref.html @@ -0,0 +1,7 @@ + +
+ + + + + diff --git a/layout/reftests/border-radius/iframe-1.html b/layout/reftests/border-radius/iframe-1.html new file mode 100644 index 000000000000..b3fc86792cf6 --- /dev/null +++ b/layout/reftests/border-radius/iframe-1.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/layout/reftests/border-radius/reftest.list b/layout/reftests/border-radius/reftest.list index 7909b51d9586..64bf5d0a268a 100644 --- a/layout/reftests/border-radius/reftest.list +++ b/layout/reftests/border-radius/reftest.list @@ -77,3 +77,5 @@ random-if(winWidget) HTTP(..) == corner-joins-2.xhtml corner-joins-2-ref.xhtml == scroll-1.html scroll-1-ref.html # see bug 602892 == zero-radius-clip-1.html zero-radius-clip-ref.html + +== iframe-1.html iframe-1-ref.html