Changeset 246470 in webkit


Ignore:
Timestamp:
Jun 15, 2019 9:47:05 PM (5 years ago)
Author:
youenn@apple.com
Message:

Make MediaStream constructor take a Document instead of a ScriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=198873

Reviewed by Darin Adler.

Update MediaStream constructors and call site to take a Document&.
Make the same for creation of CanvasCaptureMediaStreamTrack.
No observable change of behavior.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::create):
(WebCore::CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack):
(WebCore::loggerFromContext): Deleted.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::create):
(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::clone):
(WebCore::loggerFromContext): Deleted.

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::captureStream):

  • html/HTMLCanvasElement.h:
  • html/HTMLCanvasElement.idl:
Location:
trunk/Source/WebCore
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r246468 r246470  
     12019-06-15  Youenn Fablet  <youenn@apple.com>
     2
     3        Make MediaStream constructor take a Document instead of a ScriptExecutionContext
     4        https://bugs.webkit.org/show_bug.cgi?id=198873
     5
     6        Reviewed by Darin Adler.
     7
     8        Update MediaStream constructors and call site to take a Document&.
     9        Make the same for creation of CanvasCaptureMediaStreamTrack.
     10        No observable change of behavior.
     11
     12        * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
     13        (WebCore::CanvasCaptureMediaStreamTrack::create):
     14        (WebCore::CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack):
     15        (WebCore::loggerFromContext): Deleted.
     16        * Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
     17        * Modules/mediastream/MediaStream.cpp:
     18        (WebCore::MediaStream::create):
     19        (WebCore::MediaStream::MediaStream):
     20        (WebCore::MediaStream::clone):
     21        (WebCore::loggerFromContext): Deleted.
     22        * Modules/mediastream/MediaStream.h:
     23        * Modules/mediastream/MediaStream.idl:
     24        * Modules/mediastream/UserMediaRequest.cpp:
     25        (WebCore::UserMediaRequest::allow):
     26        * html/HTMLCanvasElement.cpp:
     27        (WebCore::HTMLCanvasElement::captureStream):
     28        * html/HTMLCanvasElement.h:
     29        * html/HTMLCanvasElement.idl:
     30
    1312019-06-15  Zalan Bujtas  <zalan@apple.com>
    232
  • trunk/Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp

    r246436 r246470  
    3737WTF_MAKE_ISO_ALLOCATED_IMPL(CanvasCaptureMediaStreamTrack);
    3838
    39 Ref<CanvasCaptureMediaStreamTrack> CanvasCaptureMediaStreamTrack::create(ScriptExecutionContext& context, Ref<HTMLCanvasElement>&& canvas, Optional<double>&& frameRequestRate)
     39Ref<CanvasCaptureMediaStreamTrack> CanvasCaptureMediaStreamTrack::create(Document& document, Ref<HTMLCanvasElement>&& canvas, Optional<double>&& frameRequestRate)
    4040{
    4141    auto source = CanvasCaptureMediaStreamTrack::Source::create(canvas.get(), WTFMove(frameRequestRate));
    42     return adoptRef(*new CanvasCaptureMediaStreamTrack(context, WTFMove(canvas), WTFMove(source)));
    43 }
    44 
    45 static inline Ref<const Logger> loggerFromContext(ScriptExecutionContext& context)
    46 {
    47     return downcast<Document>(context).logger();
    48 }
    49 
    50 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(ScriptExecutionContext& context, Ref<HTMLCanvasElement>&& canvas, Ref<CanvasCaptureMediaStreamTrack::Source>&& source)
    51     : MediaStreamTrack(context, MediaStreamTrackPrivate::create(loggerFromContext(context), source.copyRef()))
     42    return adoptRef(*new CanvasCaptureMediaStreamTrack(document, WTFMove(canvas), WTFMove(source)));
     43}
     44
     45CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(Document& document, Ref<HTMLCanvasElement>&& canvas, Ref<CanvasCaptureMediaStreamTrack::Source>&& source)
     46    : MediaStreamTrack(document, MediaStreamTrackPrivate::create(document.logger(), source.copyRef()))
    5247    , m_canvas(WTFMove(canvas))
    5348{
    5449}
    5550
    56 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(ScriptExecutionContext& context, Ref<HTMLCanvasElement>&& canvas, Ref<MediaStreamTrackPrivate>&& privateTrack)
    57     : MediaStreamTrack(context, WTFMove(privateTrack))
     51CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(Document& document, Ref<HTMLCanvasElement>&& canvas, Ref<MediaStreamTrackPrivate>&& privateTrack)
     52    : MediaStreamTrack(document, WTFMove(privateTrack))
    5853    , m_canvas(WTFMove(canvas))
    5954{
     
    199194        return nullptr;
    200195   
    201     return adoptRef(*new CanvasCaptureMediaStreamTrack(*scriptExecutionContext(), m_canvas.copyRef(), m_private->clone()));
     196    return adoptRef(*new CanvasCaptureMediaStreamTrack(downcast<Document>(*scriptExecutionContext()), m_canvas.copyRef(), m_private->clone()));
    202197}
    203198
  • trunk/Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.h

    r243887 r246470  
    3434namespace WebCore {
    3535
     36class Document;
    3637class HTMLCanvasElement;
    3738class Image;
    38 class ScriptExecutionContext;
    3939
    4040class CanvasCaptureMediaStreamTrack final : public MediaStreamTrack {
    4141    WTF_MAKE_ISO_ALLOCATED(CanvasCaptureMediaStreamTrack);
    4242public:
    43     static Ref<CanvasCaptureMediaStreamTrack> create(ScriptExecutionContext&, Ref<HTMLCanvasElement>&&, Optional<double>&& frameRequestRate);
     43    static Ref<CanvasCaptureMediaStreamTrack> create(Document&, Ref<HTMLCanvasElement>&&, Optional<double>&& frameRequestRate);
    4444
    4545    HTMLCanvasElement& canvas() { return m_canvas.get(); }
     
    8383    };
    8484
    85     CanvasCaptureMediaStreamTrack(ScriptExecutionContext&, Ref<HTMLCanvasElement>&&, Ref<Source>&&);
    86     CanvasCaptureMediaStreamTrack(ScriptExecutionContext&, Ref<HTMLCanvasElement>&&, Ref<MediaStreamTrackPrivate>&&);
     85    CanvasCaptureMediaStreamTrack(Document&, Ref<HTMLCanvasElement>&&, Ref<Source>&&);
     86    CanvasCaptureMediaStreamTrack(Document&, Ref<HTMLCanvasElement>&&, Ref<MediaStreamTrackPrivate>&&);
    8787
    8888    bool isCanvas() const final { return true; }
  • trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp

    r246436 r246470  
    4949WTF_MAKE_ISO_ALLOCATED_IMPL(MediaStream);
    5050
    51 static inline Ref<const Logger> loggerFromContext(ScriptExecutionContext& context)
    52 {
    53     return downcast<Document>(context).logger();
    54 }
    55 
    56 Ref<MediaStream> MediaStream::create(ScriptExecutionContext& context)
    57 {
    58     return MediaStream::create(context, MediaStreamPrivate::create(loggerFromContext(context), { }));
    59 }
    60 
    61 Ref<MediaStream> MediaStream::create(ScriptExecutionContext& context, MediaStream& stream)
    62 {
    63     return adoptRef(*new MediaStream(context, stream.getTracks()));
    64 }
    65 
    66 Ref<MediaStream> MediaStream::create(ScriptExecutionContext& context, const MediaStreamTrackVector& tracks)
    67 {
    68     return adoptRef(*new MediaStream(context, tracks));
    69 }
    70 
    71 Ref<MediaStream> MediaStream::create(ScriptExecutionContext& context, Ref<MediaStreamPrivate>&& streamPrivate)
    72 {
    73     return adoptRef(*new MediaStream(context, WTFMove(streamPrivate)));
     51Ref<MediaStream> MediaStream::create(Document& document)
     52{
     53    return MediaStream::create(document, MediaStreamPrivate::create(document.logger(), { }));
     54}
     55
     56Ref<MediaStream> MediaStream::create(Document& document, MediaStream& stream)
     57{
     58    return adoptRef(*new MediaStream(document, stream.getTracks()));
     59}
     60
     61Ref<MediaStream> MediaStream::create(Document& document, const MediaStreamTrackVector& tracks)
     62{
     63    return adoptRef(*new MediaStream(document, tracks));
     64}
     65
     66Ref<MediaStream> MediaStream::create(Document& document, Ref<MediaStreamPrivate>&& streamPrivate)
     67{
     68    return adoptRef(*new MediaStream(document, WTFMove(streamPrivate)));
    7469}
    7570
     
    8378}
    8479
    85 MediaStream::MediaStream(ScriptExecutionContext& context, const MediaStreamTrackVector& tracks)
    86     : ActiveDOMObject(&context)
    87     , m_private(MediaStreamPrivate::create(document()->logger(), createTrackPrivateVector(tracks)))
     80MediaStream::MediaStream(Document& document, const MediaStreamTrackVector& tracks)
     81    : ActiveDOMObject(document)
     82    , m_private(MediaStreamPrivate::create(document.logger(), createTrackPrivateVector(tracks)))
    8883    , m_mediaSession(PlatformMediaSession::create(*this))
    8984{
     
    10297}
    10398
    104 MediaStream::MediaStream(ScriptExecutionContext& context, Ref<MediaStreamPrivate>&& streamPrivate)
    105     : ActiveDOMObject(&context)
     99MediaStream::MediaStream(Document& document, Ref<MediaStreamPrivate>&& streamPrivate)
     100    : ActiveDOMObject(document)
    106101    , m_private(WTFMove(streamPrivate))
    107102    , m_mediaSession(PlatformMediaSession::create(*this))
     
    114109
    115110    for (auto& trackPrivate : m_private->tracks()) {
    116         auto track = MediaStreamTrack::create(context, *trackPrivate);
     111        auto track = MediaStreamTrack::create(document, *trackPrivate);
    117112        track->addObserver(*this);
    118113        m_trackSet.add(track->id(), WTFMove(track));
     
    146141        clonedTracks.uncheckedAppend(track->clone());
    147142
    148     return MediaStream::create(*scriptExecutionContext(), clonedTracks);
     143    return MediaStream::create(*document(), clonedTracks);
    149144}
    150145
  • trunk/Source/WebCore/Modules/mediastream/MediaStream.h

    r246436 r246470  
    6969    };
    7070
    71     static Ref<MediaStream> create(ScriptExecutionContext&);
    72     static Ref<MediaStream> create(ScriptExecutionContext&, MediaStream&);
    73     static Ref<MediaStream> create(ScriptExecutionContext&, const MediaStreamTrackVector&);
    74     static Ref<MediaStream> create(ScriptExecutionContext&, Ref<MediaStreamPrivate>&&);
     71    static Ref<MediaStream> create(Document&);
     72    static Ref<MediaStream> create(Document&, MediaStream&);
     73    static Ref<MediaStream> create(Document&, const MediaStreamTrackVector&);
     74    static Ref<MediaStream> create(Document&, Ref<MediaStreamPrivate>&&);
    7575    virtual ~MediaStream();
    7676
     
    122122
    123123protected:
    124     MediaStream(ScriptExecutionContext&, const MediaStreamTrackVector&);
    125     MediaStream(ScriptExecutionContext&, Ref<MediaStreamPrivate>&&);
     124    MediaStream(Document&, const MediaStreamTrackVector&);
     125    MediaStream(Document&, Ref<MediaStreamPrivate>&&);
    126126
    127127#if !RELEASE_LOG_DISABLED
  • trunk/Source/WebCore/Modules/mediastream/MediaStream.idl

    r221277 r246470  
    2929    Constructor(MediaStream stream),
    3030    Constructor(sequence<MediaStreamTrack> tracks),
    31     ConstructorCallWith=ScriptExecutionContext,
     31    ConstructorCallWith=Document,
    3232    ExportToWrappedFunction,
    3333    PrivateIdentifier,
  • trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp

    r246436 r246470  
    234234        privateStream->monitorOrientation(downcast<Document>(m_scriptExecutionContext)->orientationNotifier());
    235235
    236         auto stream = MediaStream::create(*m_scriptExecutionContext, privateStream.releaseNonNull());
     236        auto stream = MediaStream::create(*downcast<Document>(m_scriptExecutionContext), privateStream.releaseNonNull());
    237237        if (stream->getTracks().isEmpty()) {
    238238            deny(MediaAccessDenialReason::HardwareError);
  • trunk/Source/WebCore/html/HTMLCanvasElement.cpp

    r246285 r246470  
    786786}
    787787
    788 ExceptionOr<Ref<MediaStream>> HTMLCanvasElement::captureStream(ScriptExecutionContext& context, Optional<double>&& frameRequestRate)
     788ExceptionOr<Ref<MediaStream>> HTMLCanvasElement::captureStream(Document& document, Optional<double>&& frameRequestRate)
    789789{
    790790    if (!originClean())
    791791        return Exception(SecurityError, "Canvas is tainted"_s);
    792792    if (RuntimeEnabledFeatures::sharedFeatures().webAPIStatisticsEnabled())
    793         ResourceLoadObserver::shared().logCanvasRead(document());
     793        ResourceLoadObserver::shared().logCanvasRead(this->document());
    794794
    795795    if (frameRequestRate && frameRequestRate.value() < 0)
    796796        return Exception(NotSupportedError, "frameRequestRate is negative"_s);
    797797
    798     auto track = CanvasCaptureMediaStreamTrack::create(context, *this, WTFMove(frameRequestRate));
    799     auto stream =  MediaStream::create(context);
     798    auto track = CanvasCaptureMediaStreamTrack::create(document, *this, WTFMove(frameRequestRate));
     799    auto stream =  MediaStream::create(document);
    800800    stream->addTrack(track);
    801801    return stream;
  • trunk/Source/WebCore/html/HTMLCanvasElement.h

    r243820 r246470  
    122122#if ENABLE(MEDIA_STREAM)
    123123    RefPtr<MediaSample> toMediaSample();
    124     ExceptionOr<Ref<MediaStream>> captureStream(ScriptExecutionContext&, Optional<double>&& frameRequestRate);
     124    ExceptionOr<Ref<MediaStream>> captureStream(Document&, Optional<double>&& frameRequestRate);
    125125#endif
    126126
  • trunk/Source/WebCore/html/HTMLCanvasElement.idl

    r243666 r246470  
    5151    [CallWith=ScriptExecutionContext, MayThrowException] void toBlob(BlobCallback callback, optional DOMString type, optional any quality);
    5252
    53     [Conditional=MEDIA_STREAM, CallWith=ScriptExecutionContext, MayThrowException, NewObject] MediaStream captureStream(optional double frameRequestRate);
     53    [Conditional=MEDIA_STREAM, CallWith=Document, MayThrowException, NewObject] MediaStream captureStream(optional double frameRequestRate);
    5454};
Note: See TracChangeset for help on using the changeset viewer.