Title: [176057] branches/safari-600.3-branch/Source/WebKit2

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

Reply via email to