Changeset 246470 in webkit
- Timestamp:
- Jun 15, 2019 9:47:05 PM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r246468 r246470 1 2019-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 1 31 2019-06-15 Zalan Bujtas <zalan@apple.com> 2 32 -
trunk/Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp
r246436 r246470 37 37 WTF_MAKE_ISO_ALLOCATED_IMPL(CanvasCaptureMediaStreamTrack); 38 38 39 Ref<CanvasCaptureMediaStreamTrack> CanvasCaptureMediaStreamTrack::create( ScriptExecutionContext& context, Ref<HTMLCanvasElement>&& canvas, Optional<double>&& frameRequestRate)39 Ref<CanvasCaptureMediaStreamTrack> CanvasCaptureMediaStreamTrack::create(Document& document, Ref<HTMLCanvasElement>&& canvas, Optional<double>&& frameRequestRate) 40 40 { 41 41 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 45 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(Document& document, Ref<HTMLCanvasElement>&& canvas, Ref<CanvasCaptureMediaStreamTrack::Source>&& source) 46 : MediaStreamTrack(document, MediaStreamTrackPrivate::create(document.logger(), source.copyRef())) 52 47 , m_canvas(WTFMove(canvas)) 53 48 { 54 49 } 55 50 56 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack( ScriptExecutionContext& context, Ref<HTMLCanvasElement>&& canvas, Ref<MediaStreamTrackPrivate>&& privateTrack)57 : MediaStreamTrack( context, WTFMove(privateTrack))51 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(Document& document, Ref<HTMLCanvasElement>&& canvas, Ref<MediaStreamTrackPrivate>&& privateTrack) 52 : MediaStreamTrack(document, WTFMove(privateTrack)) 58 53 , m_canvas(WTFMove(canvas)) 59 54 { … … 199 194 return nullptr; 200 195 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())); 202 197 } 203 198 -
trunk/Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.h
r243887 r246470 34 34 namespace WebCore { 35 35 36 class Document; 36 37 class HTMLCanvasElement; 37 38 class Image; 38 class ScriptExecutionContext;39 39 40 40 class CanvasCaptureMediaStreamTrack final : public MediaStreamTrack { 41 41 WTF_MAKE_ISO_ALLOCATED(CanvasCaptureMediaStreamTrack); 42 42 public: 43 static Ref<CanvasCaptureMediaStreamTrack> create( ScriptExecutionContext&, Ref<HTMLCanvasElement>&&, Optional<double>&& frameRequestRate);43 static Ref<CanvasCaptureMediaStreamTrack> create(Document&, Ref<HTMLCanvasElement>&&, Optional<double>&& frameRequestRate); 44 44 45 45 HTMLCanvasElement& canvas() { return m_canvas.get(); } … … 83 83 }; 84 84 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>&&); 87 87 88 88 bool isCanvas() const final { return true; } -
trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp
r246436 r246470 49 49 WTF_MAKE_ISO_ALLOCATED_IMPL(MediaStream); 50 50 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))); 51 Ref<MediaStream> MediaStream::create(Document& document) 52 { 53 return MediaStream::create(document, MediaStreamPrivate::create(document.logger(), { })); 54 } 55 56 Ref<MediaStream> MediaStream::create(Document& document, MediaStream& stream) 57 { 58 return adoptRef(*new MediaStream(document, stream.getTracks())); 59 } 60 61 Ref<MediaStream> MediaStream::create(Document& document, const MediaStreamTrackVector& tracks) 62 { 63 return adoptRef(*new MediaStream(document, tracks)); 64 } 65 66 Ref<MediaStream> MediaStream::create(Document& document, Ref<MediaStreamPrivate>&& streamPrivate) 67 { 68 return adoptRef(*new MediaStream(document, WTFMove(streamPrivate))); 74 69 } 75 70 … … 83 78 } 84 79 85 MediaStream::MediaStream( ScriptExecutionContext& context, const MediaStreamTrackVector& tracks)86 : ActiveDOMObject( &context)87 , m_private(MediaStreamPrivate::create(document ()->logger(), createTrackPrivateVector(tracks)))80 MediaStream::MediaStream(Document& document, const MediaStreamTrackVector& tracks) 81 : ActiveDOMObject(document) 82 , m_private(MediaStreamPrivate::create(document.logger(), createTrackPrivateVector(tracks))) 88 83 , m_mediaSession(PlatformMediaSession::create(*this)) 89 84 { … … 102 97 } 103 98 104 MediaStream::MediaStream( ScriptExecutionContext& context, Ref<MediaStreamPrivate>&& streamPrivate)105 : ActiveDOMObject( &context)99 MediaStream::MediaStream(Document& document, Ref<MediaStreamPrivate>&& streamPrivate) 100 : ActiveDOMObject(document) 106 101 , m_private(WTFMove(streamPrivate)) 107 102 , m_mediaSession(PlatformMediaSession::create(*this)) … … 114 109 115 110 for (auto& trackPrivate : m_private->tracks()) { 116 auto track = MediaStreamTrack::create( context, *trackPrivate);111 auto track = MediaStreamTrack::create(document, *trackPrivate); 117 112 track->addObserver(*this); 118 113 m_trackSet.add(track->id(), WTFMove(track)); … … 146 141 clonedTracks.uncheckedAppend(track->clone()); 147 142 148 return MediaStream::create(* scriptExecutionContext(), clonedTracks);143 return MediaStream::create(*document(), clonedTracks); 149 144 } 150 145 -
trunk/Source/WebCore/Modules/mediastream/MediaStream.h
r246436 r246470 69 69 }; 70 70 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>&&); 75 75 virtual ~MediaStream(); 76 76 … … 122 122 123 123 protected: 124 MediaStream( ScriptExecutionContext&, const MediaStreamTrackVector&);125 MediaStream( ScriptExecutionContext&, Ref<MediaStreamPrivate>&&);124 MediaStream(Document&, const MediaStreamTrackVector&); 125 MediaStream(Document&, Ref<MediaStreamPrivate>&&); 126 126 127 127 #if !RELEASE_LOG_DISABLED -
trunk/Source/WebCore/Modules/mediastream/MediaStream.idl
r221277 r246470 29 29 Constructor(MediaStream stream), 30 30 Constructor(sequence<MediaStreamTrack> tracks), 31 ConstructorCallWith= ScriptExecutionContext,31 ConstructorCallWith=Document, 32 32 ExportToWrappedFunction, 33 33 PrivateIdentifier, -
trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp
r246436 r246470 234 234 privateStream->monitorOrientation(downcast<Document>(m_scriptExecutionContext)->orientationNotifier()); 235 235 236 auto stream = MediaStream::create(* m_scriptExecutionContext, privateStream.releaseNonNull());236 auto stream = MediaStream::create(*downcast<Document>(m_scriptExecutionContext), privateStream.releaseNonNull()); 237 237 if (stream->getTracks().isEmpty()) { 238 238 deny(MediaAccessDenialReason::HardwareError); -
trunk/Source/WebCore/html/HTMLCanvasElement.cpp
r246285 r246470 786 786 } 787 787 788 ExceptionOr<Ref<MediaStream>> HTMLCanvasElement::captureStream( ScriptExecutionContext& context, Optional<double>&& frameRequestRate)788 ExceptionOr<Ref<MediaStream>> HTMLCanvasElement::captureStream(Document& document, Optional<double>&& frameRequestRate) 789 789 { 790 790 if (!originClean()) 791 791 return Exception(SecurityError, "Canvas is tainted"_s); 792 792 if (RuntimeEnabledFeatures::sharedFeatures().webAPIStatisticsEnabled()) 793 ResourceLoadObserver::shared().logCanvasRead( document());793 ResourceLoadObserver::shared().logCanvasRead(this->document()); 794 794 795 795 if (frameRequestRate && frameRequestRate.value() < 0) 796 796 return Exception(NotSupportedError, "frameRequestRate is negative"_s); 797 797 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); 800 800 stream->addTrack(track); 801 801 return stream; -
trunk/Source/WebCore/html/HTMLCanvasElement.h
r243820 r246470 122 122 #if ENABLE(MEDIA_STREAM) 123 123 RefPtr<MediaSample> toMediaSample(); 124 ExceptionOr<Ref<MediaStream>> captureStream( ScriptExecutionContext&, Optional<double>&& frameRequestRate);124 ExceptionOr<Ref<MediaStream>> captureStream(Document&, Optional<double>&& frameRequestRate); 125 125 #endif 126 126 -
trunk/Source/WebCore/html/HTMLCanvasElement.idl
r243666 r246470 51 51 [CallWith=ScriptExecutionContext, MayThrowException] void toBlob(BlobCallback callback, optional DOMString type, optional any quality); 52 52 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); 54 54 };
Note: See TracChangeset
for help on using the changeset viewer.