Bug 153221

Summary: Enable WebVideoFullscreenManager for Cocoa
Product: WebKit Reporter: Ada Chan <adachan>
Component: MediaAssignee: Ada Chan <adachan>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, buildbot, ossy, rniwa
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=153473
Attachments:
Description Flags
Patch
none
Patch
buildbot: commit-queue-
Archive of layout-test-results from ews104 for mac-yosemite-wk2
none
Patch
eric.carlson: review+
Patch
none
Patch none

Ada Chan
Reported 2016-01-18 22:24:14 PST
Enable WebVideoFullscreenManager for Cocoa. Right now it's iOS only. This will involve moving these classes to Cocoa: - WebVideoFullscreenInterface - WebVideoFullscreenModel - WebVideoFullscreenModelVideoElement - WebVideoFullscreenManagerProxy and also adding a stub implementation of WebVideoFullscreenInterfaceMac for now. Part of <rdar://problem/24171440>
Attachments
Patch (239.23 KB, patch)
2016-01-25 17:35 PST, Ada Chan
no flags
Patch (56.55 KB, patch)
2016-01-26 14:13 PST, Ada Chan
buildbot: commit-queue-
Archive of layout-test-results from ews104 for mac-yosemite-wk2 (884.70 KB, application/zip)
2016-01-26 15:16 PST, Build Bot
no flags
Patch (56.56 KB, patch)
2016-01-27 16:54 PST, Ada Chan
eric.carlson: review+
Patch (54.80 KB, patch)
2016-01-27 22:51 PST, Ada Chan
no flags
Patch (54.76 KB, patch)
2016-01-27 23:10 PST, Ada Chan
no flags
Ada Chan
Comment 1 2016-01-25 17:35:57 PST
Ada Chan
Comment 2 2016-01-25 22:48:08 PST
I had trouble getting the bots to apply my patch and it looks like the file moves look like a file remove + new file in the patch, which makes it really hard to review. I'm going to make a separate patch just to move the files so it'll be easier to review the actual changes: https://bugs.webkit.org/show_bug.cgi?id=153473
Ada Chan
Comment 3 2016-01-26 14:13:22 PST
Build Bot
Comment 4 2016-01-26 15:16:15 PST
Comment on attachment 269917 [details] Patch Attachment 269917 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.webkit.org/results/742915 New failing tests: media/media-controls-drag-timeline-set-controls-property.html
Build Bot
Comment 5 2016-01-26 15:16:18 PST
Created attachment 269933 [details] Archive of layout-test-results from ews104 for mac-yosemite-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews104 Port: mac-yosemite-wk2 Platform: Mac OS X 10.10.5
Ada Chan
Comment 6 2016-01-26 17:14:31 PST
I have trouble reproducing the hang in media/media-controls-drag-timeline-set-controls-property.html.
Ada Chan
Comment 7 2016-01-27 16:54:26 PST
Eric Carlson
Comment 8 2016-01-27 18:09:10 PST
Comment on attachment 270065 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=270065&action=review > Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.h:69 > + WEBCORE_EXPORT virtual void resetMediaState() override; > + WEBCORE_EXPORT virtual void setDuration(double) override; > + WEBCORE_EXPORT virtual void setCurrentTime(double currentTime, double anchorTime) override; > + WEBCORE_EXPORT virtual void setBufferedTime(double) override; > + WEBCORE_EXPORT virtual void setRate(bool isPlaying, float playbackRate) override; > + WEBCORE_EXPORT virtual void setVideoDimensions(bool hasVideo, float width, float height) override; > + WEBCORE_EXPORT virtual void setSeekableRanges(const TimeRanges&) override; > + WEBCORE_EXPORT virtual void setCanPlayFastReverse(bool) override; > + WEBCORE_EXPORT virtual void setAudioMediaSelectionOptions(const Vector<WTF::String>& options, uint64_t selectedIndex) override; > + WEBCORE_EXPORT virtual void setLegibleMediaSelectionOptions(const Vector<WTF::String>& options, uint64_t selectedIndex) override; > + WEBCORE_EXPORT virtual void setExternalPlayback(bool enabled, ExternalPlaybackTargetType, WTF::String localizedDeviceName) override; > + WEBCORE_EXPORT virtual void setWirelessVideoPlaybackDisabled(bool) override; Nit: these don't need "virtual", it is implied by "override". > Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.mm:58 > +void WebVideoFullscreenInterfaceMac::resetMediaState() > +{ > +} > + > +void WebVideoFullscreenInterfaceMac::setDuration(double) > +{ > +} Nit: you might want to put all of these empty methods in the .h file so the ones you do override are more obvious: WEBCORE_EXPORT void setDuration(double) override { }
Ada Chan
Comment 9 2016-01-27 22:51:25 PST
Ada Chan
Comment 10 2016-01-27 22:53:22 PST
(In reply to comment #8) > Comment on attachment 270065 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=270065&action=review > > > Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.h:69 > > + WEBCORE_EXPORT virtual void resetMediaState() override; > > + WEBCORE_EXPORT virtual void setDuration(double) override; > > + WEBCORE_EXPORT virtual void setCurrentTime(double currentTime, double anchorTime) override; > > + WEBCORE_EXPORT virtual void setBufferedTime(double) override; > > + WEBCORE_EXPORT virtual void setRate(bool isPlaying, float playbackRate) override; > > + WEBCORE_EXPORT virtual void setVideoDimensions(bool hasVideo, float width, float height) override; > > + WEBCORE_EXPORT virtual void setSeekableRanges(const TimeRanges&) override; > > + WEBCORE_EXPORT virtual void setCanPlayFastReverse(bool) override; > > + WEBCORE_EXPORT virtual void setAudioMediaSelectionOptions(const Vector<WTF::String>& options, uint64_t selectedIndex) override; > > + WEBCORE_EXPORT virtual void setLegibleMediaSelectionOptions(const Vector<WTF::String>& options, uint64_t selectedIndex) override; > > + WEBCORE_EXPORT virtual void setExternalPlayback(bool enabled, ExternalPlaybackTargetType, WTF::String localizedDeviceName) override; > > + WEBCORE_EXPORT virtual void setWirelessVideoPlaybackDisabled(bool) override; > > Nit: these don't need "virtual", it is implied by "override". > > > Source/WebCore/platform/mac/WebVideoFullscreenInterfaceMac.mm:58 > > +void WebVideoFullscreenInterfaceMac::resetMediaState() > > +{ > > +} > > + > > +void WebVideoFullscreenInterfaceMac::setDuration(double) > > +{ > > +} > > Nit: you might want to put all of these empty methods in the .h file so the > ones you do override are more obvious: WEBCORE_EXPORT void > setDuration(double) override { } Thanks for the review! Addressed your feedback and sent it to EWS to make sure the bots pass.
Ada Chan
Comment 11 2016-01-27 23:10:30 PST
Ada Chan
Comment 12 2016-01-28 10:30:03 PST
Csaba Osztrogonác
Comment 13 2016-02-01 04:44:57 PST
(In reply to comment #12) > Committed: > http://trac.webkit.org/changeset/195755 Mac cmake buildfix landed in https://trac.webkit.org/changeset/195957 and https://trac.webkit.org/changeset/195958 but the build is still broken: /Volumes/Data/slave/elcapitan-cmake-debug/build/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm:155:45: error: expected ';' after return statement return "com.apple.WebKit.WebContent" WK_XPC_SERVICE_SUFFIX; ^ ; /Volumes/Data/slave/elcapitan-cmake-debug/build/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm:157:45: error: expected ';' after return statement return "com.apple.WebKit.Networking" WK_XPC_SERVICE_SUFFIX; ^ ; /Volumes/Data/slave/elcapitan-cmake-debug/build/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm:160:44: error: expected ';' after return statement return "com.apple.WebKit.Databases" WK_XPC_SERVICE_SUFFIX; ^ ; /Volumes/Data/slave/elcapitan-cmake-debug/build/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm:166:48: error: expected ';' after return statement return "com.apple.WebKit.Plugin.32" WK_XPC_SERVICE_SUFFIX; ^ ; /Volumes/Data/slave/elcapitan-cmake-debug/build/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm:168:48: error: expected ';' after return statement return "com.apple.WebKit.Plugin.64" WK_XPC_SERVICE_SUFFIX; ^ ;
Note You need to log in before you can comment on or make changes to this bug.