tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

historical.html (3100B)


      1 <!DOCTYPE html>
      2 <title>Historical SVG features must be removed</title>
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <script>
      6 var removedInterfaces = [
      7  "SVGAltGlyphElement",
      8  "SVGAltGlyphDefElement",
      9  "SVGAltGlyphItemElement",
     10  "SVGAnimatedPathData",
     11  "SVGColor",
     12  "SVGColorProfileElement",
     13  "SVGColorProfileRule",
     14  "SVGCursorElement",
     15  "SVGDocument",
     16  "SVGElementInstanceList",
     17  "SVGExternalResourcesRequired",
     18  "SVGFontElement",
     19  "SVGFontFaceElement",
     20  "SVGFontFaceSrcElement",
     21  "SVGFontFaceUriElement",
     22  "SVGFontFaceFormatElement",
     23  "SVGGlyphElement",
     24  "SVGGlyphRefElement",
     25  "SVGHKernElement",
     26  "SVGICCColor",
     27  "SVGLangSpace",
     28  "SVGLocatable",
     29  "SVGMissingGlyphElement",
     30  "SVGTransformable",
     31  "SVGTRefElement",
     32  "SVGPaint",
     33  "SVGPathSeg",
     34  "SVGStylable",
     35  "SVGVKernElement",
     36  "SVGViewSpec",
     37  "SVGZoomEvent"
     38 ]
     39 for (var name of removedInterfaces) {
     40 test(function() {
     41   assert_false(name in window)
     42 }, name + " interface must be removed")
     43 }
     44 
     45 var mixinInterfaces = [
     46  "GetSVGDocument",
     47  "SVGAnimatedPoints",
     48  "SVGElementInstance",
     49  "SVGFilterPrimitiveStandardAttributes",
     50  "SVGFitToViewBox",
     51  "SVGTests",
     52  "SVGURIReference",
     53  "SVGZoomAndPan"
     54 ]
     55 for (var name of mixinInterfaces) {
     56  test(function() {
     57    assert_false(name in window)
     58  }, name + " mixin interface must not be exposed")
     59 }
     60 
     61 var removedMembers = {
     62  "SVGElement": [
     63    "getPresentationAttribute",
     64    "xmlbase",
     65    "xmllang",
     66    "xmlspace"
     67  ],
     68  "SVGAElement": [
     69    "text"
     70  ],
     71  "SVGGraphicsElement": [
     72    "farthestViewportElement",
     73    "getTransformToElement",
     74    "hasExtension",
     75    "nearestViewportElement",
     76    "requiredFeatures"
     77  ],
     78  "SVGSVGElement": [
     79    "currentView",
     80    "pixelUnitToMillimeterX",
     81    "pixelUnitToMillimeterY",
     82    "screenPixelToMillimeterX",
     83    "screenPixelToMillimeterY",
     84    "useCurrentView",
     85    "viewport"
     86  ],
     87  "SVGViewElement": [
     88    "viewTarget"
     89  ]
     90 }
     91 for (var name in removedMembers) {
     92  for (var member of removedMembers[name]) {
     93    test(function() {
     94      assert_false(member in window[name].prototype)
     95    }, name + ".prototype." + member + " must be removed")
     96  }
     97 }
     98 
     99 var movedPathMembers = [
    100  "getPointAtLength",
    101  "getTotalLength",
    102  "pathLength"
    103 ]
    104 for (var member of movedPathMembers) {
    105  test(function() {
    106    assert_false(SVGPathElement.prototype.hasOwnProperty(member))
    107    assert_true(SVGGeometryElement.prototype.hasOwnProperty(member))
    108  }, "SVGPathElement.prototype." + member + " must be moved to SVGGeometryElement.prototype")
    109 }
    110 
    111 var implementedSVGUnitTypes =  [
    112  "SVGClipPathElement",
    113  "SVGFilterElement",
    114  "SVGGradientElement",
    115  "SVGMaskElement",
    116  "SVGPatternElement"
    117 ]
    118 for (var name of implementedSVGUnitTypes) {
    119 test(function() {
    120   assert_true(name in window);
    121   var interfaceObject = window[name];
    122   assert_false("SVG_UNIT_TYPE_UNKNOWN" in interfaceObject);
    123   assert_false("SVG_UNIT_TYPE_USERSPACEONUSE" in interfaceObject);
    124   assert_false("SVG_UNIT_TYPE_OBJECTBOUNDINGBOX" in interfaceObject);
    125 }, name + " must not implement SVGUnitTypes")
    126 }
    127 </script>