Merge mozilla-central to autoland. a=merge CLOSED TREE

This commit is contained in:
Brindusan Cristian 2019-07-14 00:58:01 +03:00
commit 9ca6d369e2
25 changed files with 401 additions and 73 deletions

View File

@ -235,8 +235,9 @@ skip-if = os == 'linux' # focusEditableField times out consistently on linux.
[browser_rules_multiple_properties_02.js]
[browser_rules_non_ascii.js]
[browser_rules_original-source-link.js]
skip-if = ccov && os == "win" # Bug 1432176
skip-if = ccov #Bug 1432176
[browser_rules_original-source-link2.js]
skip-if = ccov #Bug 1432176
[browser_rules_preview-tooltips-sizes.js]
[browser_rules_pseudo-element_01.js]
[browser_rules_pseudo-element_02.js]

View File

@ -5947,13 +5947,10 @@ exports.CSS_PROPERTIES = {
"initial",
"mathematical",
"middle",
"no-change",
"reset-size",
"revert",
"text-after-edge",
"text-before-edge",
"unset",
"use-script"
"unset"
]
},
"empty-cells": {

View File

@ -295,13 +295,11 @@ var gFromToBundles = [
new AnimTestcaseFromTo("table-row", "none"),
]),
new TestcaseBundle(gPropList.dominant_baseline, [
new AnimTestcaseFromTo("use-script", "no-change"),
new AnimTestcaseFromTo("reset-size", "ideographic"),
new AnimTestcaseFromTo("alphabetic", "hanging"),
new AnimTestcaseFromTo("mathematical", "central"),
new AnimTestcaseFromTo("middle", "text-after-edge"),
new AnimTestcaseFromTo("text-before-edge", "auto"),
new AnimTestcaseFromTo("use-script", "inherit", { toComp: "auto" }),
new AnimTestcaseFromTo("alphabetic", "inherit", { toComp: "auto" }),
]),
// NOTE: Mozilla doesn't currently support "enable-background", but I'm
// testing it here in case we ever add support for it, because it's

View File

@ -9924,13 +9924,6 @@ static StyleVerticalAlignKeyword ConvertSVGDominantBaselineToVerticalAlign(
case NS_STYLE_DOMINANT_BASELINE_AUTO:
case NS_STYLE_DOMINANT_BASELINE_ALPHABETIC:
return StyleVerticalAlignKeyword::Baseline;
case NS_STYLE_DOMINANT_BASELINE_USE_SCRIPT:
case NS_STYLE_DOMINANT_BASELINE_NO_CHANGE:
case NS_STYLE_DOMINANT_BASELINE_RESET_SIZE:
// These three should not simply map to 'baseline', but we don't
// support the complex baseline model that SVG 1.1 has and which
// css3-linebox now defines.
return StyleVerticalAlignKeyword::Baseline;
default:
MOZ_ASSERT_UNREACHABLE("unexpected aDominantBaseline value");
return StyleVerticalAlignKeyword::Baseline;
@ -12358,17 +12351,17 @@ void ReflowInput::DisplayInitFrameTypeExit(nsIFrame* aFrame,
// End Display Reflow
// Validation of SideIsVertical.
#define CASE(side, result) \
static_assert(SideIsVertical(side) == result, "SideIsVertical is wrong")
# define CASE(side, result) \
static_assert(SideIsVertical(side) == result, "SideIsVertical is wrong")
CASE(eSideTop, false);
CASE(eSideRight, true);
CASE(eSideBottom, false);
CASE(eSideLeft, true);
#undef CASE
# undef CASE
// Validation of HalfCornerIsX.
#define CASE(corner, result) \
static_assert(HalfCornerIsX(corner) == result, "HalfCornerIsX is wrong")
# define CASE(corner, result) \
static_assert(HalfCornerIsX(corner) == result, "HalfCornerIsX is wrong")
CASE(eCornerTopLeftX, true);
CASE(eCornerTopLeftY, false);
CASE(eCornerTopRightX, true);
@ -12377,13 +12370,13 @@ CASE(eCornerBottomRightX, true);
CASE(eCornerBottomRightY, false);
CASE(eCornerBottomLeftX, true);
CASE(eCornerBottomLeftY, false);
#undef CASE
# undef CASE
// Validation of HalfToFullCorner.
#define CASE(corner, result) \
static_assert(HalfToFullCorner(corner) == result, \
"HalfToFullCorner is " \
"wrong")
# define CASE(corner, result) \
static_assert(HalfToFullCorner(corner) == result, \
"HalfToFullCorner is " \
"wrong")
CASE(eCornerTopLeftX, eCornerTopLeft);
CASE(eCornerTopLeftY, eCornerTopLeft);
CASE(eCornerTopRightX, eCornerTopRight);
@ -12392,12 +12385,12 @@ CASE(eCornerBottomRightX, eCornerBottomRight);
CASE(eCornerBottomRightY, eCornerBottomRight);
CASE(eCornerBottomLeftX, eCornerBottomLeft);
CASE(eCornerBottomLeftY, eCornerBottomLeft);
#undef CASE
# undef CASE
// Validation of FullToHalfCorner.
#define CASE(corner, vert, result) \
static_assert(FullToHalfCorner(corner, vert) == result, \
"FullToHalfCorner is wrong")
# define CASE(corner, vert, result) \
static_assert(FullToHalfCorner(corner, vert) == result, \
"FullToHalfCorner is wrong")
CASE(eCornerTopLeft, false, eCornerTopLeftX);
CASE(eCornerTopLeft, true, eCornerTopLeftY);
CASE(eCornerTopRight, false, eCornerTopRightX);
@ -12406,12 +12399,12 @@ CASE(eCornerBottomRight, false, eCornerBottomRightX);
CASE(eCornerBottomRight, true, eCornerBottomRightY);
CASE(eCornerBottomLeft, false, eCornerBottomLeftX);
CASE(eCornerBottomLeft, true, eCornerBottomLeftY);
#undef CASE
# undef CASE
// Validation of SideToFullCorner.
#define CASE(side, second, result) \
static_assert(SideToFullCorner(side, second) == result, \
"SideToFullCorner is wrong")
# define CASE(side, second, result) \
static_assert(SideToFullCorner(side, second) == result, \
"SideToFullCorner is wrong")
CASE(eSideTop, false, eCornerTopLeft);
CASE(eSideTop, true, eCornerTopRight);
@ -12423,12 +12416,12 @@ CASE(eSideBottom, true, eCornerBottomLeft);
CASE(eSideLeft, false, eCornerBottomLeft);
CASE(eSideLeft, true, eCornerTopLeft);
#undef CASE
# undef CASE
// Validation of SideToHalfCorner.
#define CASE(side, second, parallel, result) \
static_assert(SideToHalfCorner(side, second, parallel) == result, \
"SideToHalfCorner is wrong")
# define CASE(side, second, parallel, result) \
static_assert(SideToHalfCorner(side, second, parallel) == result, \
"SideToHalfCorner is wrong")
CASE(eSideTop, false, true, eCornerTopLeftX);
CASE(eSideTop, false, false, eCornerTopLeftY);
CASE(eSideTop, true, true, eCornerTopRightX);
@ -12448,6 +12441,6 @@ CASE(eSideLeft, false, false, eCornerBottomLeftX);
CASE(eSideLeft, false, true, eCornerBottomLeftY);
CASE(eSideLeft, true, false, eCornerTopLeftX);
CASE(eSideLeft, true, true, eCornerTopLeftY);
#undef CASE
# undef CASE
#endif

View File

@ -666,17 +666,14 @@ enum class StyleWhiteSpace : uint8_t {
// dominant-baseline
#define NS_STYLE_DOMINANT_BASELINE_AUTO 0
#define NS_STYLE_DOMINANT_BASELINE_USE_SCRIPT 1
#define NS_STYLE_DOMINANT_BASELINE_NO_CHANGE 2
#define NS_STYLE_DOMINANT_BASELINE_RESET_SIZE 3
#define NS_STYLE_DOMINANT_BASELINE_IDEOGRAPHIC 4
#define NS_STYLE_DOMINANT_BASELINE_ALPHABETIC 5
#define NS_STYLE_DOMINANT_BASELINE_HANGING 6
#define NS_STYLE_DOMINANT_BASELINE_MATHEMATICAL 7
#define NS_STYLE_DOMINANT_BASELINE_CENTRAL 8
#define NS_STYLE_DOMINANT_BASELINE_MIDDLE 9
#define NS_STYLE_DOMINANT_BASELINE_TEXT_AFTER_EDGE 10
#define NS_STYLE_DOMINANT_BASELINE_TEXT_BEFORE_EDGE 11
#define NS_STYLE_DOMINANT_BASELINE_IDEOGRAPHIC 1
#define NS_STYLE_DOMINANT_BASELINE_ALPHABETIC 2
#define NS_STYLE_DOMINANT_BASELINE_HANGING 3
#define NS_STYLE_DOMINANT_BASELINE_MATHEMATICAL 4
#define NS_STYLE_DOMINANT_BASELINE_CENTRAL 5
#define NS_STYLE_DOMINANT_BASELINE_MIDDLE 6
#define NS_STYLE_DOMINANT_BASELINE_TEXT_AFTER_EDGE 7
#define NS_STYLE_DOMINANT_BASELINE_TEXT_BEFORE_EDGE 8
// image-rendering
#define NS_STYLE_IMAGE_RENDERING_AUTO 0

View File

@ -8156,9 +8156,6 @@ var gCSSProperties = {
type: CSS_TYPE_LONGHAND,
initial_values: ["auto"],
other_values: [
"use-script",
"no-change",
"reset-size",
"ideographic",
"alphabetic",
"hanging",

View File

@ -285,14 +285,6 @@ static nscoord GetBaselinePosition(nsTextFrame* aFrame, gfxTextRun* aTextRun,
return writingMode.IsVerticalRL() ? metrics.mAscent + metrics.mDescent
: 0;
case NS_STYLE_DOMINANT_BASELINE_USE_SCRIPT:
case NS_STYLE_DOMINANT_BASELINE_NO_CHANGE:
case NS_STYLE_DOMINANT_BASELINE_RESET_SIZE:
// These three should not simply map to 'baseline', but we don't
// support the complex baseline model that SVG 1.1 has and which
// css3-linebox now defines.
// (fall through)
case NS_STYLE_DOMINANT_BASELINE_AUTO:
case NS_STYLE_DOMINANT_BASELINE_ALPHABETIC:
return writingMode.IsVerticalRL()

View File

@ -8,8 +8,8 @@
${helpers.single_keyword(
"dominant-baseline",
"""auto use-script no-change reset-size ideographic alphabetic hanging
mathematical central middle text-after-edge text-before-edge""",
"""auto ideographic alphabetic hanging mathematical central middle
text-after-edge text-before-edge""",
products="gecko",
animation_value_type="discrete",
spec="https://www.w3.org/TR/SVG11/text.html#DominantBaselineProperty",

View File

@ -69,20 +69,28 @@ prefs: [dom.security.featurePolicy.enabled:true]
if os == "android": FAIL
[Window interface: window must have own property "window"]
expected:
if release_or_beta: PASS
FAIL
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1510437
expected: FAIL
[Window interface: window must have own property "document"]
expected:
if release_or_beta: PASS
FAIL
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1510437
expected: FAIL
[Window interface: window must have own property "location"]
expected:
if release_or_beta: PASS
FAIL
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1510437
expected: FAIL
[Window interface: window must have own property "top"]
expected:
if release_or_beta: PASS
FAIL
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1510437
expected: FAIL
[Window interface: attribute onformdata]
expected: FAIL

View File

@ -110,3 +110,223 @@
[AudioContext interface: operation resume()]
expected: FAIL
[AudioWorkletNode interface: worklet_node must inherit property "port" with the proper type]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "disconnect(AudioParam, unsigned long)" with the proper type]
expected:
if release_or_beta: FAIL
[Stringification of context.audioWorklet]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "numberOfOutputs" with the proper type]
expected:
if release_or_beta: FAIL
[AudioWorkletNode interface: attribute onprocessorerror]
expected:
if release_or_beta: FAIL
[idl_test setup]
expected:
if release_or_beta: FAIL
[AudioWorkletNode interface object name]
expected:
if release_or_beta: FAIL
[AudioWorkletNode interface: existence and properties of interface object]
expected:
if release_or_beta: FAIL
[Stringification of worklet_node]
expected:
if release_or_beta: FAIL
[AudioNode interface: calling disconnect(unsigned long) on worklet_node with too few arguments must throw TypeError]
expected:
if release_or_beta: FAIL
[AudioParamMap interface: existence and properties of interface object]
expected:
if release_or_beta: FAIL
[AudioWorklet interface object name]
expected:
if release_or_beta: FAIL
[AudioWorklet interface: existence and properties of interface prototype object's "constructor" property]
expected:
if release_or_beta: FAIL
[AudioNode interface: calling disconnect(AudioNode) on worklet_node with too few arguments must throw TypeError]
expected:
if release_or_beta: FAIL
[AudioNode interface: calling connect(AudioParam, unsigned long) on worklet_node with too few arguments must throw TypeError]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "connect(AudioNode, unsigned long, unsigned long)" with the proper type]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "disconnect(AudioNode)" with the proper type]
expected:
if release_or_beta: FAIL
[AudioParamMap interface object length]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "disconnect()" with the proper type]
expected:
if release_or_beta: FAIL
[BaseAudioContext interface: attribute audioWorklet]
expected:
if release_or_beta: FAIL
[AudioWorkletNode interface: existence and properties of interface prototype object]
expected:
if release_or_beta: FAIL
[AudioParamMap interface: existence and properties of interface prototype object]
expected:
if release_or_beta: FAIL
[BaseAudioContext interface: context must inherit property "audioWorklet" with the proper type]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "disconnect(unsigned long)" with the proper type]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "disconnect(AudioParam)" with the proper type]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "channelCount" with the proper type]
expected:
if release_or_beta: FAIL
[AudioWorkletNode interface: attribute port]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "connect(AudioParam, unsigned long)" with the proper type]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "channelInterpretation" with the proper type]
expected:
if release_or_beta: FAIL
[AudioWorkletNode must be primary interface of worklet_node]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "context" with the proper type]
expected:
if release_or_beta: FAIL
[AudioWorkletNode interface: existence and properties of interface prototype object's @@unscopables property]
expected:
if release_or_beta: FAIL
[AudioParamMap interface object name]
expected:
if release_or_beta: FAIL
[AudioWorkletNode interface: worklet_node must inherit property "parameters" with the proper type]
expected:
if release_or_beta: FAIL
[AudioWorklet interface: existence and properties of interface object]
expected:
if release_or_beta: FAIL
[AudioNode interface: calling connect(AudioNode, unsigned long, unsigned long) on worklet_node with too few arguments must throw TypeError]
expected:
if release_or_beta: FAIL
[AudioWorkletNode interface: attribute parameters]
expected:
if release_or_beta: FAIL
[AudioWorklet must be primary interface of context.audioWorklet]
expected:
if release_or_beta: FAIL
[AudioWorklet interface: existence and properties of interface prototype object's @@unscopables property]
expected:
if release_or_beta: FAIL
[BaseAudioContext interface: new OfflineAudioContext(1, 1, sample_rate) must inherit property "audioWorklet" with the proper type]
expected:
if release_or_beta: FAIL
[AudioNode interface: calling disconnect(AudioParam, unsigned long) on worklet_node with too few arguments must throw TypeError]
expected:
if release_or_beta: FAIL
[AudioParamMap interface: existence and properties of interface prototype object's "constructor" property]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type]
expected:
if release_or_beta: FAIL
[AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on worklet_node with too few arguments must throw TypeError]
expected:
if release_or_beta: FAIL
[AudioWorklet interface object length]
expected:
if release_or_beta: FAIL
[AudioNode interface: calling disconnect(AudioNode, unsigned long) on worklet_node with too few arguments must throw TypeError]
expected:
if release_or_beta: FAIL
[AudioWorkletNode interface object length]
expected:
if release_or_beta: FAIL
[AudioParamMap interface: existence and properties of interface prototype object's @@unscopables property]
expected:
if release_or_beta: FAIL
[AudioWorkletNode interface: worklet_node must inherit property "onprocessorerror" with the proper type]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "channelCountMode" with the proper type]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "numberOfInputs" with the proper type]
expected:
if release_or_beta: FAIL
[AudioNode interface: calling disconnect(AudioParam) on worklet_node with too few arguments must throw TypeError]
expected:
if release_or_beta: FAIL
[AudioWorklet interface: existence and properties of interface prototype object]
expected:
if release_or_beta: FAIL
[AudioWorkletNode interface: existence and properties of interface prototype object's "constructor" property]
expected:
if release_or_beta: FAIL
[AudioNode interface: worklet_node must inherit property "disconnect(AudioNode, unsigned long)" with the proper type]
expected:
if release_or_beta: FAIL

View File

@ -1,4 +1,6 @@
[active-processing.https.html]
expected:
if release_or_beta: ERROR
[X Number of channels in input[-1:\]: Expected 1 for all values but found 1 unexpected values: \n\tIndex\tActual\n\t[0\]\t0]
expected: FAIL

View File

@ -0,0 +1,5 @@
[audioworklet-addmodule-resolution.https.html]
[\n Test the invocation order of AudioWorklet.addModule() and BaseAudioContext\n ]
expected:
if release_or_beta: FAIL

View File

@ -1,5 +1,6 @@
[audioworklet-messageport.https.html]
expected: ERROR
expected:
if not release_or_beta: ERROR
[\n Test MessagePort in AudioWorkletNode and AudioWorkletProcessor\n ]
expected: FAIL

View File

@ -0,0 +1,5 @@
[audioworklet-postmessage-sharedarraybuffer.https.html]
[\n Test passing SharedArrayBuffer to an AudioWorklet\n ]
expected:
if release_or_beta: FAIL

View File

@ -1,5 +1,6 @@
[audioworkletglobalscope-timing-info.https.html]
expected: ERROR
expected:
if not release_or_beta: ERROR
[\n Test currentTime and currentFrame in AudioWorkletGlobalScope\n ]
expected: FAIL

View File

@ -0,0 +1,11 @@
[audioworkletnode-construction.https.html]
expected:
if release_or_beta: ERROR
[X Creating a node before loading a module should throw. threw "ReferenceError" instead of InvalidStateError.]
expected:
if release_or_beta: FAIL
[< [construction-before-module-loading\] 1 out of 1 assertions were failed.]
expected:
if release_or_beta: FAIL

View File

@ -1,5 +1,6 @@
[audioworkletnode-onerror.https.html]
expected: TIMEOUT
expected:
if not release_or_beta: TIMEOUT
[\n Test onprocessorerror handler in AudioWorkletNode\n ]
expected: FAIL

View File

@ -1,5 +1,7 @@
[audioworkletnode-output-channel-count.https.html]
expected: ERROR
expected:
if release_or_beta: OK
ERROR
[\n Test the construction of AudioWorkletNode with real-time context\n ]
expected:
if release_or_beta: FAIL

View File

@ -1,4 +1,6 @@
[simple-input-output.https.html]
expected:
if release_or_beta: ERROR
[# AUDIT TASK RUNNER FINISHED: 1 out of 2 tasks were failed.]
expected: FAIL

View File

@ -1,5 +1,6 @@
[cors-check.https.html]
expected: ERROR
expected:
if not release_or_beta: ERROR
[\n Test if MediaElementAudioSourceNode works for cross-origin redirects with\n "cors" request mode.\n ]
expected: FAIL

View File

@ -2,7 +2,9 @@
disabled:
if (os == "android") and e10s: bug 1550895 (frequently fails on geckoview)
bug: AudioWorkletNode::GetPort is not implemented
expected: ERROR
expected:
if release_or_beta: OK
ERROR
[\n Test if MediaElementAudioSourceNode works for cross-origin redirects with\n "no-cors" request mode.\n ]
expected:
if release_or_beta: FAIL

View File

@ -49,3 +49,19 @@
[Importing a same-origin script with the default WorkletOptions should send the credentials]
expected: FAIL
[Importing a remote-origin script with credentials=same-origin should not send the credentials]
expected:
if release_or_beta: FAIL
[Importing a remote-origin script with the default WorkletOptions should not send the credentials]
expected:
if release_or_beta: FAIL
[Importing a remote-origin script with credentials=include should send the credentials]
expected:
if release_or_beta: FAIL
[Importing a remote-origin script with credentials=omit should not send the credentials]
expected:
if release_or_beta: FAIL

View File

@ -57,3 +57,55 @@
expected:
if release_or_beta: FAIL
[A remote-origin worklet should not be blocked because the script-src directive specifying the origin allows it.]
expected:
if release_or_beta: FAIL
[A remote-origin worklet should not be blocked by the worker-src directive because worklets obey the script-src directive.]
expected:
if release_or_beta: FAIL
[A remote-origin worklet importing a remote-origin script should be blocked by the script-src 'self' directive.]
expected:
if release_or_beta: FAIL
[A remote-origin-redirected worklet should not be blocked because the script-src * directive allows it.]
expected:
if release_or_beta: FAIL
[A same-origin worklet importing an insecure-origin-redirected script should be blocked because of mixed contents.]
expected:
if release_or_beta: FAIL
[An insecure-origin-redirected worklet should be blocked because of mixed contents.]
expected:
if release_or_beta: FAIL
[A same-origin worklet importing a remote-origin script should be blocked by the script-src 'self' directive.]
expected:
if release_or_beta: FAIL
[A same-origin worklet importing a remote-origin-redirected script should be blocked by the script-src 'self' directive.]
expected:
if release_or_beta: FAIL
[A remote-origin-redirected worklet should not be blocked because the script-src directive specifying the origin allows it.]
expected:
if release_or_beta: FAIL
[A same-origin worklet importing an insecure-origin script should be blocked because of mixed contents.]
expected:
if release_or_beta: FAIL
[An insecure-origin worklet should be blocked because of mixed contents.]
expected:
if release_or_beta: FAIL
[A remote-origin worklet should not be blocked because the script-src * directive allows it.]
expected:
if release_or_beta: FAIL
[A remote-origin-redirected worklet should not be blocked by the worker-src directive because worklets obey the script-src directive.]
expected:
if release_or_beta: FAIL

View File

@ -74,3 +74,27 @@
[Importing a remote-origin script from a remote-origin worklet script that has "same-origin" referrer policy.]
expected: FAIL
[Importing a remote-origin script from a page that has "origin" referrer policy should send only an origin as referrer.]
expected:
if release_or_beta: FAIL
[Importing a same-origin script from a page that has "same-origin" referrer policy should send referrer.]
expected:
if release_or_beta: FAIL
[Importing a remote-origin script from a page that has "same-origin" referrer policy should not send referrer.]
expected:
if release_or_beta: FAIL
[Importing a same-origin script from a page that has "no-referrer" referrer policy should not send referrer.]
expected:
if release_or_beta: FAIL
[Importing a remote-origin script from a page that has "no-referrer" referrer policy should not send referrer.]
expected:
if release_or_beta: FAIL
[Importing a same-origin script from a page that has "origin" referrer policy should send only an origin as referrer.]
expected:
if release_or_beta: FAIL

View File

@ -59,7 +59,7 @@
{ property: "cursor", valuesToTest:["auto", "crosshair", "default", "pointer", "move", "e-resize", "ne-resize", "nw-resize", "n-resize", "se-resize", "sw-resize", "s-resize", "w-resize", "text", "wait", "help"], default: "auto" },
{ property: "direction", valuesToTest:["ltr", "rtl"], default: "ltr" },
{ property: "display", valuesToTest:["inline", "block", "list-item", "table", "inline-table", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-column-group", "table-column", "table-cell", "table-caption", "none"], default: "inline" },
{ property: "dominant-baseline", valuesToTest:["auto", "use-script", "no-change", "reset-size", "ideographic", "alphabetic", "hanging", "mathematical", "central", "middle", "text-after-edge", "text-before-edge"], default: "auto" },
{ property: "dominant-baseline", valuesToTest:["auto", "ideographic", "alphabetic", "hanging", "mathematical", "central", "middle", "text-after-edge", "text-before-edge"], default: "auto" },
{ property: "fill", valuesToTest:["red", "url(#gradient) black"], default: "black" },
{ property: "fill-opacity", valuesToTest:["0.8"], default: "1" },
{ property: "fill-rule", valuesToTest:["nonzero", "evenodd"], default: "nonzero" },