Title: [245463] branches/safari-607-branch/Source/WebCore
- Revision
- 245463
- Author
- [email protected]
- Date
- 2019-05-17 08:20:22 -0700 (Fri, 17 May 2019)
Log Message
Apply patch. rdar://problem/50352476
Modified Paths
Diff
Modified: branches/safari-607-branch/Source/WebCore/ChangeLog (245462 => 245463)
--- branches/safari-607-branch/Source/WebCore/ChangeLog 2019-05-17 15:07:14 UTC (rev 245462)
+++ branches/safari-607-branch/Source/WebCore/ChangeLog 2019-05-17 15:20:22 UTC (rev 245463)
@@ -1,3 +1,24 @@
+2019-05-17 Alan Coon <[email protected]>
+
+ Apply patch. rdar://problem/50871594
+
+ 2019-05-17 youenn fablet <[email protected]>
+
+ REGRESSION(245357): Netflix, Hulu, Amazon, YouTube Rental video playback crash at com.apple.WebCore: WebCore::WebKitMediaKeys::setMediaElement
+ rdar://problem/50871594
+
+ Do not cast WeakPtr<MediaProducer> into WeakPtr<HTMLMediaElement>.
+ Instead, make HTMLMediaElement again a CanMakeWeakPtr<HTMLMediaElement>
+ and directly create WeakPtr<HTMLMediaElement>.
+
+ For MediaStreamTrack, rely on weakThis to know whether 'this' is still alive and use 'this' directly.
+
+ Manually tested.
+
+ * Modules/mediastream/MediaStreamTrack.cpp:
+ (WebCore::MediaStreamTrack::applyConstraints):
+ * html/HTMLMediaElement.h:
+
2019-05-16 Kocsen Chung <[email protected]>
Cherry-pick r244632. rdar://problem/50344384
Modified: branches/safari-607-branch/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (245462 => 245463)
--- branches/safari-607-branch/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp 2019-05-17 15:07:14 UTC (rev 245462)
+++ branches/safari-607-branch/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp 2019-05-17 15:20:22 UTC (rev 245463)
@@ -331,16 +331,16 @@
m_promise = WTFMove(promise);
auto weakThis = makeWeakPtr(*this);
- auto failureHandler = [weakThis] (const String& failedConstraint, const String& message) {
- if (!weakThis || !weakThis->m_promise)
+ auto failureHandler = [weakThis, this] (const String& failedConstraint, const String& message) {
+ if (!weakThis || !m_promise)
return;
- weakThis->m_promise->rejectType<IDLInterface<OverconstrainedError>>(OverconstrainedError::create(failedConstraint, message).get());
+ m_promise->rejectType<IDLInterface<OverconstrainedError>>(OverconstrainedError::create(failedConstraint, message).get());
};
- auto successHandler = [weakThis, constraints] () {
- if (!weakThis || !weakThis->m_promise)
+ auto successHandler = [weakThis, this, constraints] () {
+ if (!weakThis || !m_promise)
return;
- weakThis->m_promise->resolve();
- weakThis->m_constraints = constraints.valueOr(MediaTrackConstraints { });
+ m_promise->resolve();
+ m_constraints = constraints.valueOr(MediaTrackConstraints { });
};
m_private->applyConstraints(createMediaConstraints(constraints), WTFMove(successHandler), WTFMove(failureHandler));
}
Modified: branches/safari-607-branch/Source/WebCore/html/HTMLMediaElement.h (245462 => 245463)
--- branches/safari-607-branch/Source/WebCore/html/HTMLMediaElement.h 2019-05-17 15:07:14 UTC (rev 245462)
+++ branches/safari-607-branch/Source/WebCore/html/HTMLMediaElement.h 2019-05-17 15:20:22 UTC (rev 245463)
@@ -126,10 +126,11 @@
: public HTMLElement
, public ActiveDOMObject
, public MediaControllerInterface
+ , public CanMakeWeakPtr<HTMLMediaElement>
, public PlatformMediaSessionClient
, private MediaCanStartListener
, private MediaPlayerClient
- , public MediaProducer
+ , private MediaProducer
, private VisibilityChangeClient
, private ApplicationStateChangeListener
#if ENABLE(VIDEO_TRACK)
@@ -187,6 +188,8 @@
MediaPlayerEnums::VideoGravity videoFullscreenGravity() const { return m_videoFullscreenGravity; }
#endif
+ using CanMakeWeakPtr<HTMLMediaElement>::weakPtrFactory;
+
void scheduleCheckPlaybackTargetCompatability();
void checkPlaybackTargetCompatablity();
void scheduleResolvePendingPlayPromises();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes