Title: [176238] trunk/Source/WebKit2
Revision
176238
Author
[email protected]
Date
2014-11-17 17:13:16 -0800 (Mon, 17 Nov 2014)

Log Message

Page previews should be loaded sooner
https://bugs.webkit.org/show_bug.cgi?id=138814

Reviewed by Tim Horton.

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController willOpenMenu:withEvent:]):
Send -_createPreviewPopover..
(-[WKActionMenuController _previewURLFromActionMenu:]):
Relocate some logic to the new -_createPreviewPopover; gate early return on popover visibility.
(-[WKActionMenuController _createPreviewPopover]):
Renamed from -_createPreviewPopoverForURL:originRect:; explicitly send -loadView to warm up the preview view.
(-[WKActionMenuController _createPreviewPopoverForURL:originRect:]): Deleted.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (176237 => 176238)


--- trunk/Source/WebKit2/ChangeLog	2014-11-18 00:47:40 UTC (rev 176237)
+++ trunk/Source/WebKit2/ChangeLog	2014-11-18 01:13:16 UTC (rev 176238)
@@ -1,3 +1,19 @@
+2014-11-17  Conrad Shultz  <[email protected]>
+
+        Page previews should be loaded sooner
+        https://bugs.webkit.org/show_bug.cgi?id=138814
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/mac/WKActionMenuController.mm:
+        (-[WKActionMenuController willOpenMenu:withEvent:]):
+        Send -_createPreviewPopover..
+        (-[WKActionMenuController _previewURLFromActionMenu:]):
+        Relocate some logic to the new -_createPreviewPopover; gate early return on popover visibility.
+        (-[WKActionMenuController _createPreviewPopover]):
+        Renamed from -_createPreviewPopoverForURL:originRect:; explicitly send -loadView to warm up the preview view.
+        (-[WKActionMenuController _createPreviewPopoverForURL:originRect:]): Deleted.
+
 2014-11-17  Beth Dakin  <[email protected]>
 
         Preview is sometimes dismissed too early

Modified: trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm (176237 => 176238)


--- trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm	2014-11-18 00:47:40 UTC (rev 176237)
+++ trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm	2014-11-18 01:13:16 UTC (rev 176238)
@@ -210,6 +210,9 @@
     }
 
     if (![self isMenuForTextContent]) {
+#if WK_API_ENABLED
+        [self _createPreviewPopover];
+#endif
         _page->clearSelection();
         return;
     }
@@ -320,23 +323,28 @@
 
 - (void)_previewURLFromActionMenu:(id)sender
 {
+    ASSERT(_previewPopover);
+
     // We might already have a preview showing if the menu item was highlighted earlier.
-    if (_previewPopover)
+    if ([_previewPopover isShown])
         return;
 
     RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
-    NSURL *url = "" _web_URLWithWTFString:hitTestResult->absoluteLinkURL()];
     NSRect originRect = hitTestResult->elementBoundingBox();
-    [self _createPreviewPopoverForURL:url originRect:originRect];
     [_previewPopover showRelativeToRect:originRect ofView:_wkView preferredEdge:NSMaxYEdge];
 }
 
-- (void)_createPreviewPopoverForURL:(NSURL *)url originRect:(NSRect)originRect
+- (void)_createPreviewPopover
 {
+    RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
+    NSURL *url = "" _web_URLWithWTFString:hitTestResult->absoluteLinkURL()];
+    NSRect originRect = hitTestResult->elementBoundingBox();
+
     NSSize popoverSize = [self _preferredSizeForPopoverPresentedFromOriginRect:originRect];
     CGFloat actualPopoverToViewScale = popoverSize.width / NSWidth(_wkView.bounds);
     _previewViewController = adoptNS([[WKPagePreviewViewController alloc] initWithPageURL:url mainViewSize:_wkView.bounds.size popoverToViewScale:actualPopoverToViewScale]);
     _previewViewController->_delegate = self;
+    [_previewViewController loadView];
 
     _previewPopover = adoptNS([[NSPopover alloc] init]);
     [_previewPopover setBehavior:NSPopoverBehaviorApplicationDefined];
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to