Changeset 136684 in webkit


Ignore:
Timestamp:
Dec 5, 2012 7:25:22 AM (11 years ago)
Author:
commit-queue@webkit.org
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 <Antoine Quint> 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:
Location:
trunk
Files:
2 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r136683 r136684  
     12012-12-05  Antoine Quint  <graouts@apple.com>
     2
     3        TextTrackCue's .endTime property should fire a TypeError when NaN is assigned
     4        https://bugs.webkit.org/show_bug.cgi?id=103413
     5
     6        Reviewed by Eric Carlson.
     7
     8        Stop skipping two tests that now have new passing conditions, only held back from
     9        passing altogether by https://bugs.webkit.org/show_bug.cgi?id=103258.
     10
     11        * media/track/opera/interfaces/TextTrackCue/endTime-expected.txt: Added.
     12        * media/track/opera/interfaces/TextTrackCue/startTime-expected.txt: Added.
     13        * platform/chromium/TestExpectations:
     14        * platform/efl/TestExpectations:
     15        * platform/gtk/TestExpectations:
     16        * platform/mac/TestExpectations:
     17        * platform/qt/TestExpectations:
     18        * platform/win/TestExpectations:
     19
    1202012-12-05  Alexis Menard  <alexis@webkit.org>
    221
  • trunk/LayoutTests/platform/chromium/TestExpectations

    r136681 r136684  
    30113011webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
    30123012webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/align.html [ Skip ]
    3013 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/endTime.html [ Skip ]
    30143013webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/id.html [ Skip ]
    30153014webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
     
    30193018webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/pauseOnExit.html [ Skip ]
    30203019webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
    3021 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/startTime.html [ Skip ]
    30223020webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
    30233021webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/track.html [ Skip ]
  • trunk/LayoutTests/platform/efl/TestExpectations

    r136667 r136684  
    729729webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
    730730webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/align.html [ Skip ]
    731 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/endTime.html [ Skip ]
    732731webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/id.html [ Skip ]
    733732webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
     
    737736webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/pauseOnExit.html [ Skip ]
    738737webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
    739 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/startTime.html [ Skip ]
    740738webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
    741739webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/track.html [ Skip ]
  • trunk/LayoutTests/platform/gtk/TestExpectations

    r136663 r136684  
    548548webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
    549549webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/align.html [ Skip ]
    550 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/endTime.html [ Skip ]
    551550webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/id.html [ Skip ]
    552551webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
     
    556555webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/pauseOnExit.html [ Skip ]
    557556webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
    558 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/startTime.html [ Skip ]
    559557webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
    560558webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/track.html [ Skip ]
  • trunk/LayoutTests/platform/mac/TestExpectations

    r136662 r136684  
    485485webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
    486486webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/align.html [ Skip ]
    487 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/endTime.html [ Skip ]
    488487webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/id.html [ Skip ]
    489488webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
     
    493492webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/pauseOnExit.html [ Skip ]
    494493webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
    495 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/startTime.html [ Skip ]
    496494webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
    497495webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/track.html [ Skip ]
  • trunk/LayoutTests/platform/qt/TestExpectations

    r136678 r136684  
    911911webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
    912912webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/align.html [ Skip ]
    913 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/endTime.html [ Skip ]
    914913webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/id.html [ Skip ]
    915914webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
     
    919918webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/pauseOnExit.html [ Skip ]
    920919webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
    921 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/startTime.html [ Skip ]
    922920webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
    923921webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/track.html [ Skip ]
  • trunk/LayoutTests/platform/win/TestExpectations

    r136610 r136684  
    15721572webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
    15731573webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/align.html [ Skip ]
    1574 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/endTime.html [ Skip ]
    15751574webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/id.html [ Skip ]
    15761575webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
     
    15801579webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/pauseOnExit.html [ Skip ]
    15811580webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
    1582 webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/startTime.html [ Skip ]
    15831581webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
    15841582webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/track.html [ Skip ]
  • trunk/Source/WebCore/ChangeLog

    r136683 r136684  
     12012-12-05  Antoine Quint  <graouts@apple.com>
     2
     3        TextTrackCue's .endTime property should fire a TypeError when NaN is assigned
     4        https://bugs.webkit.org/show_bug.cgi?id=103413
     5
     6        Reviewed by Eric Carlson.
     7
     8        Check whether the new time passed to setStartTime() and setEndTime() is none of NaN or Infinity,
     9        otherwise throwing a TypeError.
     10       
     11        Thanks to this fix, we're no longer skipping media/track/opera/interfaces/TextTrackCue/endTime.html and
     12        media/track/opera/interfaces/TextTrackCue/startTime.html.
     13
     14        * html/track/TextTrackCue.cpp:
     15        (WebCore::TextTrackCue::setStartTime):
     16        (WebCore::TextTrackCue::setEndTime):
     17        * html/track/TextTrackCue.h:
     18        (TextTrackCue):
     19        * html/track/TextTrackCue.idl:
     20
    1212012-12-05  Alexis Menard  <alexis@webkit.org>
    222
  • trunk/Source/WebCore/html/track/TextTrackCue.cpp

    r134783 r136684  
    4747#include "TextTrackCueList.h"
    4848#include "WebVTTParser.h"
     49#include <wtf/MathExtras.h>
    4950#include <wtf/text/StringBuilder.h>
    5051
     
    267268}
    268269
    269 void TextTrackCue::setStartTime(double value)
    270 {
     270void TextTrackCue::setStartTime(double value, ExceptionCode& ec)
     271{
     272    // NaN, Infinity and -Infinity values should trigger a TypeError.
     273    if (isinf(value) || isnan(value)) {
     274        ec = TypeError;
     275        return;
     276    }
     277   
    271278    // TODO(93143): Add spec-compliant behavior for negative time values.
    272279    if (m_startTime == value || value < 0)
     
    278285}
    279286   
    280 void TextTrackCue::setEndTime(double value)
    281 {
     287void TextTrackCue::setEndTime(double value, ExceptionCode& ec)
     288{
     289    // NaN, Infinity and -Infinity values should trigger a TypeError.
     290    if (isinf(value) || isnan(value)) {
     291        ec = TypeError;
     292        return;
     293    }
     294
    282295    // TODO(93143): Add spec-compliant behavior for negative time values.
    283296    if (m_endTime == value || value < 0)
  • trunk/Source/WebCore/html/track/TextTrackCue.h

    r134020 r136684  
    9191
    9292    double startTime() const { return m_startTime; }
    93     void setStartTime(double);
     93    void setStartTime(double, ExceptionCode&);
    9494
    9595    double endTime() const { return m_endTime; }
    96     void setEndTime(double);
     96    void setEndTime(double, ExceptionCode&);
    9797
    9898    bool pauseOnExit() const { return m_pauseOnExit; }
  • trunk/Source/WebCore/html/track/TextTrackCue.idl

    r131172 r136684  
    3737
    3838    attribute DOMString id;
    39     attribute double startTime;
    40     attribute double endTime;
     39    attribute double startTime
     40        setter raises (DOMException);
     41    attribute double endTime
     42        setter raises (DOMException);
    4143    attribute boolean pauseOnExit;
    4244
Note: See TracChangeset for help on using the changeset viewer.