Calling .removeCue() for a cue that was never added should raise a NOT_FOUND_ERR
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Nov 2012 18:55:52 +0000 (18:55 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Nov 2012 18:55:52 +0000 (18:55 +0000)
https://bugs.webkit.org/show_bug.cgi?id=103412

Patch by Antoine Quint <graouts@apple.com> on 2012-11-28
Reviewed by Eric Carlson.

Source/WebCore:

Updating the .removeCue() implementation to match the latest spec. This means we now
raise a NOT_FOUND_ERR exception when trying to remove a cue that wasn't present in the
cue list instead of a INVALID_STATE_ERR exception like the spec used to mandate.

* html/track/TextTrack.cpp:
(WebCore::TextTrack::removeCue):

LayoutTests:

Updating the .removeCue() test checking on the exception to be NOT_FOUND_ERR instead
of INVALID_STATE_ERR.

* media/track/track-add-remove-cue-expected.txt:
* media/track/track-add-remove-cue.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@136026 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/media/track/track-add-remove-cue-expected.txt
LayoutTests/media/track/track-add-remove-cue.html
Source/WebCore/ChangeLog
Source/WebCore/html/track/TextTrack.cpp

index 611b6a1..ee25075 100644 (file)
@@ -1,3 +1,16 @@
+2012-11-28  Antoine Quint  <graouts@apple.com>
+
+        Calling .removeCue() for a cue that was never added should raise a NOT_FOUND_ERR
+        https://bugs.webkit.org/show_bug.cgi?id=103412
+
+        Reviewed by Eric Carlson.
+
+        Updating the .removeCue() test checking on the exception to be NOT_FOUND_ERR instead
+        of INVALID_STATE_ERR.
+
+        * media/track/track-add-remove-cue-expected.txt:
+        * media/track/track-add-remove-cue.html:
+
 2012-11-28  Stephen Chenney  <schenney@chromium.org>
 
         Layout Test svg/animations/mpath-remove-from-dependents-on-delete-crash.html is flaky
index 282c7b0..0f88ac4 100644 (file)
@@ -70,7 +70,7 @@ EXPECTED (cues[1].startTime == '31') OK
 EXPECTED (cues[2].startTime == '121') OK
 
 *** Try to remove the cue again.
-TEST(testTrack.track.removeCue(textCue)) THROWS(DOMException.INVALID_STATE_ERR) OK
+TEST(testTrack.track.removeCue(textCue)) THROWS(DOMException.NOT_FOUND_ERR) OK
 
 *** Add a cue before all the existing cues.
 RUN(testTrack.track.addCue(new TextTrackCue(0, 31, 'I am first')))
index 0c946c2..b484e71 100644 (file)
@@ -85,7 +85,7 @@
                 testExpected("cues[2].startTime", 121);
 
                 consoleWrite("<br>*** Try to remove the cue again.");
-                testException("testTrack.track.removeCue(textCue)", "DOMException.INVALID_STATE_ERR");
+                testException("testTrack.track.removeCue(textCue)", "DOMException.NOT_FOUND_ERR");
 
                 consoleWrite("<br>*** Add a cue before all the existing cues.");
                 run("testTrack.track.addCue(new TextTrackCue(0, 31, 'I am first'))");
index 73803e4..fca8628 100644 (file)
@@ -1,3 +1,17 @@
+2012-11-28  Antoine Quint  <graouts@apple.com>
+
+        Calling .removeCue() for a cue that was never added should raise a NOT_FOUND_ERR
+        https://bugs.webkit.org/show_bug.cgi?id=103412
+
+        Reviewed by Eric Carlson.
+
+        Updating the .removeCue() implementation to match the latest spec. This means we now
+        raise a NOT_FOUND_ERR exception when trying to remove a cue that wasn't present in the
+        cue list instead of a INVALID_STATE_ERR exception like the spec used to mandate.
+
+        * html/track/TextTrack.cpp:
+        (WebCore::TextTrack::removeCue):
+
 2012-11-28  Zeno Albisser  <zeno@webkit.org>
 
         [Qt][Win] Enable usage of QTWEBKIT_PLUGIN_PATH.
index 95ab190..6a6e90b 100644 (file)
@@ -259,20 +259,18 @@ void TextTrack::removeCue(TextTrackCue* cue, ExceptionCode& ec)
     if (!cue)
         return;
 
-    // 4.8.10.12.4 Text track API
+    // 4.8.10.12.5 Text track API
 
     // The removeCue(cue) method of TextTrack objects, when invoked, must run the following steps:
 
-    // 1. If the given cue is not associated with the method's TextTrack 
-    // object's text track, then throw an InvalidStateError exception.
+    // 1. If the given cue is not currently listed in the method's TextTrack 
+    // object's text track's text track list of cues, then throw a NotFoundError exception.
     if (cue->track() != this) {
-        ec = INVALID_STATE_ERR;
+        ec = NOT_FOUND_ERR;
         return;
     }
-    
-    // 2. If the given cue is not currently listed in the method's TextTrack 
-    // object's text track's text track list of cues, then throw a NotFoundError exception.
-    // 3. Remove cue from the method's TextTrack object's text track's text track list of cues.
+
+    // 2. Remove cue from the method's TextTrack object's text track's text track list of cues.
     if (!m_cues || !m_cues->remove(cue)) {
         ec = INVALID_STATE_ERR;
         return;