Changeset 206208 in webkit


Ignore:
Timestamp:
Sep 21, 2016 9:12:33 AM (8 years ago)
Author:
jer.noble@apple.com
Message:

[media-source] Fix imported/w3c/web-platform-tests/media-source/URL-createObjectURL-null.html
https://bugs.webkit.org/show_bug.cgi?id=162299

Reviewed by Eric Carlson.

Source/WebCore:

URL.createObjectURL() should not take an optional parameter (nor return an optional String).
(Ref: https://w3c.github.io/FileAPI/#dfn-createObjectURL)

  • Modules/mediasource/DOMURLMediaSource.cpp:

(WebCore::DOMURLMediaSource::createObjectURL):

  • Modules/mediasource/DOMURLMediaSource.h:
  • Modules/mediasource/DOMURLMediaSource.idl:
  • Modules/mediasource/MediaSourceRegistry.cpp:

(WebCore::MediaSourceRegistry::registerURL):

  • Modules/mediasource/MediaSourceRegistry.h:
  • Modules/mediastream/DOMURLMediaStream.cpp:

(WebCore::DOMURLMediaStream::createObjectURL):

  • Modules/mediastream/DOMURLMediaStream.h:
  • Modules/mediastream/DOMURLMediaStream.idl:
  • Modules/mediastream/MediaStreamRegistry.cpp:

(WebCore::MediaStreamRegistry::registerURL):

  • Modules/mediastream/MediaStreamRegistry.h:
  • fileapi/Blob.cpp:

(WebCore::BlobURLRegistry::registerURL):

  • html/DOMURL.cpp:

(WebCore::DOMURL::createObjectURL):
(WebCore::DOMURL::createPublicURL):

  • html/DOMURL.h:
  • html/DOMURL.idl:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setSrcObject):

  • html/PublicURLManager.cpp:

(WebCore::PublicURLManager::registerURL):

  • html/PublicURLManager.h:
  • html/URLRegistry.h:

LayoutTests:

  • platform/mac/TestExpectations:
Location:
trunk
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r206206 r206208  
     12016-09-20  Jer Noble  <jer.noble@apple.com>
     2
     3        [media-source] Fix imported/w3c/web-platform-tests/media-source/URL-createObjectURL-null.html
     4        https://bugs.webkit.org/show_bug.cgi?id=162299
     5
     6        Reviewed by Eric Carlson.
     7
     8        * platform/mac/TestExpectations:
     9
    1102016-09-21  Youenn Fablet  <youenn@apple.com>
    211
  • trunk/LayoutTests/platform/mac/TestExpectations

    r206186 r206208  
    10441044[ Yosemite+ ] imported/w3c/web-platform-tests/media-source/SourceBuffer-abort.html [ Pass ]
    10451045[ Yosemite+ ] imported/w3c/web-platform-tests/media-source/URL-createObjectURL.html [ Pass ]
     1046[ Yosemite+ ] imported/w3c/web-platform-tests/media-source/URL-createObjectURL-null.html [ Pass ]
    10461047[ Yosemite+ ] imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer-mode.html [ Pass ]
    10471048[ Yosemite+ ] imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer.html [ Pass ]
  • trunk/Source/WebCore/ChangeLog

    r206206 r206208  
     12016-09-20  Jer Noble  <jer.noble@apple.com>
     2
     3        [media-source] Fix imported/w3c/web-platform-tests/media-source/URL-createObjectURL-null.html
     4        https://bugs.webkit.org/show_bug.cgi?id=162299
     5
     6        Reviewed by Eric Carlson.
     7
     8        URL.createObjectURL() should not take an optional parameter (nor return an optional String).
     9        (Ref: https://w3c.github.io/FileAPI/#dfn-createObjectURL)
     10
     11        * Modules/mediasource/DOMURLMediaSource.cpp:
     12        (WebCore::DOMURLMediaSource::createObjectURL):
     13        * Modules/mediasource/DOMURLMediaSource.h:
     14        * Modules/mediasource/DOMURLMediaSource.idl:
     15        * Modules/mediasource/MediaSourceRegistry.cpp:
     16        (WebCore::MediaSourceRegistry::registerURL):
     17        * Modules/mediasource/MediaSourceRegistry.h:
     18        * Modules/mediastream/DOMURLMediaStream.cpp:
     19        (WebCore::DOMURLMediaStream::createObjectURL):
     20        * Modules/mediastream/DOMURLMediaStream.h:
     21        * Modules/mediastream/DOMURLMediaStream.idl:
     22        * Modules/mediastream/MediaStreamRegistry.cpp:
     23        (WebCore::MediaStreamRegistry::registerURL):
     24        * Modules/mediastream/MediaStreamRegistry.h:
     25        * fileapi/Blob.cpp:
     26        (WebCore::BlobURLRegistry::registerURL):
     27        * html/DOMURL.cpp:
     28        (WebCore::DOMURL::createObjectURL):
     29        (WebCore::DOMURL::createPublicURL):
     30        * html/DOMURL.h:
     31        * html/DOMURL.idl:
     32        * html/HTMLMediaElement.cpp:
     33        (WebCore::HTMLMediaElement::setSrcObject):
     34        * html/PublicURLManager.cpp:
     35        (WebCore::PublicURLManager::registerURL):
     36        * html/PublicURLManager.h:
     37        * html/URLRegistry.h:
     38
    1392016-09-21  Youenn Fablet  <youenn@apple.com>
    240
  • trunk/Source/WebCore/Modules/mediasource/DOMURLMediaSource.cpp

    r198002 r206208  
    4040namespace WebCore {
    4141
    42 String DOMURLMediaSource::createObjectURL(ScriptExecutionContext& scriptExecutionContext, MediaSource* source)
     42String DOMURLMediaSource::createObjectURL(ScriptExecutionContext& scriptExecutionContext, MediaSource& source)
    4343{
    4444    // Since WebWorkers cannot obtain MediaSource objects, we should be on the main thread.
    4545    ASSERT(isMainThread());
    46 
    47     if (!source)
    48         return String();
    4946    return DOMURL::createPublicURL(scriptExecutionContext, source);
    5047}
  • trunk/Source/WebCore/Modules/mediasource/DOMURLMediaSource.h

    r198002 r206208  
    4343class DOMURLMediaSource {
    4444public:
    45     static String createObjectURL(ScriptExecutionContext&, MediaSource*);
     45    static String createObjectURL(ScriptExecutionContext&, MediaSource&);
    4646};
    4747
  • trunk/Source/WebCore/Modules/mediasource/DOMURLMediaSource.idl

    r197060 r206208  
    3232]
    3333partial interface DOMURL {
    34     [CallWith=ScriptExecutionContext] static DOMString? createObjectURL(MediaSource? source);
     34    [CallWith=ScriptExecutionContext] static DOMString createObjectURL(MediaSource source);
    3535};
  • trunk/Source/WebCore/Modules/mediasource/MediaSourceRegistry.cpp

    r166053 r206208  
    4747}
    4848
    49 void MediaSourceRegistry::registerURL(SecurityOrigin*, const URL& url, URLRegistrable* registrable)
     49void MediaSourceRegistry::registerURL(SecurityOrigin*, const URL& url, URLRegistrable& registrable)
    5050{
    51     ASSERT(&registrable->registry() == this);
     51    ASSERT(&registrable.registry() == this);
    5252    ASSERT(isMainThread());
    5353
    54     MediaSource* source = static_cast<MediaSource*>(registrable);
    55     source->addedToRegistry();
    56     m_mediaSources.set(url.string(), source);
     54    MediaSource& source = static_cast<MediaSource&>(registrable);
     55    source.addedToRegistry();
     56    m_mediaSources.set(url.string(), &source);
    5757}
    5858
  • trunk/Source/WebCore/Modules/mediasource/MediaSourceRegistry.h

    r204239 r206208  
    5151
    5252    // Registers a blob URL referring to the specified media source.
    53     void registerURL(SecurityOrigin*, const URL&, URLRegistrable*) override;
     53    void registerURL(SecurityOrigin*, const URL&, URLRegistrable&) override;
    5454    void unregisterURL(const URL&) override;
    5555    URLRegistrable* lookup(const String&) const override;
  • trunk/Source/WebCore/Modules/mediastream/DOMURLMediaStream.cpp

    r198002 r206208  
    4141namespace WebCore {
    4242
    43 String DOMURLMediaStream::createObjectURL(ScriptExecutionContext& scriptExecutionContext, MediaStream* stream)
     43String DOMURLMediaStream::createObjectURL(ScriptExecutionContext& scriptExecutionContext, MediaStream& stream)
    4444{
    4545    // Since WebWorkers cannot obtain Stream objects, we should be on the main thread.
    4646    ASSERT(isMainThread());
    47 
    48     if (!stream)
    49         return String();
    5047    return DOMURL::createPublicURL(scriptExecutionContext, stream);
    5148}
  • trunk/Source/WebCore/Modules/mediastream/DOMURLMediaStream.h

    r198002 r206208  
    4343class DOMURLMediaStream {
    4444public:
    45     static String createObjectURL(ScriptExecutionContext&, MediaStream*);
     45    static String createObjectURL(ScriptExecutionContext&, MediaStream&);
    4646};
    4747
  • trunk/Source/WebCore/Modules/mediastream/DOMURLMediaStream.idl

    r197060 r206208  
    3232]
    3333partial interface DOMURL {
    34     [CallWith=ScriptExecutionContext] static DOMString? createObjectURL(MediaStream? stream);
     34    [CallWith=ScriptExecutionContext] static DOMString createObjectURL(MediaStream stream);
    3535};
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamRegistry.cpp

    r194397 r206208  
    4444}
    4545
    46 void MediaStreamRegistry::registerURL(SecurityOrigin*, const URL& url, URLRegistrable* stream)
     46void MediaStreamRegistry::registerURL(SecurityOrigin*, const URL& url, URLRegistrable& stream)
    4747{
    48     ASSERT(&stream->registry() == this);
     48    ASSERT(&stream.registry() == this);
    4949    ASSERT(isMainThread());
    50     m_mediaStreams.set(url.string(), static_cast<MediaStream*>(stream));
     50    m_mediaStreams.set(url.string(), static_cast<MediaStream*>(&stream));
    5151}
    5252
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamRegistry.h

    r204239 r206208  
    4747
    4848    // Registers a blob URL referring to the specified stream data.
    49     void registerURL(SecurityOrigin*, const URL&, URLRegistrable*) override;
     49    void registerURL(SecurityOrigin*, const URL&, URLRegistrable&) override;
    5050    void unregisterURL(const URL&) override;
    5151
  • trunk/Source/WebCore/fileapi/Blob.cpp

    r202747 r206208  
    4343class BlobURLRegistry final : public URLRegistry {
    4444public:
    45     void registerURL(SecurityOrigin*, const URL&, URLRegistrable*) override;
     45    void registerURL(SecurityOrigin*, const URL&, URLRegistrable&) override;
    4646    void unregisterURL(const URL&) override;
    4747
     
    5050
    5151
    52 void BlobURLRegistry::registerURL(SecurityOrigin* origin, const URL& publicURL, URLRegistrable* blob)
     52void BlobURLRegistry::registerURL(SecurityOrigin* origin, const URL& publicURL, URLRegistrable& blob)
    5353{
    54     ASSERT(&blob->registry() == this);
    55     ThreadableBlobRegistry::registerBlobURL(origin, publicURL, static_cast<Blob*>(blob)->url());
     54    ASSERT(&blob.registry() == this);
     55    ThreadableBlobRegistry::registerBlobURL(origin, publicURL, static_cast<Blob&>(blob).url());
    5656}
    5757
  • trunk/Source/WebCore/html/DOMURL.cpp

    r206168 r206208  
    104104}
    105105
    106 String DOMURL::createObjectURL(ScriptExecutionContext& scriptExecutionContext, Blob* blob)
     106String DOMURL::createObjectURL(ScriptExecutionContext& scriptExecutionContext, Blob& blob)
    107107{
    108     if (!blob)
    109         return String();
    110108    return createPublicURL(scriptExecutionContext, blob);
    111109}
    112110
    113 String DOMURL::createPublicURL(ScriptExecutionContext& scriptExecutionContext, URLRegistrable* registrable)
     111String DOMURL::createPublicURL(ScriptExecutionContext& scriptExecutionContext, URLRegistrable& registrable)
    114112{
    115113    URL publicURL = BlobURL::createPublicURL(scriptExecutionContext.securityOrigin());
  • trunk/Source/WebCore/html/DOMURL.h

    r206168 r206208  
    5555    URLSearchParams& searchParams();
    5656
    57     static String createObjectURL(ScriptExecutionContext&, Blob*);
     57    static String createObjectURL(ScriptExecutionContext&, Blob&);
    5858    static void revokeObjectURL(ScriptExecutionContext&, const String&);
    5959
    60     static String createPublicURL(ScriptExecutionContext&, URLRegistrable*);
     60    static String createPublicURL(ScriptExecutionContext&, URLRegistrable&);
    6161private:
    6262    DOMURL(const String& url, const String& base, ExceptionCode&);
  • trunk/Source/WebCore/html/DOMURL.idl

    r204215 r206208  
    3737    ExportMacro=WEBCORE_EXPORT,
    3838] interface DOMURL {
    39     [CallWith=ScriptExecutionContext] static DOMString? createObjectURL(Blob? blob); // FIXME: The return value and the parameter should not be nullable.
     39    [CallWith=ScriptExecutionContext] static DOMString createObjectURL(Blob blob);
    4040    [CallWith=ScriptExecutionContext] static void revokeObjectURL(DOMString url);
    4141};
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r206193 r206208  
    10961096    m_mediaStreamSrcObject = mediaStream;
    10971097    if (mediaStream)
    1098         setSrc(DOMURL::createPublicURL(context, mediaStream));
     1098        setSrc(DOMURL::createPublicURL(context, *mediaStream));
    10991099}
    11001100#endif
  • trunk/Source/WebCore/html/PublicURLManager.cpp

    r192848 r206208  
    4646}
    4747
    48 void PublicURLManager::registerURL(SecurityOrigin* origin, const URL& url, URLRegistrable* registrable)
     48void PublicURLManager::registerURL(SecurityOrigin* origin, const URL& url, URLRegistrable& registrable)
    4949{
    5050    if (m_isStopped)
    5151        return;
    5252
    53     RegistryURLMap::iterator found = m_registryToURL.add(&registrable->registry(), URLSet()).iterator;
     53    RegistryURLMap::iterator found = m_registryToURL.add(&registrable.registry(), URLSet()).iterator;
    5454    found->key->registerURL(origin, url, registrable);
    5555    found->value.add(url.string());
  • trunk/Source/WebCore/html/PublicURLManager.h

    r192848 r206208  
    4848    static std::unique_ptr<PublicURLManager> create(ScriptExecutionContext*);
    4949
    50     void registerURL(SecurityOrigin*, const URL&, URLRegistrable*);
     50    void registerURL(SecurityOrigin*, const URL&, URLRegistrable&);
    5151    void revoke(const URL&);
    5252
  • trunk/Source/WebCore/html/URLRegistry.h

    r159771 r206208  
    5050public:
    5151    virtual ~URLRegistry() { }
    52     virtual void registerURL(SecurityOrigin*, const URL&, URLRegistrable*) = 0;
     52    virtual void registerURL(SecurityOrigin*, const URL&, URLRegistrable&) = 0;
    5353    virtual void unregisterURL(const URL&) = 0;
    5454
Note: See TracChangeset for help on using the changeset viewer.