Title: [238688] trunk/Source
- Revision
- 238688
- Author
- eric.carl...@apple.com
- Date
- 2018-11-29 13:11:40 -0800 (Thu, 29 Nov 2018)
Log Message
[iOS] Tell AirPlay picker when a file has video
https://bugs.webkit.org/show_bug.cgi?id=192155
Source/WebCore/PAL:
Reviewed by Jer Noble.
* pal/spi/ios/MediaPlayerSPI.h:
Source/WebKit:
<rdar://problem/43843865>
Reviewed by Jer Noble.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _showPlaybackTargetPicker:fromRect:routeSharingPolicy:routingContextUID:]):
Add hasVideo parameter.
* UIProcess/ios/forms/WKAirPlayRoutePicker.h:
* UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
(-[WKAirPlayRoutePicker showFromView:routeSharingPolicy:routingContextUID:hasVideo:]): Add
hasVideo parameter, pass info to MPMediaControlsViewController.
(-[WKAirPlayRoutePicker showFromView:routeSharingPolicy:routingContextUID:]): Deleted.
Modified Paths
Diff
Modified: trunk/Source/WebCore/PAL/ChangeLog (238687 => 238688)
--- trunk/Source/WebCore/PAL/ChangeLog 2018-11-29 21:09:08 UTC (rev 238687)
+++ trunk/Source/WebCore/PAL/ChangeLog 2018-11-29 21:11:40 UTC (rev 238688)
@@ -1,3 +1,12 @@
+2018-11-29 Eric Carlson <eric.carl...@apple.com>
+
+ [iOS] Tell AirPlay picker when a file has video
+ https://bugs.webkit.org/show_bug.cgi?id=192155
+
+ Reviewed by Jer Noble.
+
+ * pal/spi/ios/MediaPlayerSPI.h:
+
2018-11-29 Alexey Proskuryakov <a...@apple.com>
Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
Modified: trunk/Source/WebCore/PAL/pal/spi/ios/MediaPlayerSPI.h (238687 => 238688)
--- trunk/Source/WebCore/PAL/pal/spi/ios/MediaPlayerSPI.h 2018-11-29 21:09:08 UTC (rev 238687)
+++ trunk/Source/WebCore/PAL/pal/spi/ios/MediaPlayerSPI.h 2018-11-29 21:11:40 UTC (rev 238688)
@@ -66,6 +66,9 @@
@property (nonatomic, copy, nullable) void (^didDismissHandler)(void);
@end
+@interface MPMediaControlsConfiguration : NSObject <NSSecureCoding, NSCopying>
+@end
+
#else
enum {
Modified: trunk/Source/WebKit/ChangeLog (238687 => 238688)
--- trunk/Source/WebKit/ChangeLog 2018-11-29 21:09:08 UTC (rev 238687)
+++ trunk/Source/WebKit/ChangeLog 2018-11-29 21:11:40 UTC (rev 238688)
@@ -1,3 +1,21 @@
+2018-11-29 Eric Carlson <eric.carl...@apple.com>
+
+ [iOS] Tell AirPlay picker when a file has video
+ https://bugs.webkit.org/show_bug.cgi?id=192155
+ <rdar://problem/43843865>
+
+ Reviewed by Jer Noble.
+
+ * UIProcess/ios/WKContentViewInteraction.mm:
+ (-[WKContentView _showPlaybackTargetPicker:fromRect:routeSharingPolicy:routingContextUID:]):
+ Add hasVideo parameter.
+
+ * UIProcess/ios/forms/WKAirPlayRoutePicker.h:
+ * UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
+ (-[WKAirPlayRoutePicker showFromView:routeSharingPolicy:routingContextUID:hasVideo:]): Add
+ hasVideo parameter, pass info to MPMediaControlsViewController.
+ (-[WKAirPlayRoutePicker showFromView:routeSharingPolicy:routingContextUID:]): Deleted.
+
2018-11-29 Alexey Proskuryakov <a...@apple.com>
Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (238687 => 238688)
--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2018-11-29 21:09:08 UTC (rev 238687)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2018-11-29 21:11:40 UTC (rev 238688)
@@ -4926,7 +4926,7 @@
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000 && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV)
if (!_airPlayRoutePicker)
_airPlayRoutePicker = adoptNS([[WKAirPlayRoutePicker alloc] init]);
- [_airPlayRoutePicker showFromView:self routeSharingPolicy:routeSharingPolicy routingContextUID:routingContextUID];
+ [_airPlayRoutePicker showFromView:self routeSharingPolicy:routeSharingPolicy routingContextUID:routingContextUID hasVideo:hasVideo];
#else
if (!_airPlayRoutePicker)
_airPlayRoutePicker = adoptNS([[WKAirPlayRoutePicker alloc] initWithView:self]);
Modified: trunk/Source/WebKit/UIProcess/ios/forms/WKAirPlayRoutePicker.h (238687 => 238688)
--- trunk/Source/WebKit/UIProcess/ios/forms/WKAirPlayRoutePicker.h 2018-11-29 21:09:08 UTC (rev 238687)
+++ trunk/Source/WebKit/UIProcess/ios/forms/WKAirPlayRoutePicker.h 2018-11-29 21:11:40 UTC (rev 238688)
@@ -36,7 +36,7 @@
@class UIView;
@interface WKAirPlayRoutePicker : NSObject
-- (void)showFromView:(UIView *)view routeSharingPolicy:(WebCore::RouteSharingPolicy)policy routingContextUID:(NSString *)contextUID;
+- (void)showFromView:(UIView *)view routeSharingPolicy:(WebCore::RouteSharingPolicy)policy routingContextUID:(NSString *)contextUID hasVideo:(BOOL)hasVideo;
@end
#else
Modified: trunk/Source/WebKit/UIProcess/ios/forms/WKAirPlayRoutePicker.mm (238687 => 238688)
--- trunk/Source/WebKit/UIProcess/ios/forms/WKAirPlayRoutePicker.mm 2018-11-29 21:09:08 UTC (rev 238687)
+++ trunk/Source/WebKit/UIProcess/ios/forms/WKAirPlayRoutePicker.mm 2018-11-29 21:11:40 UTC (rev 238688)
@@ -167,8 +167,13 @@
SOFT_LINK_FRAMEWORK(MediaPlayer)
SOFT_LINK_CLASS(MediaPlayer, MPAVRoutingController)
+SOFT_LINK_CLASS(MediaPlayer, MPMediaControlsConfiguration)
SOFT_LINK_CLASS(MediaPlayer, MPMediaControlsViewController)
+@interface MPMediaControlsConfiguration (WKMPMediaControlsConfiguration)
+@property (nonatomic) BOOL sortByIsVideoRoute;
+@end
+
enum {
WKAirPlayRoutePickerRouteSharingPolicyDefault = 0,
WKAirPlayRoutePickerRouteSharingPolicyLongForm = 1,
@@ -177,6 +182,7 @@
typedef NSInteger WKAirPlayRoutePickerRouteSharingPolicy;
@interface MPMediaControlsViewController (WKMPMediaControlsViewControllerPrivate)
+- (instancetype)initWithConfiguration:(MPMediaControlsConfiguration *)configuration;
- (void)setOverrideRouteSharingPolicy:(WKAirPlayRoutePickerRouteSharingPolicy)routeSharingPolicy routingContextUID:(NSString *)routingContextUID;
@end
@@ -190,7 +196,7 @@
[super dealloc];
}
-- (void)showFromView:(UIView *)view routeSharingPolicy:(WebCore::RouteSharingPolicy)routeSharingPolicy routingContextUID:(NSString *)routingContextUID
+- (void)showFromView:(UIView *)view routeSharingPolicy:(WebCore::RouteSharingPolicy)routeSharingPolicy routingContextUID:(NSString *)routingContextUID hasVideo:(BOOL)hasVideo
{
static_assert(static_cast<size_t>(WebCore::RouteSharingPolicy::Default) == static_cast<size_t>(WKAirPlayRoutePickerRouteSharingPolicyDefault), "RouteSharingPolicy::Default is not WKAirPlayRoutePickerRouteSharingPolicyDefault as expected");
static_assert(static_cast<size_t>(WebCore::RouteSharingPolicy::LongForm) == static_cast<size_t>(WKAirPlayRoutePickerRouteSharingPolicyLongForm), "RouteSharingPolicy::LongForm is not WKAirPlayRoutePickerRouteSharingPolicyLongForm as expected");
@@ -202,7 +208,12 @@
__block RetainPtr<MPAVRoutingController> routingController = adoptNS([allocMPAVRoutingControllerInstance() initWithName:@"WebKit - HTML media element showing AirPlay route picker"]);
[routingController setDiscoveryMode:MPRouteDiscoveryModeDetailed];
- _actionSheet = adoptNS([allocMPMediaControlsViewControllerInstance() init]);
+ RetainPtr<MPMediaControlsConfiguration> configuration;
+ if ([getMPMediaControlsConfigurationClass() instancesRespondToSelector:@selector(setSortByIsVideoRoute:)]) {
+ configuration = adoptNS([allocMPMediaControlsConfigurationInstance() init]);
+ configuration.get().sortByIsVideoRoute = hasVideo;
+ }
+ _actionSheet = adoptNS([allocMPMediaControlsViewControllerInstance() initWithConfiguration:configuration.get()]);
if ([_actionSheet respondsToSelector:@selector(setOverrideRouteSharingPolicy:routingContextUID:)])
[_actionSheet setOverrideRouteSharingPolicy:static_cast<WKAirPlayRoutePickerRouteSharingPolicy>(routeSharingPolicy) routingContextUID:routingContextUID];
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes