Title: [176057] branches/safari-600.3-branch/Source/WebKit2
- Revision
- 176057
- Author
- [email protected]
- Date
- 2014-11-12 18:11:23 -0800 (Wed, 12 Nov 2014)
Log Message
Merged r175985. rdar://problems/18947400
Modified Paths
Diff
Modified: branches/safari-600.3-branch/Source/WebKit2/ChangeLog (176056 => 176057)
--- branches/safari-600.3-branch/Source/WebKit2/ChangeLog 2014-11-13 02:11:19 UTC (rev 176056)
+++ branches/safari-600.3-branch/Source/WebKit2/ChangeLog 2014-11-13 02:11:23 UTC (rev 176057)
@@ -1,5 +1,35 @@
2014-11-12 Matthew Hanson <[email protected]>
+ Merge r175985. <rdar://problem/18947400>
+
+ 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-12 Matthew Hanson <[email protected]>
+
Merge r175983. <rdar://problem/18871984>
2014-11-11 Tim Horton <[email protected]>
Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h (176056 => 176057)
--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h 2014-11-13 02:11:19 UTC (rev 176056)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h 2014-11-13 02:11:23 UTC (rev 176057)
@@ -122,6 +122,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: branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm (176056 => 176057)
--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm 2014-11-13 02:11:19 UTC (rev 176056)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm 2014-11-13 02:11:23 UTC (rev 176057)
@@ -4189,6 +4189,10 @@
return nil;
}
+- (void)_finishPreviewingURL:(NSURL *)url withPreviewView:(NSView *)previewView
+{
+}
+
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
- (void)_setAutomaticallyAdjustsContentInsets:(BOOL)automaticallyAdjustsContentInsets
Modified: branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKActionMenuController.h (176056 => 176057)
--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKActionMenuController.h 2014-11-13 02:11:19 UTC (rev 176056)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKActionMenuController.h 2014-11-13 02:11:23 UTC (rev 176057)
@@ -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: branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm (176056 => 176057)
--- branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm 2014-11-13 02:11:19 UTC (rev 176056)
+++ branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm 2014-11-13 02:11:23 UTC (rev 176057)
@@ -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