Unreviewed, rolling out r197204, r197207, r197211, r197217,
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 27 Feb 2016 21:05:24 +0000 (21:05 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 27 Feb 2016 21:05:24 +0000 (21:05 +0000)
r197218, and r197219.
https://bugs.webkit.org/show_bug.cgi?id=154780

Caused crashes in WebVideoFullscreenManagerProxy (Requested by
ap on #webkit).

Reverted changesets:

"Add support for playbackControlsManager"
https://bugs.webkit.org/show_bug.cgi?id=154742
http://trac.webkit.org/changeset/197204

"Attempted build fix."
http://trac.webkit.org/changeset/197207

"Attempted build fix."
http://trac.webkit.org/changeset/197211

"Attempted 32-bit build fix."
http://trac.webkit.org/changeset/197217

"Another 32-bit build fix."
http://trac.webkit.org/changeset/197218

"32-bit!!!"
http://trac.webkit.org/changeset/197219

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@197259 268f45cc-cd09-0410-ab3c-d52691b4dbfc

24 files changed:
Source/WebCore/ChangeLog
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/html/HTMLMediaElement.cpp
Source/WebCore/page/ChromeClient.h
Source/WebCore/platform/cf/CoreMediaSoftLink.cpp
Source/WebCore/platform/cf/CoreMediaSoftLink.h
Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.h
Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.mm
Source/WebCore/platform/spi/cocoa/AVKitSPI.h
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h
Source/WebKit2/UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in
Source/WebKit2/UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm
Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h
Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm
Source/WebKit2/UIProcess/PageClient.h
Source/WebKit2/UIProcess/WebPageProxy.cpp
Source/WebKit2/UIProcess/WebPageProxy.h
Source/WebKit2/UIProcess/mac/PageClientImpl.h
Source/WebKit2/UIProcess/mac/PageClientImpl.mm
Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
Source/WebKit2/WebProcess/cocoa/WebVideoFullscreenManager.h
Source/WebKit2/WebProcess/cocoa/WebVideoFullscreenManager.mm

index 3b78da8..8ae75ca 100644 (file)
@@ -1,3 +1,33 @@
+2016-02-27  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r197204, r197207, r197211, r197217,
+        r197218, and r197219.
+        https://bugs.webkit.org/show_bug.cgi?id=154780
+
+        Caused crashes in WebVideoFullscreenManagerProxy (Requested by
+        ap on #webkit).
+
+        Reverted changesets:
+
+        "Add support for playbackControlsManager"
+        https://bugs.webkit.org/show_bug.cgi?id=154742
+        http://trac.webkit.org/changeset/197204
+
+        "Attempted build fix."
+        http://trac.webkit.org/changeset/197207
+
+        "Attempted build fix."
+        http://trac.webkit.org/changeset/197211
+
+        "Attempted 32-bit build fix."
+        http://trac.webkit.org/changeset/197217
+
+        "Another 32-bit build fix."
+        http://trac.webkit.org/changeset/197218
+
+        "32-bit!!!"
+        http://trac.webkit.org/changeset/197219
+
 2016-02-27  Chris Dumez  <cdumez@apple.com>
 
         Optimize parseHTMLInteger()
index 0cae35d..e0e6dbf 100644 (file)
                07EE76EC1BE96DB000F89133 /* MockRealtimeVideoSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 07EE76EA1BE96DB000F89133 /* MockRealtimeVideoSource.h */; };
                07EE76EF1BEA619800F89133 /* MockRealtimeVideoSourceMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 07EE76ED1BEA619800F89133 /* MockRealtimeVideoSourceMac.h */; };
                07EE76F01BEA619800F89133 /* MockRealtimeVideoSourceMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07EE76EE1BEA619800F89133 /* MockRealtimeVideoSourceMac.mm */; };
-               07F0B97A1AC5DB3300E535D9 /* AVKitSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 07F0B9791AC5DB3300E535D9 /* AVKitSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
+               07F0B97A1AC5DB3300E535D9 /* AVKitSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 07F0B9791AC5DB3300E535D9 /* AVKitSPI.h */; };
                07F0B97C1AC5DB4600E535D9 /* AVFoundationSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 07F0B97B1AC5DB4600E535D9 /* AVFoundationSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
                07F876841AD580F900905849 /* MediaPlaybackTargetContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 07F876831AD4A94500905849 /* MediaPlaybackTargetContext.h */; settings = {ATTRIBUTES = (Private, ); }; };
                07F944161864D046005D31CB /* PlatformMediaSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CDAE8C081746B95700532D78 /* PlatformMediaSessionManager.h */; settings = {ATTRIBUTES = (Private, ); }; };
index 7607787..aab2dbb 100644 (file)
@@ -2955,14 +2955,6 @@ void HTMLMediaElement::playInternal()
         return;
     }
 
-    // FIXME: rdar://problem/23833752 We need to be more strategic about when we set up the video controls manager.
-    // It's really something that should be handled by the PlatformMediaSessionManager since we only want a controls
-    // manager for the currentSession.
-    if (document().page() && is<HTMLVideoElement>(*this)) {
-        HTMLVideoElement& asVideo = downcast<HTMLVideoElement>(*this);
-        document().page()->chrome().client().setUpVideoControlsManager(asVideo);
-    }
-
     // 4.8.10.9. Playing the media resource
     if (!m_player || m_networkState == NETWORK_EMPTY)
         scheduleDelayedAction(LoadMediaResource);
index 4eb10cf..720cf09 100644 (file)
@@ -341,7 +341,6 @@ public:
     virtual bool supportsVideoFullscreen(HTMLMediaElementEnums::VideoFullscreenMode) { return false; }
 #if ENABLE(VIDEO)
     virtual void enterVideoFullscreenForVideoElement(HTMLVideoElement&, HTMLMediaElementEnums::VideoFullscreenMode) { }
-    virtual void setUpVideoControlsManager(HTMLVideoElement&) { }
 #endif
     virtual void exitVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&) { }
     virtual bool requiresFullscreenForVideoPlayback() { return false; } 
index c394043..28b9a6a 100644 (file)
@@ -43,7 +43,6 @@ SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, CoreMedia, CMTimeGetSeconds, Float64, (CM
 SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, CoreMedia, CMTimeMake, CMTime, (int64_t value, int32_t timescale), (value, timescale))
 SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, CoreMedia, CMTimeMakeWithSeconds, CMTime, (Float64 seconds, int32_t preferredTimeScale), (seconds, preferredTimeScale))
 SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, CoreMedia, CMTimeRangeGetEnd, CMTime, (CMTimeRange range), (range))
-SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, CoreMedia, CMTimeRangeMake, CMTimeRange, (CMTime start, CMTime duration), (start, duration))
 
 SOFT_LINK_CONSTANT_FOR_SOURCE(WebCore, CoreMedia, kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms, CFStringRef)
 SOFT_LINK_CONSTANT_FOR_SOURCE(WebCore, CoreMedia, kCMTextMarkupAlignmentType_End, CFStringRef)
@@ -112,6 +111,7 @@ SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, CoreMedia, CMAudioClockCreate, OSStatus,
 SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, CoreMedia, CMTimeMaximum, CMTime, (CMTime time1, CMTime time2), (time1, time2))
 SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, CoreMedia, CMTimeMinimum, CMTime, (CMTime time1, CMTime time2), (time1, time2))
 SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, CoreMedia, CMTimeRangeContainsTime, Boolean, (CMTimeRange range, CMTime time), (range, time))
+SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, CoreMedia, CMTimeRangeMake, CMTimeRange, (CMTime start, CMTime duration), (start, duration))
 SOFT_LINK_FUNCTION_FOR_SOURCE(WebCore, CoreMedia, CMTimeSubtract, CMTime, (CMTime minuend, CMTime subtrahend), (minuend, subtrahend))
 
 SOFT_LINK_CONSTANT_FOR_SOURCE(WebCore, CoreMedia, kCMTimeIndefinite, CMTime)
index 9916405..8795b5b 100644 (file)
@@ -55,8 +55,6 @@ SOFT_LINK_FUNCTION_FOR_HEADER(WebCore, CoreMedia, CMTimeMakeWithSeconds, CMTime,
 #define CMTimeMakeWithSeconds softLink_CoreMedia_CMTimeMakeWithSeconds
 SOFT_LINK_FUNCTION_FOR_HEADER(WebCore, CoreMedia, CMTimeRangeGetEnd, CMTime, (CMTimeRange range), (range))
 #define CMTimeRangeGetEnd softLink_CoreMedia_CMTimeRangeGetEnd
-SOFT_LINK_FUNCTION_FOR_HEADER(WebCore, CoreMedia, CMTimeRangeMake, CMTimeRange, (CMTime start, CMTime duration), (start, duration))
-#define CMTimeRangeMake softLink_CoreMedia_CMTimeRangeMake
 
 SOFT_LINK_CONSTANT_FOR_HEADER(WebCore, CoreMedia, kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms, CFStringRef)
 #define kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms get_CoreMedia_kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms()
@@ -189,6 +187,8 @@ SOFT_LINK_FUNCTION_FOR_HEADER(WebCore, CoreMedia, CMTimeMinimum, CMTime, (CMTime
 #define CMTimeMinimum softLink_CoreMedia_CMTimeMinimum
 SOFT_LINK_FUNCTION_FOR_HEADER(WebCore, CoreMedia, CMTimeRangeContainsTime, Boolean, (CMTimeRange range, CMTime time), (range, time))
 #define CMTimeRangeContainsTime softLink_CoreMedia_CMTimeRangeContainsTime
+SOFT_LINK_FUNCTION_FOR_HEADER(WebCore, CoreMedia, CMTimeRangeMake, CMTimeRange, (CMTime start, CMTime duration), (start, duration))
+#define CMTimeRangeMake softLink_CoreMedia_CMTimeRangeMake
 SOFT_LINK_FUNCTION_FOR_HEADER(WebCore, CoreMedia, CMTimeSubtract, CMTime, (CMTime minuend, CMTime subtrahend), (minuend, subtrahend))
 #define CMTimeSubtract softLink_CoreMedia_CMTimeSubtract
 
index 53665d5..685a67b 100644 (file)
@@ -35,7 +35,6 @@
 #include <wtf/text/WTFString.h>
 
 OBJC_CLASS NSWindow;
-OBJC_CLASS WebPlaybackControlsManager;
 
 #if USE(APPLE_INTERNAL_SDK)
 OBJC_CLASS WebVideoFullscreenInterfaceMacObjC;
@@ -62,12 +61,12 @@ public:
     WEBCORE_EXPORT void setWebVideoFullscreenChangeObserver(WebVideoFullscreenChangeObserver*);
 
     WEBCORE_EXPORT void resetMediaState() override { }
-    WEBCORE_EXPORT void setDuration(double) override;
-    WEBCORE_EXPORT void setCurrentTime(double /*currentTime*/, double /*anchorTime*/) override;
+    WEBCORE_EXPORT void setDuration(double) override { }
+    WEBCORE_EXPORT void setCurrentTime(double /*currentTime*/, double /*anchorTime*/) override { }
     WEBCORE_EXPORT void setBufferedTime(double) override { }
-    WEBCORE_EXPORT void setRate(bool /*isPlaying*/, float /*playbackRate*/) override;
+    WEBCORE_EXPORT void setRate(bool /*isPlaying*/, float /*playbackRate*/) override { }
     WEBCORE_EXPORT void setVideoDimensions(bool /*hasVideo*/, float /*width*/, float /*height*/) override { }
-    WEBCORE_EXPORT void setSeekableRanges(const TimeRanges&) override;
+    WEBCORE_EXPORT void setSeekableRanges(const TimeRanges&) override { }
     WEBCORE_EXPORT void setCanPlayFastReverse(bool) override { }
     WEBCORE_EXPORT void setAudioMediaSelectionOptions(const Vector<WTF::String>& /*options*/, uint64_t /*selectedIndex*/) override { }
     WEBCORE_EXPORT void setLegibleMediaSelectionOptions(const Vector<WTF::String>& /*options*/, uint64_t /*selectedIndex*/) override { }
@@ -81,7 +80,6 @@ public:
     WEBCORE_EXPORT void invalidate();
     WEBCORE_EXPORT void requestHideAndExitFullscreen() { }
     WEBCORE_EXPORT void preparedToReturnToInline(bool visible, const IntRect& inlineRect, NSWindow *parentWindow);
-    WEBCORE_EXPORT void ensureControlsManager();
 
     HTMLMediaElementEnums::VideoFullscreenMode mode() const { return m_mode; }
     bool hasMode(HTMLMediaElementEnums::VideoFullscreenMode mode) const { return m_mode & mode; }
@@ -92,8 +90,6 @@ public:
     WEBCORE_EXPORT bool mayAutomaticallyShowVideoPictureInPicture() const { return false; }
     void applicationDidBecomeActive() { }
 
-    WEBCORE_EXPORT WebPlaybackControlsManager *playBackControlsManager();
-
 private:
     WebVideoFullscreenModel* m_videoFullscreenModel { nullptr };
     WebVideoFullscreenChangeObserver* m_fullscreenChangeObserver { nullptr };
@@ -102,7 +98,6 @@ private:
 #if USE(APPLE_INTERNAL_SDK)
     RetainPtr<WebVideoFullscreenInterfaceMacObjC> m_webVideoFullscreenInterfaceObjC;
 #endif
-    RetainPtr<WebPlaybackControlsManager> m_playbackControlsManager;
 };
 
 }
index a05d1b9..1faec25 100644 (file)
 
 #if PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)
 
-#import "AVKitSPI.h"
-#import "CoreMediaSoftLink.h"
 #import "IntRect.h"
-#import "MediaTimeAVFoundation.h"
-#import "TimeRanges.h"
 #import "WebVideoFullscreenChangeObserver.h"
 #import "WebVideoFullscreenModel.h"
-#import <AVFoundation/AVTime.h>
-
-#import "SoftLinking.h"
-
-SOFT_LINK_FRAMEWORK(AVKit)
-SOFT_LINK_CLASS(AVKit, AVValueTiming)
 
 #if USE(APPLE_INTERNAL_SDK)
 #include <WebKitAdditions/WebVideoFullscreenInterfaceMacAdditions.mm>
 #endif
 
-using namespace WebCore;
-
-@interface WebPlaybackControlsManager : NSObject {
-    NSTimeInterval _contentDuration;
-    AVValueTiming *_timing;
-    NSTimeInterval _seekToTime;
-    NSArray *_seekableTimeRanges;
-    BOOL _hasEnabledAudio;
-    BOOL _hasEnabledVideo;
-    float _rate;
-
-@private
-    WebCore::WebVideoFullscreenInterfaceMac* _webVideoFullscreenInterfaceMac;
-}
-
-@property (readwrite) NSTimeInterval contentDuration;
-@property (nonatomic, retain, readwrite) AVValueTiming *timing;
-@property NSTimeInterval seekToTime;
-@property (nonatomic, retain, readwrite) NSArray *seekableTimeRanges;
-@property (readwrite) BOOL hasEnabledAudio;
-@property (readwrite) BOOL hasEnabledVideo;
-
-@property (nonatomic) float rate;
-
-- (instancetype)initWithWebVideoFullscreenInterfaceMac:(WebCore::WebVideoFullscreenInterfaceMac*)webVideoFullscreenInterfaceMac;
-
-@end
-
-#if USE(APPLE_INTERNAL_SDK)
-#import <WebKitAdditions/WebPlaybackControlsControllerAdditions.mm>
-#endif
-
-@implementation WebPlaybackControlsManager
-
-@synthesize contentDuration = _contentDuration;
-@synthesize timing = _timing;
-@synthesize seekToTime = _seekToTime;
-@synthesize seekableTimeRanges = _seekableTimeRanges;
-@synthesize hasEnabledAudio = _hasEnabledAudio;
-@synthesize hasEnabledVideo = _hasEnabledVideo;
-@synthesize rate = _rate;
-
-- (instancetype)initWithWebVideoFullscreenInterfaceMac:(WebCore::WebVideoFullscreenInterfaceMac*)webVideoFullscreenInterfaceMac
-{
-    if (!(self = [super init]))
-        return nil;
-
-    _webVideoFullscreenInterfaceMac = webVideoFullscreenInterfaceMac;
-
-    return self;
-}
-
-- (BOOL)isSeeking
-{
-    return NO;
-}
-
-- (void)seekToTime:(NSTimeInterval)time toleranceBefore:(NSTimeInterval)toleranceBefore toleranceAfter:(NSTimeInterval)toleranceAfter
-{
-    UNUSED_PARAM(toleranceBefore);
-    UNUSED_PARAM(toleranceAfter);
-    _webVideoFullscreenInterfaceMac->webVideoFullscreenModel()->seekToTime(time);
-}
-
-- (NSArray *)audioMediaSelectionOptions
-{
-    return @[];
-}
-
-- (AVMediaSelectionOption *)currentAudioMediaSelectionOption
-{
-    return nil;
-}
-
-- (void)setCurrentAudioMediaSelectionOption:(AVMediaSelectionOption *)audioMediaSelectionOption
-{
-    UNUSED_PARAM(audioMediaSelectionOption);
-}
-
-- (NSArray *)legibleMediaSelectionOptions
-{
-    return @[];
-}
-
-- (AVMediaSelectionOption *)currentLegibleMediaSelectionOption
-{
-    return nil;
-}
-
-- (void)setCurrentLegibleMediaSelectionOption:(AVMediaSelectionOption *)legibleMediaSelectionOption
-{
-    UNUSED_PARAM(legibleMediaSelectionOption);
-}
-
-- (void)cancelThumbnailAndAudioAmplitudeSampleGeneration
-{
-}
-
-#if USE(APPLE_INTERNAL_SDK)
-#import <WebKitAdditions/WebPlaybackControlsControllerThumbnailAdditions.mm>
-#endif
-
-@end
-
 namespace WebCore {
 
 WebVideoFullscreenInterfaceMac::~WebVideoFullscreenInterfaceMac()
@@ -188,66 +74,6 @@ void WebVideoFullscreenInterfaceMac::clearMode(HTMLMediaElementEnums::VideoFulls
         m_videoFullscreenModel->fullscreenModeChanged(m_mode);
 }
 
-void WebVideoFullscreenInterfaceMac::setDuration(double duration)
-{
-    WebPlaybackControlsManager* controlsManager = playBackControlsManager();
-
-    controlsManager.contentDuration = duration;
-
-    // FIXME: We take this as an indication that playback is ready, but that is not necessarily true.
-    controlsManager.hasEnabledAudio = YES;
-    controlsManager.hasEnabledVideo = YES;
-}
-
-void WebVideoFullscreenInterfaceMac::setCurrentTime(double currentTime, double anchorTime)
-{
-    WebPlaybackControlsManager* controlsManager = playBackControlsManager();
-
-    NSTimeInterval anchorTimeStamp = ![controlsManager rate] ? NAN : anchorTime;
-    AVValueTiming *timing = [getAVValueTimingClass() valueTimingWithAnchorValue:currentTime
-        anchorTimeStamp:anchorTimeStamp rate:0];
-    
-    [controlsManager setTiming:timing];
-}
-
-void WebVideoFullscreenInterfaceMac::setRate(bool isPlaying, float playbackRate)
-{
-    WebPlaybackControlsManager* controlsManager = playBackControlsManager();
-
-    [controlsManager setRate:isPlaying ? playbackRate : 0.];
-}
-
-void WebVideoFullscreenInterfaceMac::setSeekableRanges(const TimeRanges& timeRanges)
-{
-    WebPlaybackControlsManager* controlsManager = playBackControlsManager();
-
-    RetainPtr<NSMutableArray> seekableRanges = adoptNS([[NSMutableArray alloc] init]);
-
-    for (unsigned i = 0; i < timeRanges.length(); i++) {
-        const PlatformTimeRanges& ranges = timeRanges.ranges();
-        CMTimeRange range = CMTimeRangeMake(toCMTime(ranges.start(i)), toCMTime(ranges.end(i)));
-        [seekableRanges addObject:[NSValue valueWithCMTimeRange:range]];
-    }
-    
-    [controlsManager setSeekableTimeRanges:seekableRanges.get()];
-}
-
-void WebVideoFullscreenInterfaceMac::ensureControlsManager()
-{
-    playBackControlsManager();
-}
-
-WebPlaybackControlsManager *WebVideoFullscreenInterfaceMac::playBackControlsManager()
-{
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
-    if (!m_playbackControlsManager)
-        m_playbackControlsManager = adoptNS([[WebPlaybackControlsManager alloc] initWithWebVideoFullscreenInterfaceMac:this]);
-    return m_playbackControlsManager.get();
-#else
-    return nil;
-#endif
-}
-
 #if !USE(APPLE_INTERNAL_SDK)
 void WebVideoFullscreenInterfaceMac::setupFullscreen(NSView&, const IntRect&, NSWindow *, HTMLMediaElementEnums::VideoFullscreenMode, bool)
 {
index 6ee12e4..bbc2ce2 100644 (file)
@@ -101,6 +101,15 @@ typedef NS_ENUM(NSInteger, AVPlayerViewControllerExitFullScreenReason) {
 @end
 
 #endif // USE(APPLE_INTERNAL_SDK)
+
+@interface AVValueTiming : NSObject <NSCoding, NSCopying, NSMutableCopying>
+@end
+
+@interface AVValueTiming ()
++ (AVValueTiming *)valueTimingWithAnchorValue:(double)anchorValue anchorTimeStamp:(NSTimeInterval)timeStamp rate:(double)rate;
+@property (NS_NONATOMIC_IOSONLY, readonly) double currentValue;
+@end
+
 #endif // PLATFORM(IOS)
 
 #if ENABLE(WIRELESS_PLAYBACK_TARGET) && !PLATFORM(IOS)
@@ -131,11 +140,3 @@ NS_CLASS_AVAILABLE_MAC(10_11)
 #endif
 
 #endif
-
-@interface AVValueTiming : NSObject <NSCoding, NSCopying, NSMutableCopying>
-@end
-
-@interface AVValueTiming ()
-+ (AVValueTiming *)valueTimingWithAnchorValue:(double)anchorValue anchorTimeStamp:(NSTimeInterval)timeStamp rate:(double)rate;
-@property (NS_NONATOMIC_IOSONLY, readonly) double currentValue;
-@end
index 1bf1406..c12def1 100644 (file)
@@ -1,3 +1,33 @@
+2016-02-27  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r197204, r197207, r197211, r197217,
+        r197218, and r197219.
+        https://bugs.webkit.org/show_bug.cgi?id=154780
+
+        Caused crashes in WebVideoFullscreenManagerProxy (Requested by
+        ap on #webkit).
+
+        Reverted changesets:
+
+        "Add support for playbackControlsManager"
+        https://bugs.webkit.org/show_bug.cgi?id=154742
+        http://trac.webkit.org/changeset/197204
+
+        "Attempted build fix."
+        http://trac.webkit.org/changeset/197207
+
+        "Attempted build fix."
+        http://trac.webkit.org/changeset/197211
+
+        "Attempted 32-bit build fix."
+        http://trac.webkit.org/changeset/197217
+
+        "Another 32-bit build fix."
+        http://trac.webkit.org/changeset/197218
+
+        "32-bit!!!"
+        http://trac.webkit.org/changeset/197219
+
 2016-02-26  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         Unreviewed. Fix GTK+ clean build.
index 0e9bb46..955fec8 100644 (file)
@@ -119,8 +119,6 @@ public:
     void applicationDidBecomeActive();
     bool isVisible() const;
 
-    PlatformWebVideoFullscreenInterface& controlsManagerInterface();
-
 private:
     friend class WebVideoFullscreenModelContext;
 
@@ -135,7 +133,6 @@ private:
 
     // Messages from WebVideoFullscreenManager
     void setupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, const WebCore::IntRect& initialRect, float hostingScaleFactor, WebCore::HTMLMediaElementEnums::VideoFullscreenMode, bool allowsPictureInPicture);
-    void setUpVideoControlsManagerWithID(uint64_t contextId);
     void resetMediaState(uint64_t contextId);
     void setCurrentTime(uint64_t contextId, double currentTime, double hostTime);
     void setBufferedTime(uint64_t contextId, double bufferedTime);
@@ -178,7 +175,6 @@ private:
 
     WebPageProxy* m_page;
     HashMap<uint64_t, ModelInterfaceTuple> m_contextMap;
-    uint64_t m_controlsManagerContextId { 0 };
 
 };
     
index 6e1d29e..2ba2212 100644 (file)
@@ -39,6 +39,5 @@ messages -> WebVideoFullscreenManagerProxy {
     ExitFullscreen(uint64_t contextId, WebCore::IntRect finalRect)
     CleanupFullscreen(uint64_t contextId)
     PreparedToReturnToInline(uint64_t contextId, bool visible, WebCore::IntRect inlineRect)
-    SetUpVideoControlsManagerWithID(uint64_t contextId)
 }
 #endif
index 37942f3..95ea011 100644 (file)
@@ -374,20 +374,6 @@ void WebVideoFullscreenManagerProxy::setupFullscreenWithID(uint64_t contextId, u
 #endif
 }
 
-void WebVideoFullscreenManagerProxy::setUpVideoControlsManagerWithID(uint64_t contextId)
-{
-#if PLATFORM(MAC)
-    RefPtr<WebVideoFullscreenModelContext> model;
-    RefPtr<PlatformWebVideoFullscreenInterface> interface;
-
-    std::tie(model, interface) = ensureModelAndInterface(contextId);
-    m_controlsManagerContextId = contextId;
-    interface->ensureControlsManager();
-#else
-    UNUSED_PARAM(contextId);
-#endif
-}
-
 void WebVideoFullscreenManagerProxy::resetMediaState(uint64_t contextId)
 {
     ensureInterface(contextId).resetMediaState();
@@ -629,11 +615,6 @@ bool WebVideoFullscreenManagerProxy::isVisible() const
     return m_page->isViewVisible() && m_page->isInWindow();
 }
 
-PlatformWebVideoFullscreenInterface& WebVideoFullscreenManagerProxy::controlsManagerInterface()
-{
-    return ensureInterface(m_controlsManagerContextId);
-}
-
 void WebVideoFullscreenManagerProxy::fullscreenMayReturnToInline(uint64_t contextId)
 {
     bool isViewVisible = m_page->isViewVisible();
index a21d631..f8a8bdc 100644 (file)
@@ -324,7 +324,6 @@ public:
     void completeImmediateActionAnimation();
     void didChangeContentSize(CGSize);
     void didHandleAcceptedCandidate();
-    void isPlayingMediaDidChange();
 
     void setIgnoresNonWheelEvents(bool);
     bool ignoresNonWheelEvents() const { return m_ignoresNonWheelEvents; }
index 2c21d96..5c49fae 100644 (file)
@@ -2371,13 +2371,6 @@ void WebViewImpl::didHandleAcceptedCandidate()
     m_isHandlingAcceptedCandidate = false;
 }
 
-void WebViewImpl::isPlayingMediaDidChange()
-{
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
-    updateWebViewImplAdditions();
-#endif
-}
-
 void WebViewImpl::setIgnoresNonWheelEvents(bool ignoresNonWheelEvents)
 {
     if (m_ignoresNonWheelEvents == ignoresNonWheelEvents)
index d38600c..0812857 100644 (file)
@@ -350,8 +350,6 @@ public:
     virtual void* immediateActionAnimationControllerForHitTestResult(RefPtr<API::HitTestResult>, uint64_t, RefPtr<API::Object>) = 0;
 
     virtual void didHandleAcceptedCandidate() = 0;
-
-    virtual void isPlayingMediaDidChange() = 0;
 #endif
 
 #if ENABLE(WIRELESS_PLAYBACK_TARGET) && !PLATFORM(IOS)
index 1fbaeb0..dab6973 100644 (file)
@@ -5995,17 +5995,9 @@ void WebPageProxy::isPlayingMediaDidChange(MediaProducer::MediaStateFlags state,
     if ((oldState & MediaProducer::IsPlayingAudio) == (m_mediaState & MediaProducer::IsPlayingAudio))
         return;
 
-#if PLATFORM(MAC)
-    m_pageClient.isPlayingMediaDidChange();
-#endif
     m_uiClient->isPlayingAudioDidChange(*this);
 }
 
-bool WebPageProxy::isPlayingVideoWithAudio() const
-{
-    return m_mediaState & MediaProducer::IsPlayingAudio && m_mediaState & MediaProducer::IsPlayingVideo;
-}
-
 #if ENABLE(MEDIA_SESSION)
 void WebPageProxy::hasMediaSessionWithActiveMediaElementsDidChange(bool state)
 {
index 47d156d..669ebef 100644 (file)
@@ -1014,8 +1014,6 @@ public:
     bool isPlayingAudio() const { return !!(m_mediaState & WebCore::MediaProducer::IsPlayingAudio); }
     void isPlayingMediaDidChange(WebCore::MediaProducer::MediaStateFlags, uint64_t);
 
-    bool isPlayingVideoWithAudio() const;
-
 #if ENABLE(MEDIA_SESSION)
     void hasMediaSessionWithActiveMediaElementsDidChange(bool);
     void mediaSessionMetadataDidChange(const WebCore::MediaSessionMetadata&);
index cbd0311..f218c8f 100644 (file)
@@ -214,8 +214,6 @@ private:
 
     virtual void didHandleAcceptedCandidate() override;
 
-    void isPlayingMediaDidChange() override;
-
     virtual void showPlatformContextMenu(NSMenu *, WebCore::IntPoint) override;
 
     virtual void didChangeBackgroundColor() override;
index e565bc2..ab231c7 100644 (file)
@@ -794,11 +794,6 @@ void PageClientImpl::didHandleAcceptedCandidate()
     m_impl->didHandleAcceptedCandidate();
 }
 
-void PageClientImpl::isPlayingMediaDidChange()
-{
-    m_impl->isPlayingMediaDidChange();
-}
-
 void PageClientImpl::showPlatformContextMenu(NSMenu *menu, IntPoint location)
 {
     [menu popUpMenuPositioningItem:nil atLocation:location inView:m_view];
index 9fa7798..bf57cbf 100644 (file)
@@ -855,11 +855,6 @@ bool WebChromeClient::supportsVideoFullscreen(WebCore::HTMLMediaElementEnums::Vi
     return m_page->videoFullscreenManager()->supportsVideoFullscreen(mode);
 }
 
-void WebChromeClient::setUpVideoControlsManager(WebCore::HTMLVideoElement& videoElement)
-{
-    m_page->videoFullscreenManager()->setUpVideoControlsManager(videoElement);
-}
-
 void WebChromeClient::enterVideoFullscreenForVideoElement(WebCore::HTMLVideoElement& videoElement, WebCore::HTMLMediaElementEnums::VideoFullscreenMode mode)
 {
     ASSERT(mode != HTMLMediaElementEnums::VideoFullscreenModeNone);
index 57b619e..7641303 100644 (file)
@@ -244,7 +244,6 @@ private:
 
 #if PLATFORM(IOS) || (PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE))
     virtual bool supportsVideoFullscreen(WebCore::HTMLMediaElementEnums::VideoFullscreenMode) override;
-    virtual void setUpVideoControlsManager(WebCore::HTMLVideoElement&) override;
     virtual void enterVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&, WebCore::HTMLMediaElementEnums::VideoFullscreenMode) override;
     virtual void exitVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&) override;
 #endif
index a3b538f..d3dac4e 100644 (file)
@@ -116,7 +116,6 @@ public:
     bool supportsVideoFullscreen(WebCore::HTMLMediaElementEnums::VideoFullscreenMode) const;
     void enterVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&, WebCore::HTMLMediaElementEnums::VideoFullscreenMode);
     void exitVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&);
-    void setUpVideoControlsManager(WebCore::HTMLVideoElement&);
     
 protected:
     friend class WebVideoFullscreenInterfaceContext;
index 6347ed4..2824481 100644 (file)
@@ -279,19 +279,6 @@ void WebVideoFullscreenManager::exitVideoFullscreenForVideoElement(WebCore::HTML
     m_page->send(Messages::WebVideoFullscreenManagerProxy::ExitFullscreen(contextId, clientRectForElement(&videoElement)), m_page->pageID());
 }
 
-void WebVideoFullscreenManager::setUpVideoControlsManager(WebCore::HTMLVideoElement& videoElement)
-{
-    auto addResult = m_videoElements.ensure(&videoElement, [&] { return nextContextId(); });
-    auto contextId = addResult.iterator->value;
-
-    RefPtr<WebVideoFullscreenModelVideoElement> model;
-    RefPtr<WebVideoFullscreenInterfaceContext> interface;
-    std::tie(model, interface) = ensureModelAndInterface(contextId);
-    model->setVideoElement(&videoElement);
-    
-    m_page->send(Messages::WebVideoFullscreenManagerProxy::SetUpVideoControlsManagerWithID(contextId), m_page->pageID());
-}
-
 #pragma mark Interface to WebVideoFullscreenInterfaceContext:
 
 void WebVideoFullscreenManager::resetMediaState(uint64_t contextId)