diff --git a/layout/base/nsCSSRendering.cpp b/layout/base/nsCSSRendering.cpp
index 119c6c8a2..9a827546f 100644
--- a/layout/base/nsCSSRendering.cpp
+++ b/layout/base/nsCSSRendering.cpp
@@ -1903,8 +1903,15 @@ nsCSSRendering::GetImageLayerClip(const nsStyleImageLayers::Layer& aLayer,
nsRect clipBorderArea =
::BoxDecorationRectForBorder(aForFrame, aBorderArea, skipSides, &aBorder);
- bool haveRoundedCorners = GetRadii(aForFrame, aBorder, aBorderArea,
- clipBorderArea, aClipState->mRadii);
+ bool haveRoundedCorners = false;
+ nsIAtom* fType = aForFrame->GetType();
+ if (fType != nsGkAtoms::tableColGroupFrame &&
+ fType != nsGkAtoms::tableColFrame &&
+ fType != nsGkAtoms::tableRowFrame &&
+ fType != nsGkAtoms::tableRowGroupFrame) {
+ haveRoundedCorners = GetRadii(aForFrame, aBorder, aBorderArea,
+ clipBorderArea, aClipState->mRadii);
+ }
bool isSolidBorder =
aWillPaintBorder && IsOpaqueBorder(aBorder);
diff --git a/layout/reftests/table-bordercollapse/bug1375518-2.html b/layout/reftests/table-bordercollapse/bug1375518-2.html
new file mode 100644
index 000000000..c36737622
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/bug1375518-2.html
@@ -0,0 +1,22 @@
+
+
+
+Table border collapse
+
+
+
+
+
+
\ No newline at end of file
diff --git a/layout/reftests/table-bordercollapse/bug1375518-3.html b/layout/reftests/table-bordercollapse/bug1375518-3.html
new file mode 100644
index 000000000..1d188e19f
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/bug1375518-3.html
@@ -0,0 +1,22 @@
+
+
+
+Separated border model table
+
+
+
+
+
+
\ No newline at end of file
diff --git a/layout/reftests/table-bordercollapse/bug1375518-4-ref.html b/layout/reftests/table-bordercollapse/bug1375518-4-ref.html
new file mode 100644
index 000000000..f9a8f07d7
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/bug1375518-4-ref.html
@@ -0,0 +1,44 @@
+
+border-radius and separated border model tables
+
+
+border-radius and separated border model tables
+
+
+
+ xx | xx | xx
+ |
+
+ xx | xx | xx
+ |
xx | xx | xx
+ |
+
+ xx | xx | xx
+ |
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/layout/reftests/table-bordercollapse/bug1375518-4.html b/layout/reftests/table-bordercollapse/bug1375518-4.html
new file mode 100644
index 000000000..97aebd456
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/bug1375518-4.html
@@ -0,0 +1,44 @@
+
+border-radius and separated border model tables
+
+
+border-radius and separated border model tables
+
+
+
+ xx | xx | xx
+ |
+
+ xx | xx | xx
+ |
xx | xx | xx
+ |
+
+ xx | xx | xx
+ |
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/layout/reftests/table-bordercollapse/bug1375518-5-ref.html b/layout/reftests/table-bordercollapse/bug1375518-5-ref.html
new file mode 100644
index 000000000..eaf1710bc
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/bug1375518-5-ref.html
@@ -0,0 +1,44 @@
+
+border-radius and border-collapse tables
+
+
+border-radius and border-collapse tables
+
+
+
+ xx | xx | xx
+ |
+
+ xx | xx | xx
+ |
xx | xx | xx
+ |
+
+ xx | xx | xx
+ |
+
+
+
+
+
+
+
diff --git a/layout/reftests/table-bordercollapse/bug1375518-5.html b/layout/reftests/table-bordercollapse/bug1375518-5.html
new file mode 100644
index 000000000..7f123cd42
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/bug1375518-5.html
@@ -0,0 +1,44 @@
+
+border-radius and border-collapse tables
+
+
+border-radius and border-collapse tables
+
+
+
+ xx | xx | xx
+ |
+
+ xx | xx | xx
+ |
xx | xx | xx
+ |
+
+ xx | xx | xx
+ |
+
+
+
+
+
+
+
diff --git a/layout/reftests/table-bordercollapse/bug1375518-ref.html b/layout/reftests/table-bordercollapse/bug1375518-ref.html
new file mode 100644
index 000000000..5d58d6839
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/bug1375518-ref.html
@@ -0,0 +1,17 @@
+
+
+
+Table border collapse
+
+
+
+
+
+
\ No newline at end of file
diff --git a/layout/reftests/table-bordercollapse/bug1375518.html b/layout/reftests/table-bordercollapse/bug1375518.html
new file mode 100644
index 000000000..101d92548
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/bug1375518.html
@@ -0,0 +1,24 @@
+
+
+
+Table border collapse
+
+
+
+
+
+
\ No newline at end of file
diff --git a/layout/reftests/table-bordercollapse/reftest.list b/layout/reftests/table-bordercollapse/reftest.list
index 5ca6f305a..aac4934d6 100644
--- a/layout/reftests/table-bordercollapse/reftest.list
+++ b/layout/reftests/table-bordercollapse/reftest.list
@@ -1,3 +1,8 @@
+== bug1375518.html bug1375518-ref.html
+== bug1375518-2.html bug1375518-ref.html
+== bug1375518-3.html bug1375518-ref.html
+== bug1375518-4.html bug1375518-4-ref.html
+== bug1375518-5.html bug1375518-5-ref.html
== bc_dyn_cell1.html bc_dyn_cell1_ref.html
== bc_dyn_cell2.html bc_dyn_cell2_ref.html
== bc_dyn_cell3.html bc_dyn_cell3_ref.html
diff --git a/layout/tables/nsTableCellFrame.cpp b/layout/tables/nsTableCellFrame.cpp
index 9c715d999..ee05565a9 100644
--- a/layout/tables/nsTableCellFrame.cpp
+++ b/layout/tables/nsTableCellFrame.cpp
@@ -1108,18 +1108,6 @@ nsBCTableCellFrame::GetUsedBorder() const
return GetBorderWidth(wm).GetPhysicalMargin(wm);
}
-/* virtual */ bool
-nsBCTableCellFrame::GetBorderRadii(const nsSize& aFrameSize,
- const nsSize& aBorderArea,
- Sides aSkipSides,
- nscoord aRadii[8]) const
-{
- NS_FOR_CSS_HALF_CORNERS(corner) {
- aRadii[corner] = 0;
- }
- return false;
-}
-
#ifdef DEBUG_FRAME_DUMP
nsresult
nsBCTableCellFrame::GetFrameName(nsAString& aResult) const
diff --git a/layout/tables/nsTableCellFrame.h b/layout/tables/nsTableCellFrame.h
index a822e309d..2acd59667 100644
--- a/layout/tables/nsTableCellFrame.h
+++ b/layout/tables/nsTableCellFrame.h
@@ -340,10 +340,6 @@ public:
virtual nsIAtom* GetType() const override;
virtual nsMargin GetUsedBorder() const override;
- virtual bool GetBorderRadii(const nsSize& aFrameSize,
- const nsSize& aBorderArea,
- Sides aSkipSides,
- nscoord aRadii[8]) const override;
// Get the *inner half of the border only*, in twips.
virtual LogicalMargin GetBorderWidth(WritingMode aWM) const override;