Changeset 107244 in webkit


Ignore:
Timestamp:
Feb 9, 2012 7:49:13 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Setting media element 'src' attribute to "" should trigger load
https://bugs.webkit.org/show_bug.cgi?id=47907

Patch by Arun Patole <arun.patole@motorola.com> on 2012-02-09
Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-src-empty.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::attributeChanged):Trigger a load, as long as the 'src' attribute is present.

LayoutTests:

  • media/video-src-empty-expected.txt: Added, test for <video> with empty src.
  • media/video-src-empty.html: Added.
  • media/video-src-none-expected.txt:
  • media/video-src-none.html: removed "empty src" test as it is handled in separate test: video-src-empty.html.
  • platform/chromium/test_expectations.txt: media/video-empty-source.html needs a rebaseline.
Location:
trunk
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r107242 r107244  
     12012-02-09  Arun Patole  <arun.patole@motorola.com>
     2
     3        Setting media element 'src' attribute to "" should trigger load
     4        https://bugs.webkit.org/show_bug.cgi?id=47907
     5
     6        Reviewed by Eric Carlson.
     7
     8        * media/video-src-empty-expected.txt: Added, test for <video> with empty src.
     9        * media/video-src-empty.html: Added.
     10        * media/video-src-none-expected.txt:
     11        * media/video-src-none.html: removed "empty src" test as it is handled in separate test: video-src-empty.html.
     12        * platform/chromium/test_expectations.txt: media/video-empty-source.html needs a rebaseline.
     13
    1142012-02-09  Pavel Feldman  <pfeldman@google.com>
    215
  • trunk/LayoutTests/media/video-src-none-expected.txt

    r64085 r107244  
    1  
    21
    3 Network state should remain in NETWORK_EMPTY with empty or missing 'src' attribute.
     2Network state should remain in NETWORK_EMPTY with missing 'src' attribute.
    43** <video> with no src attribute**
    54EXPECTED (videos[0].error == 'null') OK
    65EXPECTED (videos[0].networkState == '0') OK
    76EXPECTED (videos[0].src == '') OK
    8 ** <video> with empty src attribute **
    9 EXPECTED (videos[1].error == 'null') OK
    10 EXPECTED (videos[1].networkState == '0') OK
    11 EXPECTED (relativeURL(videos[1].src) == 'video-src-none.html') OK
    12 
    13 Calling load() with empty 'src' should fire 'error' event, set network state to NETWORK_NO_SOURCE, and set error to MEDIA_ERR_SRC_NOT_SUPPORTED.
    14 'error' event:
    15 EXPECTED (state == 'load() with empty 'src'') OK
    16 EXPECTED ([object HTMLVideoElement] == '[object HTMLVideoElement]') OK
    17 EXPECTED (videos[1].error.code == '4') OK
    18 EXPECTED (videos[1].networkState == '3') OK
    197
    208Calling load() with no 'src' should NOT fire 'error' event, set network state to NETWORK_EMPTY.
  • trunk/LayoutTests/media/video-src-none.html

    r79630 r107244  
    1717            function errorEvent()
    1818            {
    19                 consoleWrite("'error' event:");
    20                 testExpected("state", "load() with empty 'src'");
    21                 testExpected(event.target, videos[1]);
    22                 testExpected("videos[1].error.code", MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED);
    23                 testExpected("videos[1].networkState", HTMLMediaElement.NETWORK_NO_SOURCE);
     19                failTest("<br><i>***'error' event fired***<" + "/i>");
     20            }
     21
     22            function test()
     23            {
     24                videos = document.querySelectorAll('video');
     25
     26                consoleWrite("<br><i>Network state should remain in NETWORK_EMPTY with missing 'src' attribute.<" + "/i>");
     27                consoleWrite("** &lt;video&gt; with no src attribute**");
     28                testExpected("videos[0].error", null);
     29                testExpected("videos[0].networkState", HTMLMediaElement.NETWORK_EMPTY);
     30                testExpected("videos[0].src", "");
    2431
    2532                consoleWrite("<br><i>Calling load() with no 'src' should NOT fire 'error' event, set network state to NETWORK_EMPTY.<" + "/i>");
     
    2936                setTimeout(someTimeLater, 100) ;
    3037            }
    31 
    32             function test()
    33             {
    34                 videos = document.querySelectorAll('video');
    35 
    36                 consoleWrite("<br><i>Network state should remain in NETWORK_EMPTY with empty or missing 'src' attribute.<" + "/i>");
    37                 consoleWrite("** &lt;video&gt; with no src attribute**");
    38                 testExpected("videos[0].error", null);
    39                 testExpected("videos[0].networkState", HTMLMediaElement.NETWORK_EMPTY);
    40                 testExpected("videos[0].src", "");
    41 
    42                 consoleWrite("** &lt;video&gt; with empty src attribute **");
    43                 testExpected("videos[1].error", null);
    44                 testExpected("videos[1].networkState", HTMLMediaElement.NETWORK_EMPTY);
    45                 testExpected("relativeURL(videos[1].src)", "video-src-none.html");
    46 
    47                 consoleWrite("<br><" + "i>Calling load() with empty 'src' should fire 'error' event, set network state to NETWORK_NO_SOURCE, and set error to MEDIA_ERR_SRC_NOT_SUPPORTED.<" + "/i>");
    48                 state = "load() with empty 'src'";
    49                 videos[1].load();
    50             }
    5138        </script>
    5239    </head>
     
    5441    <body onload="setTimeout(test, 100)">
    5542        <video width=320 height=60 controls onerror="errorEvent()"></video>
    56         <br>
    57         <video width=320 height=60 controls src="" onerror="errorEvent()"></video>
    5843    </body>
    5944</html>
  • trunk/LayoutTests/platform/chromium/test_expectations.txt

    r107241 r107244  
    40134013// Some of the new baselines don't make any sense.
    40144014BUGWK78175 DEBUG SNOWLEOPARD : compositing/overflow/overflow-scaled-descendant-overlapping.html = IMAGE
     4015
     4016// Just needs a rebaseline.
     4017BUGWK47907 : media/video-empty-source.html = IMAGE+TEXT
  • trunk/Source/WebCore/ChangeLog

    r107243 r107244  
     12012-02-09  Arun Patole  <arun.patole@motorola.com>
     2
     3        Setting media element 'src' attribute to "" should trigger load
     4        https://bugs.webkit.org/show_bug.cgi?id=47907
     5
     6        Reviewed by Eric Carlson.
     7
     8        Test: media/video-src-empty.html
     9
     10        * html/HTMLMediaElement.cpp:
     11        (WebCore::HTMLMediaElement::attributeChanged):Trigger a load, as long as the 'src' attribute is present.
     12
    1132012-02-09  Jonathan Backer  <backer@chromium.org>
    214
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r106876 r107244  
    328328    if (attrName == srcAttr) {
    329329        // Trigger a reload, as long as the 'src' attribute is present.
    330         if (!getAttribute(srcAttr).isEmpty())
     330        if (fastHasAttribute(srcAttr))
    331331            scheduleLoad(MediaResource);
    332332    } else if (attrName == controlsAttr)
Note: See TracChangeset for help on using the changeset viewer.