Changeset 238688 in webkit


Ignore:
Timestamp:
Nov 29, 2018 1:11:40 PM (5 years ago)
Author:
eric.carlson@apple.com
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.

Location:
trunk/Source
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/PAL/ChangeLog

    r238685 r238688  
     12018-11-29  Eric Carlson  <eric.carlson@apple.com>
     2
     3        [iOS] Tell AirPlay picker when a file has video
     4        https://bugs.webkit.org/show_bug.cgi?id=192155
     5
     6        Reviewed by Jer Noble.
     7
     8        * pal/spi/ios/MediaPlayerSPI.h:
     9
    1102018-11-29  Alexey Proskuryakov  <ap@apple.com>
    211
  • trunk/Source/WebCore/PAL/pal/spi/ios/MediaPlayerSPI.h

    r237266 r238688  
    6767@end
    6868
     69@interface MPMediaControlsConfiguration : NSObject <NSSecureCoding, NSCopying>
     70@end
     71
    6972#else
    7073
  • trunk/Source/WebKit/ChangeLog

    r238685 r238688  
     12018-11-29  Eric Carlson  <eric.carlson@apple.com>
     2
     3        [iOS] Tell AirPlay picker when a file has video
     4        https://bugs.webkit.org/show_bug.cgi?id=192155
     5        <rdar://problem/43843865>
     6
     7        Reviewed by Jer Noble.
     8
     9        * UIProcess/ios/WKContentViewInteraction.mm:
     10        (-[WKContentView _showPlaybackTargetPicker:fromRect:routeSharingPolicy:routingContextUID:]):
     11        Add hasVideo parameter.
     12
     13        * UIProcess/ios/forms/WKAirPlayRoutePicker.h:
     14        * UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
     15        (-[WKAirPlayRoutePicker showFromView:routeSharingPolicy:routingContextUID:hasVideo:]): Add
     16        hasVideo parameter, pass info to MPMediaControlsViewController.
     17        (-[WKAirPlayRoutePicker showFromView:routeSharingPolicy:routingContextUID:]): Deleted.
     18
    1192018-11-29  Alexey Proskuryakov  <ap@apple.com>
    220
  • trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm

    r238682 r238688  
    49274927    if (!_airPlayRoutePicker)
    49284928        _airPlayRoutePicker = adoptNS([[WKAirPlayRoutePicker alloc] init]);
    4929     [_airPlayRoutePicker showFromView:self routeSharingPolicy:routeSharingPolicy routingContextUID:routingContextUID];
     4929    [_airPlayRoutePicker showFromView:self routeSharingPolicy:routeSharingPolicy routingContextUID:routingContextUID hasVideo:hasVideo];
    49304930#else
    49314931    if (!_airPlayRoutePicker)
  • trunk/Source/WebKit/UIProcess/ios/forms/WKAirPlayRoutePicker.h

    r237266 r238688  
    3737
    3838@interface WKAirPlayRoutePicker : NSObject
    39 - (void)showFromView:(UIView *)view routeSharingPolicy:(WebCore::RouteSharingPolicy)policy routingContextUID:(NSString *)contextUID;
     39- (void)showFromView:(UIView *)view routeSharingPolicy:(WebCore::RouteSharingPolicy)policy routingContextUID:(NSString *)contextUID hasVideo:(BOOL)hasVideo;
    4040@end
    4141
  • trunk/Source/WebKit/UIProcess/ios/forms/WKAirPlayRoutePicker.mm

    r237266 r238688  
    168168SOFT_LINK_FRAMEWORK(MediaPlayer)
    169169SOFT_LINK_CLASS(MediaPlayer, MPAVRoutingController)
     170SOFT_LINK_CLASS(MediaPlayer, MPMediaControlsConfiguration)
    170171SOFT_LINK_CLASS(MediaPlayer, MPMediaControlsViewController)
     172
     173@interface MPMediaControlsConfiguration (WKMPMediaControlsConfiguration)
     174@property (nonatomic) BOOL sortByIsVideoRoute;
     175@end
    171176
    172177enum {
     
    178183
    179184@interface MPMediaControlsViewController (WKMPMediaControlsViewControllerPrivate)
     185- (instancetype)initWithConfiguration:(MPMediaControlsConfiguration *)configuration;
    180186- (void)setOverrideRouteSharingPolicy:(WKAirPlayRoutePickerRouteSharingPolicy)routeSharingPolicy routingContextUID:(NSString *)routingContextUID;
    181187@end
     
    191197}
    192198
    193 - (void)showFromView:(UIView *)view routeSharingPolicy:(WebCore::RouteSharingPolicy)routeSharingPolicy routingContextUID:(NSString *)routingContextUID
     199- (void)showFromView:(UIView *)view routeSharingPolicy:(WebCore::RouteSharingPolicy)routeSharingPolicy routingContextUID:(NSString *)routingContextUID hasVideo:(BOOL)hasVideo
    194200{
    195201    static_assert(static_cast<size_t>(WebCore::RouteSharingPolicy::Default) == static_cast<size_t>(WKAirPlayRoutePickerRouteSharingPolicyDefault), "RouteSharingPolicy::Default is not WKAirPlayRoutePickerRouteSharingPolicyDefault as expected");
     
    203209    [routingController setDiscoveryMode:MPRouteDiscoveryModeDetailed];
    204210
    205     _actionSheet = adoptNS([allocMPMediaControlsViewControllerInstance() init]);
     211    RetainPtr<MPMediaControlsConfiguration> configuration;
     212    if ([getMPMediaControlsConfigurationClass() instancesRespondToSelector:@selector(setSortByIsVideoRoute:)]) {
     213        configuration = adoptNS([allocMPMediaControlsConfigurationInstance() init]);
     214        configuration.get().sortByIsVideoRoute = hasVideo;
     215    }
     216    _actionSheet = adoptNS([allocMPMediaControlsViewControllerInstance() initWithConfiguration:configuration.get()]);
    206217
    207218    if ([_actionSheet respondsToSelector:@selector(setOverrideRouteSharingPolicy:routingContextUID:)])
Note: See TracChangeset for help on using the changeset viewer.