Title: [175985] trunk/Source/WebKit2
- Revision
- 175985
- Author
- [email protected]
- Date
- 2014-11-11 15:59:41 -0800 (Tue, 11 Nov 2014)
Log 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.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (175984 => 175985)
--- trunk/Source/WebKit2/ChangeLog 2014-11-11 23:56:47 UTC (rev 175984)
+++ trunk/Source/WebKit2/ChangeLog 2014-11-11 23:59:41 UTC (rev 175985)
@@ -1,3 +1,28 @@
+2014-11-11 Conrad Shultz <[email protected]>
+
+ 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.
+
2014-11-11 Tim Horton <[email protected]>
Update artwork for some action menu items
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h (175984 => 175985)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h 2014-11-11 23:56:47 UTC (rev 175984)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h 2014-11-11 23:59:41 UTC (rev 175985)
@@ -123,6 +123,7 @@
- (NSArray *)_actionMenuItemsForHitTestResult:(WKHitTestResultRef)hitTestResult withType:(_WKActionMenuType)type defaultActionMenuItems:(NSArray *)defaultMenuItems userData:(WKTypeRef)userData;
- (NSView *)_viewForPreviewingURL:(NSURL *)url initialFrameSize:(NSSize)initialFrameSize;
+- (void)_finishPreviewingURL:(NSURL *)url withPreviewView:(NSView *)previewView;
#endif
@end
Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (175984 => 175985)
--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm 2014-11-11 23:56:47 UTC (rev 175984)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm 2014-11-11 23:59:41 UTC (rev 175985)
@@ -4194,6 +4194,10 @@
return nil;
}
+- (void)_finishPreviewingURL:(NSURL *)url withPreviewView:(NSView *)previewView
+{
+}
+
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
- (void)_setAutomaticallyAdjustsContentInsets:(BOOL)automaticallyAdjustsContentInsets
Modified: trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.h (175984 => 175985)
--- trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.h 2014-11-11 23:56:47 UTC (rev 175984)
+++ trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.h 2014-11-11 23:59:41 UTC (rev 175985)
@@ -46,6 +46,10 @@
@class WKView;
+#if WK_API_ENABLED
+@class WKPagePreviewViewController;
+#endif
+
@interface WKActionMenuController : NSObject <NSMenuDelegate> {
@private
WebKit::WebPageProxy *_page;
@@ -60,6 +64,10 @@
BOOL _isShowingTextIndicator;
BOOL _shouldKeepPreviewPopoverOpen;
+
+#if WK_API_ENABLED
+ RetainPtr<WKPagePreviewViewController> _previewViewController;
+#endif
}
- (instancetype)initWithPage:(WebKit::WebPageProxy&)page view:(WKView *)wkView;
Modified: trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm (175984 => 175985)
--- trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm 2014-11-11 23:56:47 UTC (rev 175984)
+++ trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm 2014-11-11 23:59:41 UTC (rev 175985)
@@ -325,13 +325,13 @@
{
NSSize popoverSize = [self _preferredSizeForPopoverPresentedFromOriginRect:originRect];
CGFloat actualPopoverToViewScale = popoverSize.width / NSWidth(_wkView.bounds);
- RetainPtr<WKPagePreviewViewController> previewViewController = adoptNS([[WKPagePreviewViewController alloc] initWithPageURL:url mainViewSize:_wkView.bounds.size popoverToViewScale:actualPopoverToViewScale]);
- previewViewController->_delegate = self;
+ _previewViewController = adoptNS([[WKPagePreviewViewController alloc] initWithPageURL:url mainViewSize:_wkView.bounds.size popoverToViewScale:actualPopoverToViewScale]);
+ _previewViewController->_delegate = self;
_previewPopover = adoptNS([[NSPopover alloc] init]);
[_previewPopover setBehavior:NSPopoverBehaviorTransient];
[_previewPopover setContentSize:popoverSize];
- [_previewPopover setContentViewController:previewViewController.get()];
+ [_previewPopover setContentViewController:_previewViewController.get()];
[_previewPopover setDelegate:self];
}
@@ -384,8 +384,11 @@
- (void)_clearPreviewPopover
{
#if WK_API_ENABLED
- if (WKPagePreviewViewController *pagePreviewViewController = (WKPagePreviewViewController *)[_previewPopover contentViewController])
- pagePreviewViewController->_delegate = nil;
+ if (_previewViewController) {
+ _previewViewController->_delegate = nil;
+ [_wkView _finishPreviewingURL:_previewViewController->_url.get() withPreviewView:[_previewViewController view]];
+ _previewViewController = nil;
+ }
#endif
[_previewPopover close];
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes