From 0b369f2ea1bd2d925ccf9985d1ad83bbc325589e Mon Sep 17 00:00:00 2001
From: "L. David Baron" <dbaron@dbaron.org>
Date: Thu, 5 Jun 2008 16:06:34 -0700
Subject: [PATCH] Remove unneeded (and not present in the proposed CSS3
 float-displace property) border-box and padding-box values of
 -moz-float-edge.  (Bug 432891)  r+sr=roc

---
 layout/base/nsStyleConsts.h            |  4 +--
 layout/generic/nsBlockReflowState.cpp  | 36 --------------------------
 layout/reftests/bugs/97777-2-ref.html  | 16 ------------
 layout/reftests/bugs/97777-2.html      | 16 ------------
 layout/style/nsCSSProps.cpp            |  2 --
 layout/style/test/property_database.js |  2 +-
 6 files changed, 2 insertions(+), 74 deletions(-)

diff --git a/layout/base/nsStyleConsts.h b/layout/base/nsStyleConsts.h
index 24bfc04bb6e55..10f42e0c8a050 100644
--- a/layout/base/nsStyleConsts.h
+++ b/layout/base/nsStyleConsts.h
@@ -67,9 +67,7 @@
 
 // float-edge
 #define NS_STYLE_FLOAT_EDGE_CONTENT       0
-#define NS_STYLE_FLOAT_EDGE_PADDING       1
-#define NS_STYLE_FLOAT_EDGE_BORDER        2
-#define NS_STYLE_FLOAT_EDGE_MARGIN        3
+#define NS_STYLE_FLOAT_EDGE_MARGIN        1
 
 // key-equivalent
 #define NS_STYLE_KEY_EQUIVALENT_NONE      0
diff --git a/layout/generic/nsBlockReflowState.cpp b/layout/generic/nsBlockReflowState.cpp
index 6482bf8db9f77..f233603768548 100644
--- a/layout/generic/nsBlockReflowState.cpp
+++ b/layout/generic/nsBlockReflowState.cpp
@@ -299,42 +299,6 @@ nsBlockReflowState::ComputeBlockAvailSpace(nsIFrame* aFrame,
           aResult.x = borderPadding.left;
           aResult.width = mContentArea.width;
           break;
-        case NS_STYLE_FLOAT_EDGE_BORDER: 
-        case NS_STYLE_FLOAT_EDGE_PADDING:
-          {
-            // The child block's border should be placed adjacent to,
-            // but not overlap the float(s).
-            nsMargin m(0, 0, 0, 0);
-            const nsStyleMargin* styleMargin = aFrame->GetStyleMargin();
-            styleMargin->GetMargin(m); // XXX percentage margins
-            if (NS_STYLE_FLOAT_EDGE_PADDING == borderStyle->mFloatEdge) {
-              // Add in border too
-              m += borderStyle->GetBorder();
-            }
-
-            // determine left edge
-            if (mBand.GetLeftFloatCount()) {
-              aResult.x = mAvailSpaceRect.x + borderPadding.left - m.left;
-            }
-            else {
-              aResult.x = borderPadding.left;
-            }
-
-            // determine width
-            if (mBand.GetRightFloatCount()) {
-              if (mBand.GetLeftFloatCount()) {
-                aResult.width = mAvailSpaceRect.width + m.left + m.right;
-              }
-              else {
-                aResult.width = mAvailSpaceRect.width + m.right;
-              }
-            }
-            else {
-              aResult.width = mAvailSpaceRect.width + m.left;
-            }
-          }
-          break;
-
         case NS_STYLE_FLOAT_EDGE_MARGIN:
           {
             // The child block's margins should be placed adjacent to,
diff --git a/layout/reftests/bugs/97777-2-ref.html b/layout/reftests/bugs/97777-2-ref.html
index 8c63265106698..6d469a1529435 100644
--- a/layout/reftests/bugs/97777-2-ref.html
+++ b/layout/reftests/bugs/97777-2-ref.html
@@ -11,22 +11,6 @@
   </style>
 </head>
 <body>
-<table style="top: 0.5em"><tr><td>
-  <p style="float: left">Float</p>
-  <div class="sub" style="-moz-float-edge: border-box">Should be shrink-wrapped [align="center", float-edge="border-box"]</div>
-</td></tr></table>
-<table style="top: 4.5em"><tr><td>
-  <p style="float: right">Float</p>
-  <div class="sub" style="-moz-float-edge: border-box">Should be shrink-wrapped [align="center", float-edge="border-box"]</div>
-</td></tr></table>
-<table style="top: 8.5em"><tr><td>
-  <p style="float: left">Float</p>
-  <div class="sub" style="-moz-float-edge: padding-box">Should be shrink-wrapped [align="center", float-edge="padding-box"]</div>
-</table>
-<table style="top: 12.5em"><tr><td>
-  <p style="float: right">Float</p>
-  <div class="sub" style="-moz-float-edge: padding-box">Should be shrink-wrapped [align="center", float-edge="padding-box"]</div>
-</table>
 <table style="top: 16.5em"><tr><td>
   <p style="float: left">Float</p>
   <div class="sub" style="-moz-float-edge: margin-box">Should be shrink-wrapped [align="center", float-edge="margin-box"]</div>
diff --git a/layout/reftests/bugs/97777-2.html b/layout/reftests/bugs/97777-2.html
index 3758d742762c2..b217588ac4830 100644
--- a/layout/reftests/bugs/97777-2.html
+++ b/layout/reftests/bugs/97777-2.html
@@ -10,22 +10,6 @@
   </style>
 </head>
 <body>
-<div class="top" style="top: 0.5em" align="center">
-  <p style="float: left">Float</p>
-  <div class="sub" style="-moz-float-edge: border-box">Should be shrink-wrapped [align="center", float-edge="border-box"]</div>
-</div>
-<div class="top" style="top: 4.5em" align="center">
-  <p style="float: right">Float</p>
-  <div class="sub" style="-moz-float-edge: border-box">Should be shrink-wrapped [align="center", float-edge="border-box"]</div>
-</div>
-<div class="top" style="top: 8.5em" align="center">
-  <p style="float: left">Float</p>
-  <div class="sub" style="-moz-float-edge: padding-box">Should be shrink-wrapped [align="center", float-edge="padding-box"]</div>
-</div>
-<div class="top" style="top: 12.5em" align="center">
-  <p style="float: right">Float</p>
-  <div class="sub" style="-moz-float-edge: padding-box">Should be shrink-wrapped [align="center", float-edge="padding-box"]</div>
-</div>
 <div class="top" style="top: 16.5em" align="center">
   <p style="float: left">Float</p>
   <div class="sub" style="-moz-float-edge: margin-box">Should be shrink-wrapped [align="center", float-edge="margin-box"]</div>
diff --git a/layout/style/nsCSSProps.cpp b/layout/style/nsCSSProps.cpp
index 2c38d2819e17b..009eae45ecd20 100644
--- a/layout/style/nsCSSProps.cpp
+++ b/layout/style/nsCSSProps.cpp
@@ -595,8 +595,6 @@ const PRInt32 nsCSSProps::kFloatKTable[] = {
 
 const PRInt32 nsCSSProps::kFloatEdgeKTable[] = {
   eCSSKeyword_content_box,  NS_STYLE_FLOAT_EDGE_CONTENT,
-  eCSSKeyword_border_box,  NS_STYLE_FLOAT_EDGE_BORDER,
-  eCSSKeyword_padding_box,  NS_STYLE_FLOAT_EDGE_PADDING,
   eCSSKeyword_margin_box,  NS_STYLE_FLOAT_EDGE_MARGIN,
   eCSSKeyword_UNKNOWN,-1
 };
diff --git a/layout/style/test/property_database.js b/layout/style/test/property_database.js
index b82d0a34d09d9..66250e9b09366 100644
--- a/layout/style/test/property_database.js
+++ b/layout/style/test/property_database.js
@@ -340,7 +340,7 @@ var gCSSProperties = {
 		inherited: false,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "content-box" ],
-		other_values: [ "border-box", "padding-box", "margin-box" ],
+		other_values: [ "margin-box" ],
 		invalid_values: [ "content", "padding", "border", "margin" ]
 	},
 	"-moz-force-broken-image-icon": {
-- 
GitLab