Title: [203949] trunk
Revision
203949
Author
[email protected]
Date
2016-07-30 17:23:21 -0700 (Sat, 30 Jul 2016)

Log Message

[WebIDL] Enable strict type checking for nullable attribute setters of wrapper types
https://bugs.webkit.org/show_bug.cgi?id=160375

Reviewed by Darin Adler.

Source/WebCore:

Enable strict type checking for nullable attribute setters of wrapper types:
- http://heycam.github.io/webidl/#es-nullable-type
- http://heycam.github.io/webidl/#es-interface

For such attributes, if the JS tries to assign a value that is not null /
undefined and does not have the expected wrapper type, then we now throw a
TypeError instead of silently converting the value to null.

This behavior is consistent with Chrome and Firefox. It also helps identify
bugs in _javascript_ code.

No new tests, updated existing tests.

* Modules/webaudio/AudioBufferSourceNode.idl:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjTestNullableObjAttr):
(WebCore::setJSTestObjMutablePoint):
(WebCore::setJSTestObjImmutablePoint):
* bindings/scripts/test/TestObj.idl:
* dom/Document.idl:
* html/HTMLTableElement.idl:
* svg/SVGAngle.idl:
* svg/SVGAnimatedBoolean.idl:
* svg/SVGAnimatedEnumeration.idl:
* svg/SVGAnimatedInteger.idl:
* svg/SVGAnimatedNumber.idl:
* svg/SVGLength.idl:
* svg/SVGMatrix.idl:
* svg/SVGNumber.idl:
* svg/SVGPathSegArcAbs.idl:
* svg/SVGPathSegArcRel.idl:
* svg/SVGPathSegCurvetoCubicAbs.idl:
* svg/SVGPathSegCurvetoCubicRel.idl:
* svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
* svg/SVGPathSegCurvetoCubicSmoothRel.idl:
* svg/SVGPathSegCurvetoQuadraticAbs.idl:
* svg/SVGPathSegCurvetoQuadraticRel.idl:
* svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
* svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
* svg/SVGPathSegLinetoAbs.idl:
* svg/SVGPathSegLinetoHorizontalAbs.idl:
* svg/SVGPathSegLinetoHorizontalRel.idl:
* svg/SVGPathSegLinetoRel.idl:
* svg/SVGPathSegLinetoVerticalAbs.idl:
* svg/SVGPathSegLinetoVerticalRel.idl:
* svg/SVGPathSegMovetoAbs.idl:
* svg/SVGPathSegMovetoRel.idl:
* svg/SVGPoint.idl:
* svg/SVGPreserveAspectRatio.idl:
* svg/SVGRect.idl:

LayoutTests:

Rebaseline / update existing tests to reflect behavior change.

* fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt:
* fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html:
* webaudio/convolver-setBuffer-null-expected.txt:
* webaudio/convolver-setBuffer-null.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (203948 => 203949)


--- trunk/LayoutTests/ChangeLog	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/LayoutTests/ChangeLog	2016-07-31 00:23:21 UTC (rev 203949)
@@ -1,3 +1,17 @@
+2016-07-30  Chris Dumez  <[email protected]>
+
+        [WebIDL] Enable strict type checking for nullable attribute setters of wrapper types
+        https://bugs.webkit.org/show_bug.cgi?id=160375
+
+        Reviewed by Darin Adler.
+
+        Rebaseline / update existing tests to reflect behavior change.
+
+        * fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt:
+        * fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html:
+        * webaudio/convolver-setBuffer-null-expected.txt:
+        * webaudio/convolver-setBuffer-null.html:
+
 2016-07-30  Alexey Proskuryakov  <[email protected]>
 
         macOS Sierra test result gardening for media/video-loop.html.

Modified: trunk/LayoutTests/fast/forms/file/input-file-write-files-expected.txt (203948 => 203949)


--- trunk/LayoutTests/fast/forms/file/input-file-write-files-expected.txt	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/LayoutTests/fast/forms/file/input-file-write-files-expected.txt	2016-07-31 00:23:21 UTC (rev 203949)
@@ -3,6 +3,7 @@
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
+PASS file1.files = "foo" threw exception TypeError: The HTMLInputElement.files attribute must be an instance of FileList.
 PASS file1.files.length is 1
 PASS file1.files.item(0).name is "foo.txt"
 PASS file1.files.length is 1

Modified: trunk/LayoutTests/fast/forms/file/input-file-write-files.html (203948 => 203949)


--- trunk/LayoutTests/fast/forms/file/input-file-write-files.html	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/LayoutTests/fast/forms/file/input-file-write-files.html	2016-07-31 00:23:21 UTC (rev 203949)
@@ -15,7 +15,7 @@
     dragFilesOntoInput(file1, ["foo.txt"]);
     dragFilesOntoInput(file2, ["bar.txt"]);
 
-    file1.files = "foo";
+    shouldThrow('file1.files = "foo"');
     shouldBe("file1.files.length", "1");
     shouldBeEqualToString("file1.files.item(0).name", "foo.txt");
 

Modified: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt (203948 => 203949)


--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt	2016-07-31 00:23:21 UTC (rev 203949)
@@ -4,6 +4,7 @@
 
 
 PASS speechSynthesis.speak('Hello World') threw exception TypeError: Argument 1 ('utterance') to SpeechSynthesis.speak must be an instance of SpeechSynthesisUtterance.
+PASS x.voice = "asdf" threw exception TypeError: The SpeechSynthesisUtterance.voice attribute must be an instance of SpeechSynthesisVoice.
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html (203948 => 203949)


--- trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/LayoutTests/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html	2016-07-31 00:23:21 UTC (rev 203949)
@@ -16,7 +16,7 @@
 
      // Don't crash. An utterance voice is supposed to take a voice object, not a string.
      var x = new SpeechSynthesisUtterance('Hello World');
-     x.voice = "asdf";
+     shouldThrow('x.voice = "asdf"');
 
      // Don't crash. An utterance is supposed to take a string, not a number.
      x = new SpeechSynthesisUtterance(223);

Modified: trunk/LayoutTests/webaudio/convolver-setBuffer-null-expected.txt (203948 => 203949)


--- trunk/LayoutTests/webaudio/convolver-setBuffer-null-expected.txt	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/LayoutTests/webaudio/convolver-setBuffer-null-expected.txt	2016-07-31 00:23:21 UTC (rev 203949)
@@ -1,8 +1,12 @@
-Tests that ConvolverNode impulse response buffer can be set to 0.
+Tests that ConvolverNode impulse response buffer can be set to null.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
-PASS ConvolverNode impulse response buffer was set to 0.
+
+PASS conv.buffer = null did not throw exception.
+PASS conv.buffer is null
+PASS conv.buffer = document threw exception TypeError: The ConvolverNode.buffer attribute must be an instance of AudioBuffer.
+PASS conv.buffer is null
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: trunk/LayoutTests/webaudio/convolver-setBuffer-null.html (203948 => 203949)


--- trunk/LayoutTests/webaudio/convolver-setBuffer-null.html	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/LayoutTests/webaudio/convolver-setBuffer-null.html	2016-07-31 00:23:21 UTC (rev 203949)
@@ -1,39 +1,22 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html>
 <html>
 <head>
 <script src=""
 <script src=""
 </head>
-
 <body>
-<div id="description"></div>
-<div id="console"></div>
-
 <script>
-description("Tests that ConvolverNode impulse response buffer can be set to 0.");
+description("Tests that ConvolverNode impulse response buffer can be set to null.");
 
-function runTest()
-{
-    if (window.testRunner) {
-        testRunner.dumpAsText();
-        testRunner.waitUntilDone();
-    }
+var context = new webkitAudioContext();
+var conv = context.createConvolver();
 
-    window.jsTestIsAsync = true;
+shouldNotThrow("conv.buffer = null");
+shouldBe("conv.buffer", "null");
 
-    var context = new webkitAudioContext();
-    var conv = context.createConvolver();
-
-    conv.buffer = 0;
-    testPassed("ConvolverNode impulse response buffer was set to 0.");
-
-    finishJSTest();
-}
-
-runTest();
-successfullyParsed = true;
+shouldThrow("conv.buffer = document");
+shouldBe("conv.buffer", "null");
 </script>
-
 <script src=""
 </body>
 </html>

Modified: trunk/Source/WebCore/ChangeLog (203948 => 203949)


--- trunk/Source/WebCore/ChangeLog	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/ChangeLog	2016-07-31 00:23:21 UTC (rev 203949)
@@ -1,3 +1,63 @@
+2016-07-30  Chris Dumez  <[email protected]>
+
+        [WebIDL] Enable strict type checking for nullable attribute setters of wrapper types
+        https://bugs.webkit.org/show_bug.cgi?id=160375
+
+        Reviewed by Darin Adler.
+
+        Enable strict type checking for nullable attribute setters of wrapper types:
+        - http://heycam.github.io/webidl/#es-nullable-type
+        - http://heycam.github.io/webidl/#es-interface
+
+        For such attributes, if the JS tries to assign a value that is not null /
+        undefined and does not have the expected wrapper type, then we now throw a
+        TypeError instead of silently converting the value to null.
+
+        This behavior is consistent with Chrome and Firefox. It also helps identify
+        bugs in _javascript_ code.
+
+        No new tests, updated existing tests.
+
+        * Modules/webaudio/AudioBufferSourceNode.idl:
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateImplementation):
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore::setJSTestObjTestNullableObjAttr):
+        (WebCore::setJSTestObjMutablePoint):
+        (WebCore::setJSTestObjImmutablePoint):
+        * bindings/scripts/test/TestObj.idl:
+        * dom/Document.idl:
+        * html/HTMLTableElement.idl:
+        * svg/SVGAngle.idl:
+        * svg/SVGAnimatedBoolean.idl:
+        * svg/SVGAnimatedEnumeration.idl:
+        * svg/SVGAnimatedInteger.idl:
+        * svg/SVGAnimatedNumber.idl:
+        * svg/SVGLength.idl:
+        * svg/SVGMatrix.idl:
+        * svg/SVGNumber.idl:
+        * svg/SVGPathSegArcAbs.idl:
+        * svg/SVGPathSegArcRel.idl:
+        * svg/SVGPathSegCurvetoCubicAbs.idl:
+        * svg/SVGPathSegCurvetoCubicRel.idl:
+        * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
+        * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
+        * svg/SVGPathSegCurvetoQuadraticAbs.idl:
+        * svg/SVGPathSegCurvetoQuadraticRel.idl:
+        * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
+        * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
+        * svg/SVGPathSegLinetoAbs.idl:
+        * svg/SVGPathSegLinetoHorizontalAbs.idl:
+        * svg/SVGPathSegLinetoHorizontalRel.idl:
+        * svg/SVGPathSegLinetoRel.idl:
+        * svg/SVGPathSegLinetoVerticalAbs.idl:
+        * svg/SVGPathSegLinetoVerticalRel.idl:
+        * svg/SVGPathSegMovetoAbs.idl:
+        * svg/SVGPathSegMovetoRel.idl:
+        * svg/SVGPoint.idl:
+        * svg/SVGPreserveAspectRatio.idl:
+        * svg/SVGRect.idl:
+
 2016-07-30  Youenn Fablet  <[email protected]>
 
         Synchronous preflight should check for successful responses

Modified: trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl (203948 => 203949)


--- trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -27,7 +27,7 @@
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject,
 ] interface AudioBufferSourceNode : AudioNode {
-    [StrictTypeChecking] attribute AudioBuffer? buffer;
+    attribute AudioBuffer? buffer;
 
     const unsigned short UNSCHEDULED_STATE = 0;
     const unsigned short SCHEDULED_STATE = 1;

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (203948 => 203949)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2016-07-31 00:23:21 UTC (rev 203949)
@@ -2925,6 +2925,7 @@
                             push(@implContent, "    auto& impl = forwardedImpl.get();\n");
                         }
                         $attribute = $codeGenerator->GetAttributeFromInterface($interface, $type, $putForwards);
+                        $type = $attribute->signature->type;
                     } else {
                         push(@implContent, "    auto& impl = castedThis->wrapped();\n");
                     }
@@ -2937,20 +2938,15 @@
 
                 my $shouldPassByReference = ShouldPassWrapperByReference($attribute->signature, $interface);
 
-                # If the "StrictTypeChecking" extended attribute is present, and the attribute's type is an
-                # interface type, then if the incoming value does not implement that interface, a TypeError
-                # is thrown rather than silently passing NULL to the C++ code.
-                # Per the Web IDL and ECMAScript specifications, incoming values can always be converted to
-                # both strings and numbers, so do not throw TypeError if the attribute is of these types.
                 my ($nativeValue, $mayThrowException) = JSValueToNative($interface, $attribute->signature, "value", $attribute->signature->extendedAttributes->{"Conditional"});
-                if ($attribute->signature->extendedAttributes->{"StrictTypeChecking"} && !$shouldPassByReference && $codeGenerator->IsWrapperType($type)) {
+                if (!$shouldPassByReference && $codeGenerator->IsWrapperType($type)) {
                     $implIncludes{"<runtime/Error.h>"} = 1;
                     push(@implContent, "    " . GetNativeTypeFromSignature($interface, $attribute->signature) . " nativeValue = nullptr;\n");
                     push(@implContent, "    if (!value.isUndefinedOrNull()) {\n");
                     push(@implContent, "        nativeValue = $nativeValue;\n");
                     if ($mayThrowException) {
-                        push(@implContent, "    if (UNLIKELY(state->hadException()))\n");
-                        push(@implContent, "        return false;\n");
+                        push(@implContent, "        if (UNLIKELY(state->hadException()))\n");
+                        push(@implContent, "            return false;\n");
                     }
                     push(@implContent, "        if (UNLIKELY(!nativeValue)) {\n");
                     push(@implContent, "            throwAttributeTypeError(*state, \"$visibleInterfaceName\", \"$name\", \"$type\");\n");

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (203948 => 203949)


--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp	2016-07-31 00:23:21 UTC (rev 203949)
@@ -2931,7 +2931,14 @@
         return throwSetterTypeError(*state, "TestObject", "testNullableObjAttr");
     }
     auto& impl = castedThis->wrapped();
-    auto nativeValue = JSTestObj::toWrapped(value);
+    TestObj* nativeValue = nullptr;
+    if (!value.isUndefinedOrNull()) {
+        nativeValue = JSTestObj::toWrapped(value);
+        if (UNLIKELY(!nativeValue)) {
+            throwAttributeTypeError(*state, "TestObject", "testNullableObjAttr", "TestObj");
+            return false;
+        }
+    }
     impl.setTestNullableObjAttr(WTFMove(nativeValue));
     return true;
 }
@@ -3679,7 +3686,14 @@
         return throwSetterTypeError(*state, "TestObject", "mutablePoint");
     }
     auto& impl = castedThis->wrapped();
-    auto nativeValue = JSSVGPoint::toWrapped(value);
+    SVGPropertyTearOff<SVGPoint>* nativeValue = nullptr;
+    if (!value.isUndefinedOrNull()) {
+        nativeValue = JSSVGPoint::toWrapped(value);
+        if (UNLIKELY(!nativeValue)) {
+            throwAttributeTypeError(*state, "TestObject", "mutablePoint", "SVGPoint");
+            return false;
+        }
+    }
     impl.setMutablePoint(WTFMove(nativeValue));
     return true;
 }
@@ -3694,7 +3708,14 @@
         return throwSetterTypeError(*state, "TestObject", "immutablePoint");
     }
     auto& impl = castedThis->wrapped();
-    auto nativeValue = JSSVGPoint::toWrapped(value);
+    SVGPropertyTearOff<SVGPoint>* nativeValue = nullptr;
+    if (!value.isUndefinedOrNull()) {
+        nativeValue = JSSVGPoint::toWrapped(value);
+        if (UNLIKELY(!nativeValue)) {
+            throwAttributeTypeError(*state, "TestObject", "immutablePoint", "SVGPoint");
+            return false;
+        }
+    }
     impl.setImmutablePoint(WTFMove(nativeValue));
     return true;
 }

Modified: trunk/Source/WebCore/bindings/scripts/test/TestObj.idl (203948 => 203949)


--- trunk/Source/WebCore/bindings/scripts/test/TestObj.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/bindings/scripts/test/TestObj.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -136,9 +136,6 @@
     [GetterRaisesException] attribute DOMString stringAttrWithGetterException;
     [SetterRaisesException] attribute DOMString stringAttrWithSetterException;
 
-    // Strict type checking.
-    [StrictTypeChecking] attribute TestObj? strictTypeCheckingAttribute;
-
     // 'Custom' extended attribute
     [Custom] attribute long            customAttr;
     [Custom] void customMethod();
@@ -312,7 +309,6 @@
     [ImplementedAs=banana] void orange();
     [ImplementedAs=blueberry] attribute long strawberry;
 
-    [StrictTypeChecking] attribute unrestricted float strictFloat;
     [StrictTypeChecking, RaisesException] boolean strictFunction(DOMString str, unrestricted float a, long b);
 
     [StrictTypeChecking, RaisesException] boolean strictFunctionWithSequence(TestObj? objArg, sequence<unsigned long> a);

Modified: trunk/Source/WebCore/dom/Document.idl (203948 => 203949)


--- trunk/Source/WebCore/dom/Document.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/dom/Document.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -170,7 +170,7 @@
 
     [GetterRaisesException, SetterRaisesException] attribute DOMString cookie;
 
-    [SetterRaisesException, ImplementedAs=bodyOrFrameset, StrictTypeChecking] attribute HTMLElement? body;
+    [SetterRaisesException, ImplementedAs=bodyOrFrameset] attribute HTMLElement? body;
 
     readonly attribute HTMLHeadElement? head;
     readonly attribute HTMLCollection images;

Modified: trunk/Source/WebCore/html/HTMLTableElement.idl (203948 => 203949)


--- trunk/Source/WebCore/html/HTMLTableElement.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/html/HTMLTableElement.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -19,9 +19,9 @@
  */
 
 interface HTMLTableElement : HTMLElement {
-    [SetterRaisesException, StrictTypeChecking] attribute HTMLTableCaptionElement? caption;
-    [SetterRaisesException, StrictTypeChecking] attribute HTMLTableSectionElement? tHead;
-    [SetterRaisesException, StrictTypeChecking] attribute HTMLTableSectionElement? tFoot;
+    [SetterRaisesException] attribute HTMLTableCaptionElement? caption;
+    [SetterRaisesException] attribute HTMLTableSectionElement? tHead;
+    [SetterRaisesException] attribute HTMLTableSectionElement? tFoot;
 
     readonly attribute HTMLCollection rows;
     readonly attribute HTMLCollection tBodies;

Modified: trunk/Source/WebCore/svg/SVGAngle.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGAngle.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGAngle.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -29,8 +29,8 @@
     const unsigned short SVG_ANGLETYPE_GRAD = 4;
 
     readonly attribute unsigned short unitType;
-    [StrictTypeChecking] attribute unrestricted float value;
-    [StrictTypeChecking] attribute unrestricted float valueInSpecifiedUnits;
+    attribute unrestricted float value;
+    attribute unrestricted float valueInSpecifiedUnits;
 
     [SetterRaisesException] attribute DOMString valueAsString;
 

Modified: trunk/Source/WebCore/svg/SVGAnimatedBoolean.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGAnimatedBoolean.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGAnimatedBoolean.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -26,7 +26,7 @@
 [
     SkipVTableValidation
 ] interface SVGAnimatedBoolean {
-    [StrictTypeChecking, SetterRaisesException] attribute boolean baseVal;
+    [SetterRaisesException] attribute boolean baseVal;
     readonly attribute boolean animVal;
 };
 

Modified: trunk/Source/WebCore/svg/SVGAnimatedEnumeration.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGAnimatedEnumeration.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGAnimatedEnumeration.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -26,7 +26,7 @@
 [
     SkipVTableValidation
 ] interface SVGAnimatedEnumeration {
-    [StrictTypeChecking, SetterRaisesException] attribute unsigned short baseVal;
+    [SetterRaisesException] attribute unsigned short baseVal;
     readonly attribute unsigned short animVal;
 };
 

Modified: trunk/Source/WebCore/svg/SVGAnimatedInteger.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGAnimatedInteger.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGAnimatedInteger.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -26,7 +26,7 @@
 [
     SkipVTableValidation
 ] interface SVGAnimatedInteger {
-    [StrictTypeChecking, SetterRaisesException] attribute long baseVal;
+    [SetterRaisesException] attribute long baseVal;
     readonly attribute long animVal;
 };
 

Modified: trunk/Source/WebCore/svg/SVGAnimatedNumber.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGAnimatedNumber.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGAnimatedNumber.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -27,7 +27,7 @@
 [
     SkipVTableValidation
 ] interface SVGAnimatedNumber {
-    [StrictTypeChecking, SetterRaisesException] attribute unrestricted float baseVal;
+    [SetterRaisesException] attribute unrestricted float baseVal;
     readonly attribute unrestricted float animVal;
 };
 

Modified: trunk/Source/WebCore/svg/SVGLength.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGLength.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGLength.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -35,11 +35,11 @@
     const unsigned short SVG_LENGTHTYPE_PC         = 10;
 
     readonly attribute unsigned short unitType;
-    [GetterRaisesException, SetterRaisesException, Custom, StrictTypeChecking] attribute unrestricted float value;
+    [GetterRaisesException, SetterRaisesException, Custom] attribute unrestricted float value;
 
-    [StrictTypeChecking] attribute unrestricted float valueInSpecifiedUnits;
+    attribute unrestricted float valueInSpecifiedUnits;
 
-    [StrictTypeChecking, SetterRaisesException] attribute DOMString valueAsString;
+    [SetterRaisesException] attribute DOMString valueAsString;
 
     [StrictTypeChecking, RaisesException] void newValueSpecifiedUnits(unsigned short unitType, 
                                                      unrestricted float valueInSpecifiedUnits);

Modified: trunk/Source/WebCore/svg/SVGMatrix.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGMatrix.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGMatrix.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -23,12 +23,12 @@
 interface SVGMatrix {
     // FIXME: these attributes should all be floats but since we implement
     // AffineTransform with doubles setting these as doubles makes more sense.
-    [StrictTypeChecking] attribute unrestricted double a;
-    [StrictTypeChecking] attribute unrestricted double b;
-    [StrictTypeChecking] attribute unrestricted double c;
-    [StrictTypeChecking] attribute unrestricted double d;
-    [StrictTypeChecking] attribute unrestricted double e;
-    [StrictTypeChecking] attribute unrestricted double f;
+    attribute unrestricted double a;
+    attribute unrestricted double b;
+    attribute unrestricted double c;
+    attribute unrestricted double d;
+    attribute unrestricted double e;
+    attribute unrestricted double f;
 
     [StrictTypeChecking] SVGMatrix multiply(SVGMatrix secondMatrix);
     [RaisesException] SVGMatrix inverse();

Modified: trunk/Source/WebCore/svg/SVGNumber.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGNumber.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGNumber.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -21,6 +21,6 @@
  */
 
 interface SVGNumber {
-    [StrictTypeChecking] attribute unrestricted float value;
+    attribute unrestricted float value;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegArcAbs.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegArcAbs.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegArcAbs.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,12 +25,12 @@
  */
 
 interface SVGPathSegArcAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
-    [StrictTypeChecking] attribute unrestricted float r1;
-    [StrictTypeChecking] attribute unrestricted float r2;
-    [StrictTypeChecking] attribute unrestricted float angle;
-    [StrictTypeChecking] attribute boolean largeArcFlag;
-    [StrictTypeChecking] attribute boolean sweepFlag;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
+    attribute unrestricted float r1;
+    attribute unrestricted float r2;
+    attribute unrestricted float angle;
+    attribute boolean largeArcFlag;
+    attribute boolean sweepFlag;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegArcRel.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegArcRel.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegArcRel.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,12 +25,12 @@
  */
 
 interface SVGPathSegArcRel : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
-    [StrictTypeChecking] attribute unrestricted float r1;
-    [StrictTypeChecking] attribute unrestricted float r2;
-    [StrictTypeChecking] attribute unrestricted float angle;
-    [StrictTypeChecking] attribute boolean largeArcFlag;
-    [StrictTypeChecking] attribute boolean sweepFlag;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
+    attribute unrestricted float r1;
+    attribute unrestricted float r2;
+    attribute unrestricted float angle;
+    attribute boolean largeArcFlag;
+    attribute boolean sweepFlag;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,11 +25,11 @@
  */ 
 
 interface SVGPathSegCurvetoCubicAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
-    [StrictTypeChecking] attribute unrestricted float x1;
-    [StrictTypeChecking] attribute unrestricted float y1;
-    [StrictTypeChecking] attribute unrestricted float x2;
-    [StrictTypeChecking] attribute unrestricted float y2;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
+    attribute unrestricted float x1;
+    attribute unrestricted float y1;
+    attribute unrestricted float x2;
+    attribute unrestricted float y2;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegCurvetoCubicRel.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegCurvetoCubicRel.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegCurvetoCubicRel.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,11 +25,11 @@
  */ 
 
 interface SVGPathSegCurvetoCubicRel : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
-    [StrictTypeChecking] attribute unrestricted float x1;
-    [StrictTypeChecking] attribute unrestricted float y1;
-    [StrictTypeChecking] attribute unrestricted float x2;
-    [StrictTypeChecking] attribute unrestricted float y2;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
+    attribute unrestricted float x1;
+    attribute unrestricted float y1;
+    attribute unrestricted float x2;
+    attribute unrestricted float y2;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,9 +25,9 @@
  */ 
 
 interface SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
-    [StrictTypeChecking] attribute unrestricted float x2;
-    [StrictTypeChecking] attribute unrestricted float y2;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
+    attribute unrestricted float x2;
+    attribute unrestricted float y2;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,9 +25,9 @@
  */ 
 
 interface SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
-    [StrictTypeChecking] attribute unrestricted float x2;
-    [StrictTypeChecking] attribute unrestricted float y2;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
+    attribute unrestricted float x2;
+    attribute unrestricted float y2;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,9 +25,9 @@
  */
 
 interface SVGPathSegCurvetoQuadraticAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
-    [StrictTypeChecking] attribute unrestricted float x1;
-    [StrictTypeChecking] attribute unrestricted float y1;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
+    attribute unrestricted float x1;
+    attribute unrestricted float y1;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,9 +25,9 @@
  */
 
 interface SVGPathSegCurvetoQuadraticRel : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
-    [StrictTypeChecking] attribute unrestricted float x1;
-    [StrictTypeChecking] attribute unrestricted float y1;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
+    attribute unrestricted float x1;
+    attribute unrestricted float y1;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,7 +25,7 @@
  */
 
 interface SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,7 +25,7 @@
  */
 
 interface SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegLinetoAbs.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegLinetoAbs.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegLinetoAbs.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,7 +25,7 @@
  */
 
 interface SVGPathSegLinetoAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,6 +25,6 @@
  */
 
 interface SVGPathSegLinetoHorizontalAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
+    attribute unrestricted float x;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,6 +25,6 @@
  */
 
 interface SVGPathSegLinetoHorizontalRel : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
+    attribute unrestricted float x;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegLinetoRel.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegLinetoRel.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegLinetoRel.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,7 +25,7 @@
  */
 
 interface SVGPathSegLinetoRel : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,6 +25,6 @@
  */
 
 interface SVGPathSegLinetoVerticalAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float y;
+    attribute unrestricted float y;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegLinetoVerticalRel.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegLinetoVerticalRel.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegLinetoVerticalRel.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,6 +25,6 @@
  */
 
 interface SVGPathSegLinetoVerticalRel : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float y;
+    attribute unrestricted float y;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegMovetoAbs.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegMovetoAbs.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegMovetoAbs.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,7 +25,7 @@
  */
 
 interface SVGPathSegMovetoAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPathSegMovetoRel.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPathSegMovetoRel.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPathSegMovetoRel.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -25,7 +25,7 @@
  */
 
 interface SVGPathSegMovetoRel : SVGPathSeg {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
 };
 

Modified: trunk/Source/WebCore/svg/SVGPoint.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPoint.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPoint.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -21,8 +21,8 @@
  */
 
 interface SVGPoint {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
 
     [StrictTypeChecking] SVGPoint matrixTransform(SVGMatrix matrix);
 };

Modified: trunk/Source/WebCore/svg/SVGPreserveAspectRatio.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGPreserveAspectRatio.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGPreserveAspectRatio.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -42,8 +42,8 @@
     const unsigned short SVG_MEETORSLICE_MEET = 1;
     const unsigned short SVG_MEETORSLICE_SLICE = 2;
 
-    [StrictTypeChecking, SetterRaisesException] attribute unsigned short align;
+    [SetterRaisesException] attribute unsigned short align;
 
-    [StrictTypeChecking, SetterRaisesException] attribute unsigned short meetOrSlice;
+    [SetterRaisesException] attribute unsigned short meetOrSlice;
 };
 

Modified: trunk/Source/WebCore/svg/SVGRect.idl (203948 => 203949)


--- trunk/Source/WebCore/svg/SVGRect.idl	2016-07-30 21:12:30 UTC (rev 203948)
+++ trunk/Source/WebCore/svg/SVGRect.idl	2016-07-31 00:23:21 UTC (rev 203949)
@@ -21,9 +21,9 @@
  */
 
 interface SVGRect {
-    [StrictTypeChecking] attribute unrestricted float x;
-    [StrictTypeChecking] attribute unrestricted float y;
-    [StrictTypeChecking] attribute unrestricted float width;
-    [StrictTypeChecking] attribute unrestricted float height;
+    attribute unrestricted float x;
+    attribute unrestricted float y;
+    attribute unrestricted float width;
+    attribute unrestricted float height;
 };
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to