Bug 1388931 part 4 - Remove the tests that test SVG path data DOM interfaces. r=longsonr draft
authorJonathan Watt <jwatt@jwatt.org>
Wed, 24 Jan 2018 21:35:53 +0000
changeset 724316 3956a171c5700fd4a56296191c45db1b2c3ab69b
parent 724315 ad398af964ab8b2573d8bfcc4031ea5e86c0ec27
child 724317 80b21ef7402cce9d21cc3e0c780c8987056b4674
push id96725
push userjwatt@jwatt.org
push dateWed, 24 Jan 2018 21:36:27 +0000
reviewerslongsonr
bugs1388931
milestone60.0a1
Bug 1388931 part 4 - Remove the tests that test SVG path data DOM interfaces. r=longsonr MozReview-Commit-ID: TwmsHWRaAq
dom/svg/crashtests/367357-1.xhtml
dom/svg/crashtests/369249-1.svg
dom/svg/crashtests/372046-1.svg
dom/svg/crashtests/372046-2.svg
dom/svg/crashtests/435209-1.svg
dom/svg/crashtests/crashtests.list
dom/svg/test/mochitest.ini
dom/svg/test/test_SVGPathSegList.xhtml
dom/svg/test/test_SVGxxxList.xhtml
dom/svg/test/test_SVGxxxListIndexing.xhtml
dom/svg/test/test_pathLength.html
dom/svg/test/test_pathSeg.xhtml
dom/tests/mochitest/general/test_interfaces.js
layout/reftests/svg/path-03.svg
layout/reftests/svg/reftest.list
layout/svg/crashtests/327709-1.svg
layout/svg/crashtests/crashtests.list
testing/web-platform/meta/svg/historical.html.ini
deleted file mode 100644
--- a/dom/svg/crashtests/367357-1.xhtml
+++ /dev/null
@@ -1,20 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-
-<script>
-function boom()
-{
-  document.getElementById("path").pathSegList.pathSegTypeAsLetter;
-}
-</script>
-
-</head>
-
-<body onload="boom()">
-
-  <svg xmlns="http://www.w3.org/2000/svg" height="400px" width="400px">
-    <path id="path" style="stroke: blue" d="M 200.50000,387.89713 L 201.19970,12.500000" />
-  </svg>
-
-</body>
-</html>
deleted file mode 100644
--- a/dom/svg/crashtests/369249-1.svg
+++ /dev/null
@@ -1,20 +0,0 @@
-<svg width='100%' height='100%' 
-  xmlns='http://www.w3.org/2000/svg' 
-  xmlns:html="http://www.w3.org/1999/xhtml"
-  onload='boom()'>
-  
-<html:script>
-  
-function boom()
-{
-  try {
-    document.getElementById("path").pathSegList.getItem(-10000000);
-  } catch(e) {
-  }
-}
-
-</html:script>
-
-<path id='path' d='M300,25 C320,250 375,150 400,150 S400,340 330,350'/>
-
-</svg>
deleted file mode 100644
--- a/dom/svg/crashtests/372046-1.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" onload="setTimeout(boom, 30);" class="reftest-wait">
-
-<script>
-function boom()
-{
-  try {
-    document.getElementById("path_1").pathSegList.insertItemBefore({}, 0);
-  } catch(e) {
-  }
-
-  document.documentElement.removeAttribute("class");
-}
-</script>
-
-<path id='path_1' d='M300,25 C500,100 575,300 330,350'/>
-
-</svg>
deleted file mode 100644
--- a/dom/svg/crashtests/372046-2.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" onload="setTimeout(boom, 30);" class="reftest-wait">
-
-<script>
-function boom()
-{
-  try {
-    document.getElementById("path_1").pathSegList.insertItemBefore({}, 0);
-  } catch(e) {
-  }
-
-  document.documentElement.removeAttribute("class");
-}
-</script>
-
-<path id='path_1' d='M300,25 C500,100 575,300 330,350'/>
-
-</svg>
deleted file mode 100644
--- a/dom/svg/crashtests/435209-1.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg">
-<path/>
-
-<script xmlns="http://www.w3.org/1999/xhtml"><![CDATA[
-var x=document.getElementsByTagName('path')[0];
-var y = x.pathSegList;
-var z = x.createSVGPathSegMovetoRel(0,0);
-y.appendItem(z,0);
-y.replaceItem(z, 0);
-]]></script>
-</svg>
\ No newline at end of file
--- a/dom/svg/crashtests/crashtests.list
+++ b/dom/svg/crashtests/crashtests.list
@@ -1,22 +1,18 @@
 asserts(0-6) load 307322-1.svg # bug 563481
 load 327705-1.svg
 load 336994-1.html
 load 344888-1.svg
 load 345445-1.svg
 load 360836-1.svg
-load 367357-1.xhtml
 load 369051-1.svg
-load 369249-1.svg
 load 369291-1.svg
 load 369291-2.svg
 load 369568-1.svg
-load 372046-1.svg
-load 372046-2.svg
 load 374882-1.svg
 load 380101-1.svg 
 load 381777-1.svg
 load 383685-1.svg
 load 385096.html
 load 385554-1.html
 load 385554-2.xul
 load 388712-1.svg
@@ -36,17 +32,16 @@ load 410659-1.svg
 load 410659-2.svg
 load 410659-3.svg
 asserts(3-4) load 412104-1.svg # bug 903785
 load 413174-1.svg
 load 414188-1.svg
 load 427325-1.svg
 load 428228-1.svg
 load 428841-1.svg
-load 435209-1.svg
 load 436418-mpathRoot-1.svg
 load 448244-1.svg
 load 466576-1.xhtml
 load 499879-1.svg
 load 535691-1.svg
 load 539167-1.svg
 load 573316-1.svg
 load 579356-1.svg
--- a/dom/svg/test/mochitest.ini
+++ b/dom/svg/test/mochitest.ini
@@ -50,18 +50,17 @@ skip-if = true # disabled-for-intermitte
 [test_length.xhtml]
 [test_lengthParsing.html]
 [test_markerOrient.xhtml]
 [test_nonAnimStrings.xhtml]
 [test_non-scaling-stroke.html]
 [test_object-delayed-intrinsic-size.html]
 [test_onerror.xhtml]
 [test_pathAnimInterpolation.xhtml]
-[test_pathLength.html]
-[test_pathSeg.xhtml]
+skip-if = true # We need to polyfill the SVG DOM for path data
 [test_pointAtLength.xhtml]
 [test_pointer-events-1a.xhtml]
 [test_pointer-events-1b.xhtml]
 [test_pointer-events-2.xhtml]
 [test_pointer-events-3.xhtml]
 skip-if = android_version == '18' # bug 1147994
 [test_pointer-events-4.xhtml]
 [test_pointer-events-5.xhtml]
@@ -72,17 +71,16 @@ skip-if = android_version == '18' # bug 
 [test_style_sheet.html]
 [test_stroke-hit-testing.xhtml]
 [test_stroke-linecap-hit-testing.xhtml]
 [test_SVGLengthList-2.xhtml]
 [test_SVGLengthList.xhtml]
 [test_SVGMatrix.xhtml]
 [test_SVG_namespace_ids.html]
 [test_SVGNumberList.xhtml]
-[test_SVGPathSegList.xhtml]
 [test_SVGPointList.xhtml]
 [test_SVGStringList.xhtml]
 [test_SVGStyleElement.xhtml]
 [test_SVGTransformListAddition.xhtml]
 [test_SVGTransformList.xhtml]
 [test_SVGUnitTypes.html]
 [test_SVGxxxListIndexing.xhtml]
 [test_SVGxxxList.xhtml]
deleted file mode 100644
--- a/dom/svg/test/test_SVGPathSegList.xhtml
+++ /dev/null
@@ -1,128 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=611138
--->
-<head>
-  <title>Generic tests for SVG animated length lists</title>
-  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <script type="text/javascript" src="MutationEventChecker.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=611138">Mozilla Bug 611138</a>
-<p id="display"></p>
-<div id="content" style="display:none;">
-<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="100" height="100">
-  <path id="path"/>
-</svg>
-</div>
-<pre id="test">
-<script class="testbody" type="text/javascript">
-<![CDATA[
-
-SimpleTest.waitForExplicitFinish();
-
-/*
-This file runs a series of SVGPathSegList specific tests. Generic SVGXxxList
-tests can be found in test_SVGxxxList.xhtml. Anything that can be generalized
-to other list types belongs there.
-*/
-
-function run_tests()
-{
-  document.getElementById('svg').pauseAnimations();
-
-  var d;
-  var seg;
-  var path = document.getElementById("path");
-  var list = path.pathSegList;
-
-  // See https://bugzilla.mozilla.org/show_bug.cgi?id=611138
-  // Here we are doing a replace with a segment (arc) that has more arguments
-  // than the total number of arguments in the entire path + 2 (the +2
-  // refering to the encoding of the segment types for the two segments).
-  path.setAttribute('d', 'M0,0 L100,100');
-  var arc = path.createSVGPathSegArcAbs(400, 0, 200, 200, 0, 1, 1);
-  list.replaceItem(arc, 1);
-
-  is(list.numberOfItems, 2, 'The length of the list should be the same after a valid replaceItem() call');
-  is(list.getItem(1), arc, 'The inserted object should now be the object at the index being replaced');
-
-  // Test whether and when we normalize the 'd' attribute:
-
-  d = "  \n  M  10  ,  10  \n  L  20  10  \n  ";
-  path.setAttribute('d', d);
-  is(path.getAttribute('d'), d, "Values passed to setAttribute for the 'd' attribute should not be normalised");
-  list.getItem(1).y = 20;
-  isnot(path.getAttribute('d'), d, "The 'd' attribute should change when its underlying DOM list changes");
-
-  // Test that path manipulations still work even when the path is invalid due
-  // to it not starting with a moveto segment:
-
-  path.setAttribute('d', 'M0,0 L1,1');
-  is(list.numberOfItems, 2, 'setAttribute should result in two items')
-
-  seg = list.getItem(1);
-  list.removeItem(0);
-  ok(list.numberOfItems == 1 && list.getItem(0) == seg,
-    'If removeItem removes the initial moveto leaving an invalid path, the other items should still be left in the list')
-
-  seg = path.createSVGPathSegLinetoAbs(1, 2);
-  list.appendItem(seg);
-  ok(list.numberOfItems == 2 && list.getItem(1) == seg,
-    'appendItem should be able to append to an invalid path');
-
-  seg = path.createSVGPathSegLinetoAbs(1, 2);
-  list.replaceItem(seg, 1);
-  ok(list.numberOfItems == 2 && list.getItem(1) == seg,
-    'replaceItem should be able to replace items in an invalid path');
-
-  seg = path.createSVGPathSegLinetoAbs(1, 2);
-  list.insertItemBefore(seg, 1);
-  ok(list.numberOfItems == 3 && list.getItem(1) == seg,
-    'insertItemBefore should be able insert items into an invalid path');
-
-  seg = path.createSVGPathSegLinetoAbs(1, 2);
-  list.initialize(seg);
-  ok(list.numberOfItems == 1 && list.getItem(0) == seg,
-    'initialize should be able initialize an invalid path with a non-moveto item');
-
-  // Test mutation events
-
-  eventChecker = new MutationEventChecker;
-  d = 'M0,0 L12,34'
-  path.setAttribute('d', d);
-  eventChecker.watchAttr(path, "d");
-
-  // -- Actual changes
-  eventChecker.expect("modify modify modify");
-  list[0].x = 10;
-  list[0].y = 5;
-  path.setAttribute("d", "M20,5 L12,34");
-
-  // -- Redundant changes
-  eventChecker.expect("");
-  list[0].x = 20;
-  list[1].y = 34;
-  path.setAttribute("d", "M20,5 L12,34");
-
-  // -- Attribute removal
-  eventChecker.expect("remove");
-  path.removeAttribute("d");
-
-  // -- Non-existent attribute removal
-  eventChecker.expect("");
-  path.removeAttribute("d");
-  path.removeAttributeNS(null, "d");
-  eventChecker.finish();
-
-  SimpleTest.finish();
-}
-
-window.addEventListener("load", run_tests);
-
-]]>
-</script>
-</pre>
-</body>
-</html>
--- a/dom/svg/test/test_SVGxxxList.xhtml
+++ b/dom/svg/test/test_SVGxxxList.xhtml
@@ -218,71 +218,16 @@ var tests = [
          typeof(itemB.y) != 'undefined',
          'expecting y property');
 
       is(itemA.x, itemB.x, message);
       is(itemA.y, itemB.y, message);
     }
   },
   {
-    // SVGPathSegList test:
-    target_element_id: 'path',
-    attr_name: 'd',
-    prop_name: null, // SVGAnimatedPathData is an inherited interface!
-    bv_name: 'pathSegList',
-    av_name: 'animatedPathSegList',
-    el_type: 'SVGPathElement',
-    prop_type: null,
-    list_type: 'SVGPathSegList',
-    item_type: 'SVGPathSeg',
-    attr_val_3a: 'M 10,10 L 50,50 L 90,10',
-    attr_val_3b: 'M 10,50 L 50,10 L 90,50',
-    attr_val_4 : 'M 10,10 L 50,50 L 90,10 M 200,100',
-    attr_val_5a: 'M 10,10 L 50,50 L 90,10 L 130,50 L 170,10',
-    attr_val_5b: 'M 50,10 L 50,10 L 90,50 L 130,10 L 170,50',
-    attr_val_5b_firstItem_x3_constructor: function(constructor) {
-      var expected = constructor();
-      is(expected.pathSegTypeAsLetter, "M",
-         "test error -- expected constructor to generate a segment of type M");
-      expected.x = 150;
-      expected.y = 30;
-      return expected;
-    },
-    item_constructor: function() {
-      // XXX return different values each time
-      return document.getElementById('path').createSVGPathSegMovetoAbs(1, 1);
-    },
-    item_is: function(itemA, itemB, message) {
-      ok(typeof(itemA.pathSegTypeAsLetter) != 'undefined' &&
-         typeof(itemB.pathSegTypeAsLetter) != 'undefined',
-         'expecting pathSegTypeAsLetter property');
-
-      // First: are we dealing  with the same type of segment?
-      is(itemA.pathSegTypeAsLetter, itemB.pathSegTypeAsLetter, message);
-      if (itemA.pathSegTypeAsLetter != itemB.pathSegTypeAsLetter)
-        return;  // The rest of this function is nonsense if types don't match.
-
-      // Make sure property-counts match (so we can iterate across itemA's
-      // properties and not worry about itemB having extra properties that
-      // we might be skipping over).
-      is(keys(itemA).length, keys(itemB).length,
-        'expecting same property-count when comparing path segs of same type.');
-
-      // Compare the properties, skipping the constant properties inherited
-      // from 'SVGPathSeg', and skipping the pathSegTypeAsLetter field since we
-      // already checked that above.
-      for (var prop in itemA) {
-        if (!SVGPathSeg.hasOwnProperty(prop) &&
-            prop != 'pathSegTypeAsLetter') {
-          is(itemA[prop], itemB[prop], message);
-        }
-      }
-    }
-  },
-  {
     // SVGStringList test:
     target_element_id: 'g',
     attr_name: 'requiredFeatures', // requiredExtensions, systemLanguage, viewTarget
     prop_name: null, // SVGStringList attributes are not animatable
     bv_name: 'requiredFeatures',
     av_name: null,
     el_type: 'SVGGElement',
     prop_type: null,
@@ -1165,24 +1110,22 @@ function run_animation_timeline_tests()
        'The start of an animation should never affect the '+t.list_type+
        ' for '+t.bv_path+', or its list items.');
 
     ok(t.animVal.numberOfItems == 5 && t.animVal.getItem(4) != null,
        'The start of the animation should have changed the number of items '+
        'in the '+t.list_type+' for '+t.bv_path+' to 5.');
 
     // TODO
-    if (t.list_type != 'SVGPathSegList') {
     ok(t.animVal.getItem(3) === t.old_animVal_items[3],
        'When affected by SMIL animation, list items in the '+t.list_type+
        ' for '+t.bv_path+' that are at indexes that existed prior to the '+
        'start of the animation should be the exact same objects as the '+
        'objects that were at those indexes prior to the start of the '+
        'animation.');
-    }
 
     t.old_animVal_items = get_array_of_list_items(t.animVal);
 
     t.element.setAttribute(t.attr_name, t.attr_val_3a);
 
     ok(t.baseVal.numberOfItems == 3 &&
        t.baseVal.getItem(2) === t.old_baseVal_items[2],
        'Setting the underlying attribute should change the items in the '+
--- a/dom/svg/test/test_SVGxxxListIndexing.xhtml
+++ b/dom/svg/test/test_SVGxxxListIndexing.xhtml
@@ -43,23 +43,16 @@ var tests = [
                 { values: "1em 2em 3em 4em 5em", length: 5 } ] },
   { element: text,
     attribute: "rotate",
     listProperty: "rotate.baseVal",
     type: "SVGNumberList",
     subtests: [ { values: null, length: 3 },
                 { values: "10", length: 1 },
                 { values: "1 2 3 4 5", length: 5 } ] },
-  { element: path,
-    attribute: "d",
-    listProperty: "pathSegList",
-    type: "SVGPathSegList",
-    subtests: [ { values: null, length: 2 },
-                { values: "M50,50", length: 1 },
-                { values: "M0,0 h10 v20 h30 v40", length: 5 } ] },
   { element: poly,
     attribute: "points",
     listProperty: "animatedPoints",
     type: "SVGPointList",
     subtests: [ { values: null, length: 3 },
                 { values: "100,100", length: 1 },
                 { values: "0,0 10,10 20,0 30,10 40,0", length: 5 } ] },
   { element: g,
deleted file mode 100644
--- a/dom/svg/test/test_pathLength.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!doctype html>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=1024926
--->
-<head>
-  <meta charset="utf-8">
-  <title>Test path length changes when manipulated</title>
-  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1024926">Mozilla Bug 1024926</a>
-<p id="display"></p>
-<div id="content" style="display: none">
-  <svg width="100%" height="1" id="svg">
-    <path id="path_lines" d="M50,100l0,0l0,-50l100,0l86.3325,122.665z"></path>
-    <path id="path_straight_curve" d="M0,0 C100,0 150,0 200,0" />
-    <path id="path_straight_arc" d="M0,0 A100,0 0 0 0 200, 0" />
-  </svg>
-</div>
-<pre id="test">
-<script class="testbody" type="text/javascript">
-
-  SimpleTest.waitForExplicitFinish();
-
-  // Test a closed path with a series of lines.
-  var path = document.getElementById("path_lines");
-  is(path.getTotalLength(), 500, "Unexpected path length");
-
-  // Test a path that's been shortened via the DOM.
-  for (var i = 0; i < 2; i++) {
-      path.pathSegList.removeItem(path.pathSegList.numberOfItems - 1);
-  }
-  is(path.getTotalLength(), 150, "Unexpected path length");
-
-  // Test a path that's been shortened to be empty, via the DOM.
-  while (path.pathSegList.numberOfItems > 0) {
-      path.pathSegList.removeItem(0);
-  }
-  is(path.getTotalLength(), 0, "Unexpected path length");
-
-  // Test a path with a curve command ("C") that is really a straight line.
-  path = document.getElementById("path_straight_curve");
-  is(path.getTotalLength(), 200, "Unexpected path length, for straight line " +
-                                 "generated by 'C' command");
-
-  // Test a path with an arc command ("A") that is really a straight line.
-  path = document.getElementById("path_straight_arc");
-  is(path.getTotalLength(), 200, "Unexpected path length, for straight line " +
-                                 "generated by 'A' command");
-
-  SimpleTest.finish();
-
-</script>
-</pre>
-</body>
-</html>
deleted file mode 100644
--- a/dom/svg/test/test_pathSeg.xhtml
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml">
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=459953
--->
-<head>
-  <title>Test for Bug 459953</title>
-  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=459953">Mozilla Bug 459953</a>
-<p id="display"></p>
-
-<pre id="test">
-<script class="testbody" type="application/javascript">
-<![CDATA[
-SimpleTest.waitForExplicitFinish();
-
-function runTest()
-{
-  var svgns="http://www.w3.org/2000/svg";
-
-  var path1=document.createElementNS(svgns, "path");
-
-  var sseg;
-  
-  var a=10,s=20,d=30,z=9; //Arbitrary numbers for arguments
-  
-  var whatever=true; //This is often so, but here it does not matter
-  
-  sseg=path1.createSVGPathSegMovetoAbs(a, s);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegMovetoRel(a, s);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegLinetoAbs(a, s);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegLinetoRel(a, s);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegLinetoVerticalAbs(a);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegLinetoVerticalRel(a);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegLinetoHorizontalAbs(a);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegLinetoHorizontalRel(a);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegCurvetoCubicAbs(a, s, d, z, a, s);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegCurvetoCubicRel(a, s, d, z, a, s);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegCurvetoCubicSmoothAbs(a, s, d, z);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegCurvetoCubicSmoothRel(a, s, d, z);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegCurvetoQuadraticAbs(a, s, d, z);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegCurvetoQuadraticRel(a, s, d, z);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegCurvetoQuadraticSmoothAbs(a, s);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegCurvetoQuadraticSmoothRel(a, s);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegArcAbs(a, s, d, z, a, whatever, whatever);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegArcRel(a, s, d, z, a, whatever, whatever);
-  path1.pathSegList.appendItem(sseg);
-  sseg=path1.createSVGPathSegClosePath();
-  path1.pathSegList.appendItem(sseg);
-  
-  for(var i=0;i<path1.pathSegList.numberOfItems;i++){
-    var seg=path1.pathSegList.getItem(i);
-    switch(seg.pathSegType){
-    case seg.PATHSEG_MOVETO_ABS:
-      is(seg.pathSegTypeAsLetter, "M", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_MOVETO_REL:
-      is(seg.pathSegTypeAsLetter, "m", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_CLOSEPATH:
-      is(seg.pathSegTypeAsLetter, "z", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_LINETO_ABS:
-      is(seg.pathSegTypeAsLetter, "L", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_LINETO_REL:
-      is(seg.pathSegTypeAsLetter, "l", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_LINETO_VERTICAL_ABS:
-      is(seg.pathSegTypeAsLetter, "V", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_LINETO_VERTICAL_REL:
-      is(seg.pathSegTypeAsLetter, "v", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_LINETO_HORIZONTAL_ABS:
-      is(seg.pathSegTypeAsLetter, "H", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_LINETO_HORIZONTAL_REL:
-      is(seg.pathSegTypeAsLetter, "h", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_CURVETO_CUBIC_ABS:
-      is(seg.pathSegTypeAsLetter, "C", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_CURVETO_CUBIC_REL:
-      is(seg.pathSegTypeAsLetter, "c", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:
-      is(seg.pathSegTypeAsLetter, "S", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:
-      is(seg.pathSegTypeAsLetter, "s", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_CURVETO_QUADRATIC_ABS:
-      is(seg.pathSegTypeAsLetter, "Q", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_CURVETO_QUADRATIC_REL:
-      is(seg.pathSegTypeAsLetter, "q", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:
-      is(seg.pathSegTypeAsLetter, "T", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:
-      is(seg.pathSegTypeAsLetter, "t", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_ARC_ABS:
-      is(seg.pathSegTypeAsLetter, "A", "wrong path segment letter");      
-      break;
-    case seg.PATHSEG_ARC_REL:
-      is(seg.pathSegTypeAsLetter, "a", "wrong path segment letter");      
-      break;
-      
-    }
-  }
-  SimpleTest.finish();
-}
-
-window.addEventListener("load", runTest);
-]]>
-</script>
-</pre>
-</body>
-</html>
--- a/dom/tests/mochitest/general/test_interfaces.js
+++ b/dom/tests/mochitest/general/test_interfaces.js
@@ -1022,58 +1022,16 @@ var interfaceNamesInGlobalScope =
     {name: "SVGMPathElement", insecureContext: true},
 // IMPORTANT: Do not change this list without review from a DOM peer!
     {name: "SVGNumber", insecureContext: true},
 // IMPORTANT: Do not change this list without review from a DOM peer!
     {name: "SVGNumberList", insecureContext: true},
 // IMPORTANT: Do not change this list without review from a DOM peer!
     {name: "SVGPathElement", insecureContext: true},
 // IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSeg", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegArcAbs", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegArcRel", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegClosePath", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegCurvetoCubicAbs", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegCurvetoCubicRel", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegCurvetoCubicSmoothAbs", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegCurvetoCubicSmoothRel", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegCurvetoQuadraticAbs", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegCurvetoQuadraticRel", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegCurvetoQuadraticSmoothAbs", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegCurvetoQuadraticSmoothRel", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegLinetoAbs", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegLinetoHorizontalAbs", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegLinetoHorizontalRel", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegLinetoRel", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegLinetoVerticalAbs", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegLinetoVerticalRel", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegList", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegMovetoAbs", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
-    {name: "SVGPathSegMovetoRel", insecureContext: true},
-// IMPORTANT: Do not change this list without review from a DOM peer!
     {name: "SVGPatternElement", insecureContext: true},
 // IMPORTANT: Do not change this list without review from a DOM peer!
     {name: "SVGPoint", insecureContext: true},
 // IMPORTANT: Do not change this list without review from a DOM peer!
     {name: "SVGPointList", insecureContext: true},
 // IMPORTANT: Do not change this list without review from a DOM peer!
     {name: "SVGPolygonElement", insecureContext: true},
 // IMPORTANT: Do not change this list without review from a DOM peer!
deleted file mode 100644
--- a/layout/reftests/svg/path-03.svg
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
-     Any copyright is dedicated to the Public Domain.
-     http://creativecommons.org/publicdomain/zero/1.0/
--->
-<svg xmlns="http://www.w3.org/2000/svg">
-
-  <title>Testcase for invalid path</title>
-
-  <!-- From https://bugzilla.mozilla.org/show_bug.cgi?id=601699 -->
-
-  <marker id="marker" markerWidth="10" markerHeight="10">
-    <circle cx="5" cy="5" r="5"/>
-  </marker>
-
-  <rect width="100%" height="100%" fill="lime"/>
-
-  <path id="path" fill="red" marker-mid="url(#marker)"/>
-
-  <script><![CDATA[
-
-// Parser will throw out path without an initial moveto command, so we use
-// script to inject one and see what happens.
-
-var path = document.getElementById("path");
-var curve = path.createSVGPathSegCurvetoCubicAbs(0, 400, 400, 400, 400, 0);
-path.pathSegList.appendItem(curve);
-
-  ]]></script>
-</svg>
--- a/layout/reftests/svg/reftest.list
+++ b/layout/reftests/svg/reftest.list
@@ -335,17 +335,16 @@ fuzzy-if(skiaContent,7,175) == outline.h
 == paint-on-maskLayer-1b.html paint-on-maskLayer-1-ref.html
 == paint-on-maskLayer-1c.html paint-on-maskLayer-1-ref.html
 pref(svg.paint-order.enabled,true) == paint-order-01.svg paint-order-01-ref.svg
 pref(svg.paint-order.enabled,true) fuzzy-if(webrender,1-1,112-112) == paint-order-02.svg paint-order-02-ref.svg
 pref(svg.paint-order.enabled,true) == paint-order-03.svg paint-order-03-ref.svg
 
 #fuzzy(23,60) fails-if(d2d) == path-01.svg path-01-ref.svg
 == path-02.svg pass.svg
-== path-03.svg pass.svg
 == path-04.svg pass.svg
 == path-05.svg pass.svg
 fuzzy-if(skiaContent,1,400) == path-06.svg path-06-ref.svg
 == path-07.svg path-07-ref.svg
 == path-08.svg pass.svg
 
 == pathLength-01.svg pass.svg
 == pathLength-02.svg pass.svg
deleted file mode 100644
--- a/layout/svg/crashtests/327709-1.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-<!-- From https://bugzilla.mozilla.org/show_bug.cgi?id=327709 -->
-<!-- Just checking for absence of assertion, nothing more -->
-<svg xmlns="http://www.w3.org/2000/svg">
-
-<script>
-function init()
-{
-  var apsl = document.getElementById("n126").animatedPathSegList;
-  apsl.appendItem(apsl.__proto__);
-}
-window.addEventListener("load", init, false);
-</script>
-
-<path id="n126" d="M 270 60 L 320 60 L 320 110 Z"/>
-
-</svg>
-
--- a/layout/svg/crashtests/crashtests.list
+++ b/layout/svg/crashtests/crashtests.list
@@ -10,17 +10,16 @@ load 313737-1.xml
 load 314244-1.xul
 load 322185-1.svg
 load 322215-1.svg
 load 323704-1.svg
 load 325427-1.svg
 load 326495-1.svg
 load 326974-1.svg
 load 327706-1.svg
-load 327709-1.svg
 load 327711-1.svg
 load 328137-1.svg
 load 329848-1.svg
 load 337408-1.xul
 load 338301-1.xhtml
 load 338312-1.xhtml
 load 340083-1.svg
 load 340945-1.svg
--- a/testing/web-platform/meta/svg/historical.html.ini
+++ b/testing/web-platform/meta/svg/historical.html.ini
@@ -1,12 +1,9 @@
 [historical.html]
-  [SVGPathSeg interface must be removed]
-    expected: FAIL
-
   [SVGUnitTypes mixin interface must not be exposed]
     expected: FAIL
 
   [SVGZoomAndPan mixin interface must not be exposed]
     expected: FAIL
 
   [SVGGraphicsElement.prototype.getTransformToElement must be removed]
     expected: FAIL