⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 176740 in webkit


Ignore:
Timestamp:
Dec 3, 2014, 12:35:24 PM (12 years ago)
Author:
dburkart@apple.com
Message:

Merged r176684. rdar://problems/18944696

Location:
branches/safari-600.3-branch/Source
Files:
2 added
8 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-600.3-branch/Source/WebCore/ChangeLog

    r176735 r176740  
     12014-12-03  Dana Burkart  <dburkart@apple.com>
     2
     3        Merge r176684. <rdar://problem/18944696>
     4
     5    2014-12-02  Beth Dakin  <bdakin@apple.com>
     6
     7            Should use standardQuickLookMenuItem for apps that don't implement customizations
     8            https://bugs.webkit.org/show_bug.cgi?id=139193
     9            -and corresponding-
     10            rdar://problem/18944696
     11
     12            Reviewed by Anders Carlsson.
     13
     14            New SPI headers.
     15            * WebCore.xcodeproj/project.pbxproj:
     16            * platform/spi/mac/NSMenuSPI.h: Added.
     17            * platform/spi/mac/QuickLookMacSPI.h: Added.
     18
    1192014-12-03  Dana Burkart  <dburkart@apple.com>
    220
  • branches/safari-600.3-branch/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r176660 r176740  
    32873287                9370918D1416D86B00477333 /* textAreaResizeCorner@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9370918C1416D86B00477333 /* textAreaResizeCorner@2x.png */; };
    32883288                9377ABA015DEFEEF0031FD04 /* Pagination.h in Headers */ = {isa = PBXBuildFile; fileRef = 9377AB9F15DEFEEF0031FD04 /* Pagination.h */; settings = {ATTRIBUTES = (Private, ); }; };
     3289                937F4CCC1A2D48C100BB39F5 /* QuickLookMacSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 937F4CCB1A2D48C100BB39F5 /* QuickLookMacSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
     3290                937F4CCE1A2D4B0100BB39F5 /* NSMenuSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 937F4CCD1A2D4B0100BB39F5 /* NSMenuSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
    32893291                937FF3D51A1012D6008EBA31 /* DictionaryLookup.h in Headers */ = {isa = PBXBuildFile; fileRef = 937FF3D41A1012D6008EBA31 /* DictionaryLookup.h */; settings = {ATTRIBUTES = (Private, ); }; };
    32903292                937FF3D71A10131B008EBA31 /* DictionaryLookup.mm in Sources */ = {isa = PBXBuildFile; fileRef = 937FF3D61A10131B008EBA31 /* DictionaryLookup.mm */; };
     
    1045410456                9370918C1416D86B00477333 /* textAreaResizeCorner@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "textAreaResizeCorner@2x.png"; sourceTree = "<group>"; };
    1045510457                9377AB9F15DEFEEF0031FD04 /* Pagination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Pagination.h; sourceTree = "<group>"; };
     10458                937F4CCB1A2D48C100BB39F5 /* QuickLookMacSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuickLookMacSPI.h; sourceTree = "<group>"; };
     10459                937F4CCD1A2D4B0100BB39F5 /* NSMenuSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSMenuSPI.h; sourceTree = "<group>"; };
    1045610460                937FF3D41A1012D6008EBA31 /* DictionaryLookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DictionaryLookup.h; sourceTree = "<group>"; };
    1045710461                937FF3D61A10131B008EBA31 /* DictionaryLookup.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DictionaryLookup.mm; sourceTree = "<group>"; };
     
    1764917653                                2D59F1BE1A0044C6001F3D29 /* DataDetectorsSPI.h */,
    1765017654                                2D413F601A187A3F0041A521 /* LookupSPI.h */,
     17655                                937F4CCD1A2D4B0100BB39F5 /* NSMenuSPI.h */,
    1765117656                                2DCB837719F99BBA00A7FBE4 /* NSSharingServicePickerSPI.h */,
    1765217657                                2DCB837819F99BBA00A7FBE4 /* NSSharingServiceSPI.h */,
    1765317658                                9348428119F1A9190009D5AE /* NSViewSPI.h */,
     17659                                937F4CCB1A2D48C100BB39F5 /* QuickLookMacSPI.h */,
    1765417660                        );
    1765517661                        path = mac;
     
    2344323449                                1A8F6BBD0DB55CDC001DB794 /* ApplicationCache.h in Headers */,
    2344423450                                1A8F6BBF0DB55CDC001DB794 /* ApplicationCacheGroup.h in Headers */,
     23451                                937F4CCC1A2D48C100BB39F5 /* QuickLookMacSPI.h in Headers */,
    2344523452                                24F54EAD101FE914000AE741 /* ApplicationCacheHost.h in Headers */,
    2344623453                                1A8F6BC10DB55CDC001DB794 /* ApplicationCacheResource.h in Headers */,
     
    2605826065                                C5A1EA7D152BCF08004D00B6 /* SimplifyMarkupCommand.h in Headers */,
    2605926066                                31741AAD16636609008A5B7E /* SimulatedClickOptions.h in Headers */,
     26067                                937F4CCE1A2D4B0100BB39F5 /* NSMenuSPI.h in Headers */,
    2606026068                                FD00D7A514A3F61900734011 /* SincResampler.h in Headers */,
    2606126069                                51327D6011A33A2B004F9D65 /* SinkDocument.h in Headers */,
  • branches/safari-600.3-branch/Source/WebKit/mac/ChangeLog

    r176738 r176740  
     12014-12-03  Dana Burkart  <dburkart@apple.com>
     2
     3        Merge r176684. <rdar://problem/18944696>
     4
     5    2014-12-02  Beth Dakin  <bdakin@apple.com>
     6
     7            Should use standardQuickLookMenuItem for apps that don't implement customizations
     8            https://bugs.webkit.org/show_bug.cgi?id=139193
     9            -and corresponding-
     10            rdar://problem/18944696
     11
     12            Reviewed by Anders Carlsson.
     13
     14            Use [NSMenuItem standardQuickLookMenuItem].
     15            * WebView/WebActionMenuController.mm:
     16            (-[WebActionMenuController _defaultMenuItemsForLink]):
     17
     18            Delegate methods to set up the standardQuickLookMenuItem.
     19            (-[WebActionMenuController menuItem:viewAtScreenPoint:]):
     20            (-[WebActionMenuController menuItem:previewItemAtPoint:]):
     21            (-[WebActionMenuController menuItem:preferredEdgeForPoint:]):
     22
     23            Remove all of the old QLPreviewBubble code.
     24            (-[WebActionMenuController _createActionMenuItemForTag:]):
     25            (-[WebActionMenuController _quickLookURLFromActionMenu:]): Deleted.
     26
    1272014-12-03  Dana Burkart  <dburkart@apple.com>
    228
  • branches/safari-600.3-branch/Source/WebKit/mac/WebView/WebActionMenuController.mm

    r176737 r176740  
    5656#import <WebCore/LocalizedStrings.h>
    5757#import <WebCore/LookupSPI.h>
     58#import <WebCore/NSMenuSPI.h>
    5859#import <WebCore/NSSharingServicePickerSPI.h>
    5960#import <WebCore/NSSharingServiceSPI.h>
    6061#import <WebCore/NSViewSPI.h>
    6162#import <WebCore/Page.h>
     63#import <WebCore/QuickLookMacSPI.h>
    6264#import <WebCore/Range.h>
    6365#import <WebCore/RenderElement.h>
     
    7274
    7375SOFT_LINK_FRAMEWORK_IN_UMBRELLA(Quartz, QuickLookUI)
    74 SOFT_LINK_CLASS(QuickLookUI, QLPreviewBubble)
     76SOFT_LINK_CLASS(QuickLookUI, QLPreviewMenuItem)
    7577
    7678SOFT_LINK_FRAMEWORK_IN_UMBRELLA(Quartz, ImageKit)
    7779SOFT_LINK_CLASS(ImageKit, IKSlideshow)
    7880
    79 @class QLPreviewBubble;
    80 @interface NSObject (WKQLPreviewBubbleDetails)
    81 @property (copy) NSArray * controls;
    82 @property NSSize maximumSize;
    83 @property NSRectEdge preferredEdge;
    84 @property (retain) IBOutlet NSWindow* parentWindow;
    85 - (void)showPreviewItem:(id)previewItem itemFrame:(NSRect)frame;
    86 - (void)setAutomaticallyCloseWithMask:(NSEventMask)autocloseMask filterMask:(NSEventMask)filterMask block:(void (^)(void))block;
     81@interface WebActionMenuController () <QLPreviewMenuItemDelegate>
    8782@end
    8883
     
    284279}
    285280
    286 - (void)_quickLookURLFromActionMenu:(id)sender
    287 {
    288     if (!_webView)
    289         return;
    290 
    291     NSURL *url = _hitTestResult.absoluteLinkURL();
    292     if (!url)
    293         return;
    294 
    295     Node* node = _hitTestResult.innerNode();
    296     if (!node)
    297         return;
    298 
    299     NSRect itemFrame = elementBoundingBoxInWindowCoordinatesFromNode(node);
    300     NSSize maximumPreviewSize = NSMakeSize(_webView.bounds.size.width * 0.75, _webView.bounds.size.height * 0.75);
    301 
    302     RetainPtr<QLPreviewBubble> bubble = adoptNS([[getQLPreviewBubbleClass() alloc] init]);
    303     [bubble setParentWindow:_webView.window];
    304     [bubble setMaximumSize:maximumPreviewSize];
    305     [bubble setPreferredEdge:NSMaxYEdge];
    306     [bubble setControls:@[ ]];
    307     NSEventMask filterMask = NSAnyEventMask & ~(NSAppKitDefinedMask | NSSystemDefinedMask | NSApplicationDefinedMask | NSMouseEnteredMask | NSMouseExitedMask);
    308     NSEventMask autocloseMask = NSLeftMouseDownMask | NSRightMouseDownMask | NSKeyDownMask;
    309     [bubble setAutomaticallyCloseWithMask:autocloseMask filterMask:filterMask block:[bubble] {
    310         [bubble close];
    311     }];
    312     [bubble showPreviewItem:url itemFrame:itemFrame];
    313 }
    314 
    315281- (NSArray *)_defaultMenuItemsForLink
    316282{
    317283    RetainPtr<NSMenuItem> openLinkItem = [self _createActionMenuItemForTag:WebActionMenuItemTagOpenLinkInDefaultBrowser];
    318     RetainPtr<NSMenuItem> previewLinkItem = [self _createActionMenuItemForTag:WebActionMenuItemTagPreviewLink];
     284
     285    RetainPtr<QLPreviewMenuItem> previewLinkItem = [NSMenuItem standardQuickLookMenuItem];
     286    [previewLinkItem setPreviewStyle:QLPreviewStylePopover];
     287    [previewLinkItem setDelegate:self];
     288
    319289    RetainPtr<NSMenuItem> readingListItem = [self _createActionMenuItemForTag:WebActionMenuItemTagAddLinkToSafariReadingList];
    320290
     
    750720}
    751721
     722#pragma mark QLPreviewMenuItemDelegate implementation
     723
     724- (NSView *)menuItem:(NSMenuItem *)menuItem viewAtScreenPoint:(NSPoint)screenPoint
     725{
     726    return _webView;
     727}
     728
     729- (id<QLPreviewItem>)menuItem:(NSMenuItem *)menuItem previewItemAtPoint:(NSPoint)point
     730{
     731    if (!_webView)
     732        return nil;
     733
     734    return _hitTestResult.absoluteLinkURL();
     735}
     736
     737- (NSRectEdge)menuItem:(NSMenuItem *)menuItem preferredEdgeForPoint:(NSPoint)point
     738{
     739    return NSMaxYEdge;
     740}
     741
    752742#pragma mark Menu Items
    753743
     
    764754        title = WEB_UI_STRING_KEY("Open", "Open (action menu item)", "action menu item");
    765755        image = [NSImage imageNamed:@"NSActionMenuOpenInNewWindow"];
    766         break;
    767 
    768     case WebActionMenuItemTagPreviewLink:
    769         selector = @selector(_quickLookURLFromActionMenu:);
    770         title = WEB_UI_STRING_KEY("Preview", "Preview (action menu item)", "action menu item");
    771         image = [NSImage imageNamed:@"NSActionMenuQuickLook"];
    772756        break;
    773757
  • branches/safari-600.3-branch/Source/WebKit2/ChangeLog

    r176736 r176740  
     12014-12-03  Dana Burkart  <dburkart@apple.com>
     2
     3        Merge r176684. <rdar://problem/18944696>
     4
     5    2014-12-02  Beth Dakin  <bdakin@apple.com>
     6
     7            Should use standardQuickLookMenuItem for apps that don't implement customizations
     8            https://bugs.webkit.org/show_bug.cgi?id=139193
     9            -and corresponding-
     10            rdar://problem/18944696
     11
     12            Reviewed by Anders Carlsson.
     13
     14            New SPI will allow clients to opt-out of the standardQuickLookMenuItem. By
     15            default, opt in.
     16            * UIProcess/API/Cocoa/WKViewPrivate.h:
     17            * UIProcess/API/mac/WKView.mm:
     18            (-[WKView _shouldUseStandardQuickLookPreview]):
     19            * UIProcess/mac/WKActionMenuController.mm:
     20
     21            Use [NSMenuItem standardQuickLookMenuItem] unless the client has requested
     22            otherwise.
     23            (-[WKActionMenuController _defaultMenuItemsForLink]):
     24
     25            Delegate methods to set up the standardQuickLookMenuItem.
     26            (-[WKActionMenuController menuItem:viewAtScreenPoint:]):
     27            (-[WKActionMenuController menuItem:previewItemAtPoint:]):
     28            (-[WKActionMenuController menuItem:preferredEdgeForPoint:]):
     29
    1302014-12-03  Dana Burkart  <dburkart@apple.com>
    231
  • branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h

    r176666 r176740  
    127127- (void)_finishPreviewingURL:(NSURL *)url withPreviewView:(NSView *)previewView;
    128128- (void)_handleClickInPreviewView:(NSView *)previewView URL:(NSURL *)url;
     129- (BOOL)_shouldUseStandardQuickLookPreview;
    129130#endif
    130131
  • branches/safari-600.3-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm

    r176736 r176740  
    42424242}
    42434243
     4244- (BOOL)_shouldUseStandardQuickLookPreview
     4245{
     4246    return YES;
     4247}
     4248
    42444249#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
    42454250
  • branches/safari-600.3-branch/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm

    r176666 r176740  
    4646#import <WebCore/LocalizedStrings.h>
    4747#import <WebCore/LookupSPI.h>
     48#import <WebCore/NSMenuSPI.h>
    4849#import <WebCore/NSSharingServiceSPI.h>
    4950#import <WebCore/NSSharingServicePickerSPI.h>
    5051#import <WebCore/NSViewSPI.h>
     52#import <WebCore/QuickLookMacSPI.h>
    5153#import <WebCore/SoftLinking.h>
    5254#import <WebCore/TextIndicator.h>
    5355#import <WebCore/URL.h>
    5456
     57SOFT_LINK_FRAMEWORK_IN_UMBRELLA(Quartz, QuickLookUI)
     58SOFT_LINK_CLASS(QuickLookUI, QLPreviewMenuItem)
     59
    5560SOFT_LINK_FRAMEWORK_IN_UMBRELLA(Quartz, ImageKit)
    5661SOFT_LINK_CLASS(ImageKit, IKSlideshow)
     
    5964using namespace WebKit;
    6065
    61 @interface WKActionMenuController () <NSSharingServiceDelegate, NSSharingServicePickerDelegate, NSPopoverDelegate>
     66@interface WKActionMenuController () <NSSharingServiceDelegate, NSSharingServicePickerDelegate, NSPopoverDelegate, QLPreviewMenuItemDelegate>
    6267- (void)_updateActionMenuItems;
    6368- (BOOL)_canAddMediaToPhotos;
     
    389394{
    390395    RetainPtr<NSMenuItem> openLinkItem = [self _createActionMenuItemForTag:kWKContextActionItemTagOpenLinkInDefaultBrowser];
     396
     397    BOOL shouldUseStandardQuickLookPreview = [_wkView _shouldUseStandardQuickLookPreview];
     398    RetainPtr<NSMenuItem> previewLinkItem;
     399    RetainPtr<QLPreviewMenuItem> qlPreviewLinkItem;
     400    if (shouldUseStandardQuickLookPreview) {
     401        qlPreviewLinkItem = [NSMenuItem standardQuickLookMenuItem];
     402        [qlPreviewLinkItem setPreviewStyle:QLPreviewStylePopover];
     403        [qlPreviewLinkItem setDelegate:self];
     404    } else {
    391405#if WK_API_ENABLED
    392     RetainPtr<NSMenuItem> previewLinkItem = [self _createActionMenuItemForTag:kWKContextActionItemTagPreviewLink];
     406        previewLinkItem = [self _createActionMenuItemForTag:kWKContextActionItemTagPreviewLink];
    393407#else
    394     RetainPtr<NSMenuItem> previewLinkItem = [NSMenuItem separatorItem];
     408        previewLinkItem = [NSMenuItem separatorItem];
    395409#endif
     410    }
     411
    396412    RetainPtr<NSMenuItem> readingListItem = [self _createActionMenuItemForTag:kWKContextActionItemTagAddLinkToSafariReadingList];
    397413
    398     return @[ openLinkItem.get(), previewLinkItem.get(), [NSMenuItem separatorItem], readingListItem.get() ];
     414    return @[ openLinkItem.get(), shouldUseStandardQuickLookPreview ? qlPreviewLinkItem.get() : previewLinkItem.get(), [NSMenuItem separatorItem], readingListItem.get() ];
    399415}
    400416
     
    932948}
    933949
     950#pragma mark QLPreviewMenuItemDelegate implementation
     951
     952- (NSView *)menuItem:(NSMenuItem *)menuItem viewAtScreenPoint:(NSPoint)screenPoint
     953{
     954    return _wkView;
     955}
     956
     957- (id<QLPreviewItem>)menuItem:(NSMenuItem *)menuItem previewItemAtPoint:(NSPoint)point
     958{
     959    if (!_wkView)
     960        return nil;
     961
     962    RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
     963    return [NSURL _web_URLWithWTFString:hitTestResult->absoluteLinkURL()];
     964}
     965
     966- (NSRectEdge)menuItem:(NSMenuItem *)menuItem preferredEdgeForPoint:(NSPoint)point
     967{
     968    return NSMaxYEdge;
     969}
     970
    934971#pragma mark Menu Items
    935972
Note: See TracChangeset for help on using the changeset viewer.