Changeset 175985 in webkit


Ignore:
Timestamp:
Nov 11, 2014 3:59:41 PM (9 years ago)
Author:
Conrad Shultz
Message:

Clients should be notified when a page preview finishes
https://bugs.webkit.org/show_bug.cgi?id=138635

Reviewed by Tim Horton.

Add SPI to WKView to allow clients to do any cleanup that might be necessary when the preview closes.

  • UIProcess/API/Cocoa/WKViewPrivate.h:

Declare new SPI.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _finishPreviewingURL:withPreviewView:]):
Stub SPI implementation.

  • UIProcess/mac/WKActionMenuController.h:

Add an ivar for the preview view controller.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _createPreviewPopoverForURL:originRect:]):
Update to use the ivar.
(-[WKActionMenuController _clearPreviewPopover]):
Send -_finishPreviewingURL:withPreviewView: and nil out the view controller ivar.

Location:
trunk/Source/WebKit2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r175983 r175985  
     12014-11-11  Conrad Shultz  <conrad_shultz@apple.com>
     2
     3        Clients should be notified when a page preview finishes
     4        https://bugs.webkit.org/show_bug.cgi?id=138635
     5
     6        Reviewed by Tim Horton.
     7
     8        Add SPI to WKView to allow clients to do any cleanup that might be necessary when the preview closes.
     9
     10        * UIProcess/API/Cocoa/WKViewPrivate.h:
     11        Declare new SPI.
     12
     13        * UIProcess/API/mac/WKView.mm:
     14        (-[WKView _finishPreviewingURL:withPreviewView:]):
     15        Stub SPI implementation.
     16
     17        * UIProcess/mac/WKActionMenuController.h:
     18        Add an ivar for the preview view controller.
     19
     20        * UIProcess/mac/WKActionMenuController.mm:
     21        (-[WKActionMenuController _createPreviewPopoverForURL:originRect:]):
     22        Update to use the ivar.
     23        (-[WKActionMenuController _clearPreviewPopover]):
     24        Send -_finishPreviewingURL:withPreviewView: and nil out the view controller ivar.
     25
    1262014-11-11  Tim Horton  <timothy_horton@apple.com>
    227
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h

    r175759 r175985  
    124124
    125125- (NSView *)_viewForPreviewingURL:(NSURL *)url initialFrameSize:(NSSize)initialFrameSize;
     126- (void)_finishPreviewingURL:(NSURL *)url withPreviewView:(NSView *)previewView;
    126127#endif
    127128
  • trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm

    r175973 r175985  
    41954195}
    41964196
     4197- (void)_finishPreviewingURL:(NSURL *)url withPreviewView:(NSView *)previewView
     4198{
     4199}
     4200
    41974201#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
    41984202
  • trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.h

    r175756 r175985  
    4747@class WKView;
    4848
     49#if WK_API_ENABLED
     50@class WKPagePreviewViewController;
     51#endif
     52
    4953@interface WKActionMenuController : NSObject <NSMenuDelegate> {
    5054@private
     
    6165    BOOL _isShowingTextIndicator;
    6266    BOOL _shouldKeepPreviewPopoverOpen;
     67
     68#if WK_API_ENABLED
     69    RetainPtr<WKPagePreviewViewController> _previewViewController;
     70#endif
    6371}
    6472
  • trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm

    r175983 r175985  
    326326    NSSize popoverSize = [self _preferredSizeForPopoverPresentedFromOriginRect:originRect];
    327327    CGFloat actualPopoverToViewScale = popoverSize.width / NSWidth(_wkView.bounds);
    328     RetainPtr<WKPagePreviewViewController> previewViewController = adoptNS([[WKPagePreviewViewController alloc] initWithPageURL:url mainViewSize:_wkView.bounds.size popoverToViewScale:actualPopoverToViewScale]);
    329     previewViewController->_delegate = self;
     328    _previewViewController = adoptNS([[WKPagePreviewViewController alloc] initWithPageURL:url mainViewSize:_wkView.bounds.size popoverToViewScale:actualPopoverToViewScale]);
     329    _previewViewController->_delegate = self;
    330330
    331331    _previewPopover = adoptNS([[NSPopover alloc] init]);
    332332    [_previewPopover setBehavior:NSPopoverBehaviorTransient];
    333333    [_previewPopover setContentSize:popoverSize];
    334     [_previewPopover setContentViewController:previewViewController.get()];
     334    [_previewPopover setContentViewController:_previewViewController.get()];
    335335    [_previewPopover setDelegate:self];
    336336}
     
    385385{
    386386#if WK_API_ENABLED
    387     if (WKPagePreviewViewController *pagePreviewViewController = (WKPagePreviewViewController *)[_previewPopover contentViewController])
    388         pagePreviewViewController->_delegate = nil;
     387    if (_previewViewController) {
     388        _previewViewController->_delegate = nil;
     389        [_wkView _finishPreviewingURL:_previewViewController->_url.get() withPreviewView:[_previewViewController view]];
     390        _previewViewController = nil;
     391    }
    389392#endif
    390393
Note: See TracChangeset for help on using the changeset viewer.