Title: [136684] trunk
Revision
136684
Author
[email protected]
Date
2012-12-05 07:25:22 -0800 (Wed, 05 Dec 2012)

Log Message

TextTrackCue's .endTime property should fire a TypeError when NaN is assigned
https://bugs.webkit.org/show_bug.cgi?id=103413

Patch by Antoine Quint <[email protected]> on 2012-12-05
Reviewed by Eric Carlson.

Source/WebCore:

Check whether the new time passed to setStartTime() and setEndTime() is none of NaN or Infinity,
otherwise throwing a TypeError.

Thanks to this fix, we're no longer skipping media/track/opera/interfaces/TextTrackCue/endTime.html and
media/track/opera/interfaces/TextTrackCue/startTime.html.

* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::setStartTime):
(WebCore::TextTrackCue::setEndTime):
* html/track/TextTrackCue.h:
(TextTrackCue):
* html/track/TextTrackCue.idl:

LayoutTests:

Stop skipping two tests that now have new passing conditions, only held back from
passing altogether by https://bugs.webkit.org/show_bug.cgi?id=103258.

* media/track/opera/interfaces/TextTrackCue/endTime-expected.txt: Added.
* media/track/opera/interfaces/TextTrackCue/startTime-expected.txt: Added.
* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
* platform/qt/TestExpectations:
* platform/win/TestExpectations:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (136683 => 136684)


--- trunk/LayoutTests/ChangeLog	2012-12-05 15:10:32 UTC (rev 136683)
+++ trunk/LayoutTests/ChangeLog	2012-12-05 15:25:22 UTC (rev 136684)
@@ -1,3 +1,22 @@
+2012-12-05  Antoine Quint  <[email protected]>
+
+        TextTrackCue's .endTime property should fire a TypeError when NaN is assigned
+        https://bugs.webkit.org/show_bug.cgi?id=103413
+
+        Reviewed by Eric Carlson.
+
+        Stop skipping two tests that now have new passing conditions, only held back from
+        passing altogether by https://bugs.webkit.org/show_bug.cgi?id=103258.
+
+        * media/track/opera/interfaces/TextTrackCue/endTime-expected.txt: Added.
+        * media/track/opera/interfaces/TextTrackCue/startTime-expected.txt: Added.
+        * platform/chromium/TestExpectations:
+        * platform/efl/TestExpectations:
+        * platform/gtk/TestExpectations:
+        * platform/mac/TestExpectations:
+        * platform/qt/TestExpectations:
+        * platform/win/TestExpectations:
+
 2012-12-05  Alexis Menard  <[email protected]>
 
         [CSS3 Backgrounds and Borders] Allow the CSS3 background position offset for background shorthand.

Added: trunk/LayoutTests/media/track/opera/interfaces/TextTrackCue/endTime-expected.txt (0 => 136684)


--- trunk/LayoutTests/media/track/opera/interfaces/TextTrackCue/endTime-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/media/track/opera/interfaces/TextTrackCue/endTime-expected.txt	2012-12-05 15:25:22 UTC (rev 136684)
@@ -0,0 +1,4 @@
+ 
+PASS TextTrackCue.endTime, script-created cue 
+TIMEOUT TextTrackCue.endTime, parsed cue Test timed out
+

Added: trunk/LayoutTests/media/track/opera/interfaces/TextTrackCue/startTime-expected.txt (0 => 136684)


--- trunk/LayoutTests/media/track/opera/interfaces/TextTrackCue/startTime-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/media/track/opera/interfaces/TextTrackCue/startTime-expected.txt	2012-12-05 15:25:22 UTC (rev 136684)
@@ -0,0 +1,4 @@
+ 
+PASS TextTrackCue.startTime, script-created cue 
+TIMEOUT TextTrackCue.startTime, parsed cue Test timed out
+

Modified: trunk/LayoutTests/platform/chromium/TestExpectations (136683 => 136684)


--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-12-05 15:10:32 UTC (rev 136683)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-12-05 15:25:22 UTC (rev 136684)
@@ -3010,7 +3010,6 @@
 webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/constructor.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/align.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/endTime.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/id.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/line.html [ Skip ]
@@ -3018,7 +3017,6 @@
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/onexit.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/pauseOnExit.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/startTime.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/track.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/vertical.html [ Skip ]

Modified: trunk/LayoutTests/platform/efl/TestExpectations (136683 => 136684)


--- trunk/LayoutTests/platform/efl/TestExpectations	2012-12-05 15:10:32 UTC (rev 136683)
+++ trunk/LayoutTests/platform/efl/TestExpectations	2012-12-05 15:25:22 UTC (rev 136684)
@@ -728,7 +728,6 @@
 webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/constructor.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/align.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/endTime.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/id.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/line.html [ Skip ]
@@ -736,7 +735,6 @@
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/onexit.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/pauseOnExit.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/startTime.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/track.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/vertical.html [ Skip ]

Modified: trunk/LayoutTests/platform/gtk/TestExpectations (136683 => 136684)


--- trunk/LayoutTests/platform/gtk/TestExpectations	2012-12-05 15:10:32 UTC (rev 136683)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2012-12-05 15:25:22 UTC (rev 136684)
@@ -547,7 +547,6 @@
 webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/constructor.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/align.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/endTime.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/id.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/line.html [ Skip ]
@@ -555,7 +554,6 @@
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/onexit.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/pauseOnExit.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/startTime.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/track.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/vertical.html [ Skip ]

Modified: trunk/LayoutTests/platform/mac/TestExpectations (136683 => 136684)


--- trunk/LayoutTests/platform/mac/TestExpectations	2012-12-05 15:10:32 UTC (rev 136683)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2012-12-05 15:25:22 UTC (rev 136684)
@@ -484,7 +484,6 @@
 webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/constructor.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/align.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/endTime.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/id.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/line.html [ Skip ]
@@ -492,7 +491,6 @@
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/onexit.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/pauseOnExit.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/startTime.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/track.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/vertical.html [ Skip ]

Modified: trunk/LayoutTests/platform/qt/TestExpectations (136683 => 136684)


--- trunk/LayoutTests/platform/qt/TestExpectations	2012-12-05 15:10:32 UTC (rev 136683)
+++ trunk/LayoutTests/platform/qt/TestExpectations	2012-12-05 15:25:22 UTC (rev 136684)
@@ -910,7 +910,6 @@
 webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/constructor.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/align.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/endTime.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/id.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/line.html [ Skip ]
@@ -918,7 +917,6 @@
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/onexit.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/pauseOnExit.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/startTime.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/track.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/vertical.html [ Skip ]

Modified: trunk/LayoutTests/platform/win/TestExpectations (136683 => 136684)


--- trunk/LayoutTests/platform/win/TestExpectations	2012-12-05 15:10:32 UTC (rev 136683)
+++ trunk/LayoutTests/platform/win/TestExpectations	2012-12-05 15:25:22 UTC (rev 136684)
@@ -1571,7 +1571,6 @@
 webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/constructor.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/align.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/endTime.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/id.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/line.html [ Skip ]
@@ -1579,7 +1578,6 @@
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/onexit.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/pauseOnExit.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/startTime.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/track.html [ Skip ]
 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/vertical.html [ Skip ]

Modified: trunk/Source/WebCore/ChangeLog (136683 => 136684)


--- trunk/Source/WebCore/ChangeLog	2012-12-05 15:10:32 UTC (rev 136683)
+++ trunk/Source/WebCore/ChangeLog	2012-12-05 15:25:22 UTC (rev 136684)
@@ -1,3 +1,23 @@
+2012-12-05  Antoine Quint  <[email protected]>
+
+        TextTrackCue's .endTime property should fire a TypeError when NaN is assigned
+        https://bugs.webkit.org/show_bug.cgi?id=103413
+
+        Reviewed by Eric Carlson.
+
+        Check whether the new time passed to setStartTime() and setEndTime() is none of NaN or Infinity,
+        otherwise throwing a TypeError.
+        
+        Thanks to this fix, we're no longer skipping media/track/opera/interfaces/TextTrackCue/endTime.html and
+        media/track/opera/interfaces/TextTrackCue/startTime.html.
+
+        * html/track/TextTrackCue.cpp:
+        (WebCore::TextTrackCue::setStartTime):
+        (WebCore::TextTrackCue::setEndTime):
+        * html/track/TextTrackCue.h:
+        (TextTrackCue):
+        * html/track/TextTrackCue.idl:
+
 2012-12-05  Alexis Menard  <[email protected]>
 
         [CSS3 Backgrounds and Borders] Allow the CSS3 background position offset for background shorthand.

Modified: trunk/Source/WebCore/html/track/TextTrackCue.cpp (136683 => 136684)


--- trunk/Source/WebCore/html/track/TextTrackCue.cpp	2012-12-05 15:10:32 UTC (rev 136683)
+++ trunk/Source/WebCore/html/track/TextTrackCue.cpp	2012-12-05 15:25:22 UTC (rev 136684)
@@ -46,6 +46,7 @@
 #include "TextTrack.h"
 #include "TextTrackCueList.h"
 #include "WebVTTParser.h"
+#include <wtf/MathExtras.h>
 #include <wtf/text/StringBuilder.h>
 
 namespace WebCore {
@@ -266,8 +267,14 @@
     cueDidChange();
 }
 
-void TextTrackCue::setStartTime(double value)
+void TextTrackCue::setStartTime(double value, ExceptionCode& ec)
 {
+    // NaN, Infinity and -Infinity values should trigger a TypeError.
+    if (isinf(value) || isnan(value)) {
+        ec = TypeError;
+        return;
+    }
+    
     // TODO(93143): Add spec-compliant behavior for negative time values.
     if (m_startTime == value || value < 0)
         return;
@@ -277,8 +284,14 @@
     cueDidChange();
 }
     
-void TextTrackCue::setEndTime(double value)
+void TextTrackCue::setEndTime(double value, ExceptionCode& ec)
 {
+    // NaN, Infinity and -Infinity values should trigger a TypeError.
+    if (isinf(value) || isnan(value)) {
+        ec = TypeError;
+        return;
+    }
+
     // TODO(93143): Add spec-compliant behavior for negative time values.
     if (m_endTime == value || value < 0)
         return;

Modified: trunk/Source/WebCore/html/track/TextTrackCue.h (136683 => 136684)


--- trunk/Source/WebCore/html/track/TextTrackCue.h	2012-12-05 15:10:32 UTC (rev 136683)
+++ trunk/Source/WebCore/html/track/TextTrackCue.h	2012-12-05 15:25:22 UTC (rev 136684)
@@ -90,10 +90,10 @@
     void setId(const String&);
 
     double startTime() const { return m_startTime; }
-    void setStartTime(double);
+    void setStartTime(double, ExceptionCode&);
 
     double endTime() const { return m_endTime; }
-    void setEndTime(double);
+    void setEndTime(double, ExceptionCode&);
 
     bool pauseOnExit() const { return m_pauseOnExit; }
     void setPauseOnExit(bool);

Modified: trunk/Source/WebCore/html/track/TextTrackCue.idl (136683 => 136684)


--- trunk/Source/WebCore/html/track/TextTrackCue.idl	2012-12-05 15:10:32 UTC (rev 136683)
+++ trunk/Source/WebCore/html/track/TextTrackCue.idl	2012-12-05 15:25:22 UTC (rev 136684)
@@ -36,8 +36,10 @@
     readonly attribute TextTrack track;
 
     attribute DOMString id;
-    attribute double startTime;
-    attribute double endTime;
+    attribute double startTime
+        setter raises (DOMException);
+    attribute double endTime
+        setter raises (DOMException);
     attribute boolean pauseOnExit;
 
     attribute DOMString vertical
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to