Changeset 220496 in webkit


Ignore:
Timestamp:
Aug 9, 2017 4:18:13 PM (7 years ago)
Author:
commit-queue@webkit.org
Message:

Use MPAVRoutingController instead of deprecated versions.
https://bugs.webkit.org/show_bug.cgi?id=175063
Source/WebCore:

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-08-09
Reviewed by Tim Horton.

No new tests because no behavior change. This uses a different platform class to present
an interface.

Remove deprecated MPAudioVideoRoutingPopoverController and MPAVRoutingSheet
Add MPMediaControlsViewController.

  • platform/spi/ios/MediaPlayerSPI.h:

Source/WebKit:

rdar://problem/33301230

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-08-09
Reviewed by Tim Horton.

Remove dependence on deprecated classes MPAVRoutingSheet and MPAudioVideoRoutingPopoverController.

  • UIProcess/ios/forms/WKAirPlayRoutePicker.h:
  • UIProcess/ios/forms/WKAirPlayRoutePicker.mm:

(-[WKAirPlayRoutePicker dealloc]):
(-[WKAirPlayRoutePicker show:fromRect:]):
(-[WKAirPlayRoutePicker popoverControllerDidDismissPopover:]): Deleted.
(-[WKAirPlayRoutePicker _presentAirPlayPopoverAnimated:fromRect:]): Deleted.
(-[WKAirPlayRoutePicker _windowWillRotate:]): Deleted.
(-[WKAirPlayRoutePicker _windowDidRotate:]): Deleted.
(-[WKAirPlayRoutePicker _dismissAirPlayRoutePickerIPad]): Deleted.
(-[WKAirPlayRoutePicker showAirPlayPickerIPad:fromRect:]): Deleted.
(-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]): Deleted.

Location:
trunk/Source
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r220488 r220496  
     12017-08-09  Jeremy Jones  <jeremyj@apple.com>
     2
     3        Use MPAVRoutingController instead of deprecated versions.
     4        https://bugs.webkit.org/show_bug.cgi?id=175063
     5
     6        Reviewed by Tim Horton.
     7
     8        No new tests because no behavior change. This uses a different platform class to present
     9        an interface.
     10
     11        Remove deprecated MPAudioVideoRoutingPopoverController and MPAVRoutingSheet
     12        Add MPMediaControlsViewController.
     13
     14        * platform/spi/ios/MediaPlayerSPI.h:
     15
    1162017-08-09  Myles C. Maxfield  <mmaxfield@apple.com>
    217
  • trunk/Source/WebCore/platform/spi/ios/MediaPlayerSPI.h

    r220293 r220496  
    3434
    3535#import <MediaPlayer/MPAVRoutingController.h>
     36
     37#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000 && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV)
     38#import <MediaPlayer/MPMediaControlsViewController.h>
     39#else
    3640#import <MediaPlayer/MPAVRoutingSheet.h>
    3741#import <MediaPlayer/MPAudioVideoRoutingPopoverController.h>
     42#endif
    3843
    3944#else
    4045
    41 enum {
    42     MPAVItemTypeUnknown = 0,
    43     MPAVItemTypeAudio = 1,
    44     MPAVItemTypeVideo = 2,
    45 };
    46 typedef NSUInteger MPAVItemType;
     46NS_ASSUME_NONNULL_BEGIN
    4747
    4848enum {
     
    6060@property (nonatomic, assign) MPRouteDiscoveryMode discoveryMode;
    6161@end
     62
     63#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000 && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV)
     64
     65@interface MPMediaControlsViewController : UIViewController
     66@property (nonatomic, copy, nullable) void (^didDismissHandler)(void);
     67@end
     68
     69#else
     70
     71enum {
     72    MPAVItemTypeUnknown = 0,
     73    MPAVItemTypeAudio = 1,
     74    MPAVItemTypeVideo = 2,
     75};
     76typedef NSUInteger MPAVItemType;
    6277
    6378#pragma clang diagnostic push
     
    7994@interface MPAVRoutingSheet ()
    8095@property (nonatomic, assign, setter=setAVItemType:) MPAVItemType avItemType;
    81 
    8296@property (nonatomic, assign) BOOL mirroringOnly;
    83 
    8497- (id)initWithAVItemType:(MPAVItemType)avItemType;
    85 
    8698- (void)showInView:(UIView *)view withCompletionHandler:(void (^)(void))completionHandler;
    87 
    8899- (void)dismiss;
    89100@end
     
    91102#endif
    92103
     104NS_ASSUME_NONNULL_END
     105
    93106#endif
     107
     108#endif // PLATFORM(IOS)
  • trunk/Source/WebKit/ChangeLog

    r220478 r220496  
     12017-08-09  Jeremy Jones  <jeremyj@apple.com>
     2
     3        Use MPAVRoutingController instead of deprecated versions.
     4        https://bugs.webkit.org/show_bug.cgi?id=175063
     5        rdar://problem/33301230
     6
     7        Reviewed by Tim Horton.
     8
     9        Remove dependence on deprecated classes MPAVRoutingSheet and MPAudioVideoRoutingPopoverController.
     10
     11        * UIProcess/ios/forms/WKAirPlayRoutePicker.h:
     12        * UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
     13        (-[WKAirPlayRoutePicker dealloc]):
     14        (-[WKAirPlayRoutePicker show:fromRect:]):
     15        (-[WKAirPlayRoutePicker popoverControllerDidDismissPopover:]): Deleted.
     16        (-[WKAirPlayRoutePicker _presentAirPlayPopoverAnimated:fromRect:]): Deleted.
     17        (-[WKAirPlayRoutePicker _windowWillRotate:]): Deleted.
     18        (-[WKAirPlayRoutePicker _windowDidRotate:]): Deleted.
     19        (-[WKAirPlayRoutePicker _dismissAirPlayRoutePickerIPad]): Deleted.
     20        (-[WKAirPlayRoutePicker showAirPlayPickerIPad:fromRect:]): Deleted.
     21        (-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]): Deleted.
     22
    1232017-08-09  Sam Weinig  <sam@webkit.org>
    224
  • trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm

    r220443 r220496  
    40014001- (void)_showPlaybackTargetPicker:(BOOL)hasVideo fromRect:(const IntRect&)elementRect
    40024002{
     4003#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000 && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV)
     4004    if (!_airPlayRoutePicker)
     4005        _airPlayRoutePicker = adoptNS([[WKAirPlayRoutePicker alloc] init]);
     4006    [_airPlayRoutePicker showFromView:self];
     4007#else
    40034008    if (!_airPlayRoutePicker)
    40044009        _airPlayRoutePicker = adoptNS([[WKAirPlayRoutePicker alloc] initWithView:self]);
    40054010    [_airPlayRoutePicker show:hasVideo fromRect:elementRect];
     4011#endif
    40064012}
    40074013
  • trunk/Source/WebKit/UIProcess/ios/forms/WKAirPlayRoutePicker.h

    r220293 r220496  
    2626#if PLATFORM(IOS)
    2727
     28#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000 && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV)
     29
     30#import <Foundation/Foundation.h>
     31
     32@class UIView;
     33
     34@interface WKAirPlayRoutePicker : NSObject
     35- (void)showFromView:(UIView *)view;
     36@end
     37
     38#else
     39
    2840#import <UIKit/UIPopoverController.h>
    2941
     
    3547@end
    3648
     49#endif
     50
    3751#endif // PLATFORM(IOS)
    3852
  • trunk/Source/WebKit/UIProcess/ios/forms/WKAirPlayRoutePicker.mm

    r220293 r220496  
    3030
    3131#import "UIKitSPI.h"
     32#import <WebCore/MediaPlayerSPI.h>
     33#import <wtf/RetainPtr.h>
     34#import <wtf/SoftLinking.h>
     35
     36#if __IPHONE_OS_VERSION_MIN_REQUIRED < 110000 || PLATFORM(WATCHOS) || PLATFORM(APPLETV)
    3237#import "WKContentView.h"
    3338#import "WKContentViewInteraction.h"
    3439#import "WebPageProxy.h"
    35 #import <WebCore/MediaPlayerSPI.h>
    36 #import <wtf/RetainPtr.h>
    37 #import <wtf/SoftLinking.h>
    3840
    3941#pragma clang diagnostic push
     
    160162#pragma clang diagnostic pop
    161163
     164#else
     165
     166SOFT_LINK_FRAMEWORK(MediaPlayer)
     167SOFT_LINK_CLASS(MediaPlayer, MPAVRoutingController)
     168SOFT_LINK_CLASS(MediaPlayer, MPMediaControlsViewController)
     169
     170@implementation WKAirPlayRoutePicker {
     171    RetainPtr<MPMediaControlsViewController> _actionSheet;
     172}
     173
     174- (void)dealloc
     175{
     176    [_actionSheet dismissViewControllerAnimated:0 completion:nil];
     177    [super dealloc];
     178}
     179
     180- (void)showFromView:(UIView *)view
     181{
     182    if (_actionSheet)
     183        return;
     184
     185    __block RetainPtr<MPAVRoutingController> routingController = adoptNS([allocMPAVRoutingControllerInstance() initWithName:@"WebKit - HTML media element showing AirPlay route picker"]);
     186    [routingController setDiscoveryMode:MPRouteDiscoveryModeDetailed];
     187
     188    _actionSheet = adoptNS([allocMPMediaControlsViewControllerInstance() init]);
     189    _actionSheet.get().didDismissHandler = ^ {
     190        [routingController setDiscoveryMode:MPRouteDiscoveryModeDisabled];
     191        routingController = nil;
     192        _actionSheet = nil;
     193    };
     194
     195    UIViewController *viewControllerForPresentation = [UIViewController _viewControllerForFullScreenPresentationFromView:view];
     196    [viewControllerForPresentation presentViewController:_actionSheet.get() animated:YES completion:nil];
     197}
     198
     199@end
     200
     201#endif
     202
    162203#endif // PLATFORM(IOS)
Note: See TracChangeset for help on using the changeset viewer.