Changeset 223439 in webkit


Ignore:
Timestamp:
Oct 16, 2017, 2:33:11 PM (8 years ago)
Author:
achristensen@apple.com
Message:

Add a _WKThumbnailView initializer with a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=178351
<rdar://problem/34979453>

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _page]):
(-[WKWebView _setThumbnailView:]):
(-[WKWebView _thumbnailView]):
(-[WKWebView _setIgnoresAllEvents:]):
(-[WKWebView _ignoresAllEvents]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/_WKThumbnailView.h:
  • UIProcess/API/Cocoa/_WKThumbnailView.mm:

(-[_WKThumbnailView initWithFrame:fromWKWebView:]):
(-[_WKThumbnailView _viewWasUnparented]):
(-[_WKThumbnailView _viewWasParented]):

Location:
trunk/Source/WebKit
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r223437 r223439  
     12017-10-16  Alex Christensen  <achristensen@webkit.org>
     2
     3        Add a _WKThumbnailView initializer with a WKWebView
     4        https://bugs.webkit.org/show_bug.cgi?id=178351
     5        <rdar://problem/34979453>
     6
     7        Reviewed by Tim Horton.
     8
     9        * UIProcess/API/Cocoa/WKWebView.mm:
     10        (-[WKWebView _page]):
     11        (-[WKWebView _setThumbnailView:]):
     12        (-[WKWebView _thumbnailView]):
     13        (-[WKWebView _setIgnoresAllEvents:]):
     14        (-[WKWebView _ignoresAllEvents]):
     15        * UIProcess/API/Cocoa/WKWebViewInternal.h:
     16        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
     17        * UIProcess/API/Cocoa/_WKThumbnailView.h:
     18        * UIProcess/API/Cocoa/_WKThumbnailView.mm:
     19        (-[_WKThumbnailView initWithFrame:fromWKWebView:]):
     20        (-[_WKThumbnailView _viewWasUnparented]):
     21        (-[_WKThumbnailView _viewWasParented]):
     22
    1232017-10-16  Alex Christensen  <achristensen@webkit.org>
    224
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm

    r223437 r223439  
    10781078{
    10791079    return toAPI(_page.get());
     1080}
     1081
     1082- (WebKit::WebPageProxy *)_page
     1083{
     1084    return _page.get();
    10801085}
    10811086
     
    54595464}
    54605465
     5466- (void)_setThumbnailView:(_WKThumbnailView *)thumbnailView
     5467{
     5468    _impl->setThumbnailView(thumbnailView);
     5469}
     5470
     5471- (_WKThumbnailView *)_thumbnailView
     5472{
     5473    if (!_impl)
     5474        return nil;
     5475    return _impl->thumbnailView();
     5476}
     5477
     5478- (void)_setIgnoresAllEvents:(BOOL)ignoresAllEvents
     5479{
     5480    _impl->setIgnoresAllEvents(ignoresAllEvents);
     5481}
     5482
     5483- (BOOL)_ignoresAllEvents
     5484{
     5485    return _impl->ignoresAllEvents();
     5486}
     5487
    54615488#endif
    54625489
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h

    r221065 r223439  
    148148
    149149- (WKPageRef)_pageForTesting;
     150- (WebKit::WebPageProxy*)_page;
    150151
    151152@end
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h

    r223437 r223439  
    101101@class _WKRemoteObjectRegistry;
    102102@class _WKSessionState;
     103@class _WKThumbnailView;
    103104@class _WKWebsitePolicies;
    104105@class _WKWebViewPrintFormatter;
     
    289290@property (nonatomic, setter=_setOverlayScrollbarStyle:) _WKOverlayScrollbarStyle _overlayScrollbarStyle WK_API_AVAILABLE(macosx(WK_MAC_TBA));
    290291@property (strong, nonatomic, setter=_setInspectorAttachmentView:) NSView *_inspectorAttachmentView WK_API_AVAILABLE(macosx(WK_MAC_TBA));
     292
     293@property (nonatomic, setter=_setThumbnailView:) _WKThumbnailView *_thumbnailView WK_API_AVAILABLE(macosx(WK_MAC_TBA));
     294@property (nonatomic, setter=_setIgnoresAllEvents:) BOOL _ignoresAllEvents WK_API_AVAILABLE(macosx(WK_MAC_TBA));
    291295
    292296#endif
  • trunk/Source/WebKit/UIProcess/API/Cocoa/_WKThumbnailView.h

    r205878 r223439  
    3333
    3434@class WKView;
     35@class WKWebView;
    3536
    3637WK_CLASS_AVAILABLE(macosx(10.10), ios(8.0))
     
    3839
    3940- (instancetype)initWithFrame:(NSRect)frame fromWKView:(WKView *)wkView;
     41- (instancetype)initWithFrame:(NSRect)frame fromWKWebView:(WKWebView *)webView;
    4042
    4143@property (nonatomic) CGFloat scale;
  • trunk/Source/WebKit/UIProcess/API/Cocoa/_WKThumbnailView.mm

    r221068 r223439  
    3535#import "WKView.h"
    3636#import "WKViewInternal.h"
     37#import "WKWebViewInternal.h"
    3738#import "WebPageProxy.h"
    3839
     
    4849@implementation _WKThumbnailView {
    4950    RetainPtr<WKView> _wkView;
     51    RetainPtr<WKWebView> _wkWebView;
    5052    WebPageProxy* _webPageProxy;
    5153
     
    6365@synthesize shouldKeepSnapshotWhenRemovedFromSuperview=_shouldKeepSnapshotWhenRemovedFromSuperview;
    6466
    65 - (instancetype)initWithFrame:(NSRect)frame fromWKView:(WKView *)wkView
     67- (instancetype)initWithFrame:(NSRect)frame
    6668{
    6769    if (!(self = [super initWithFrame:frame]))
     
    7072    self.wantsLayer = YES;
    7173    self.layer.backgroundColor = [NSColor whiteColor].CGColor;
     74    _scale = 1;
     75    _lastSnapshotScale = NAN;
     76   
     77    return self;
     78}
     79
     80- (instancetype)initWithFrame:(NSRect)frame fromWKView:(WKView *)wkView
     81{
     82    if (!(self = [self initWithFrame:frame]))
     83        return nil;
    7284
    7385    _wkView = wkView;
    7486    _webPageProxy = toImpl([_wkView pageRef]);
    75     _scale = 1;
    76     _lastSnapshotScale = NAN;
    77 
    7887    _originalMayStartMediaWhenInWindow = _webPageProxy->mayStartMediaWhenInWindow();
    7988    _originalSourceViewIsInWindow = !![_wkView window];
    8089
     90    return self;
     91}
     92
     93- (instancetype)initWithFrame:(NSRect)frame fromWKWebView:(WKWebView *)webView
     94{
     95    if (!(self = [super initWithFrame:frame]))
     96        return nil;
     97   
     98    _wkWebView = webView;
     99    _webPageProxy = [_wkWebView _page];
     100    _originalMayStartMediaWhenInWindow = _webPageProxy->mayStartMediaWhenInWindow();
     101    _originalSourceViewIsInWindow = !![_wkWebView window];
     102   
    81103    return self;
    82104}
     
    118140{
    119141    if (!_exclusivelyUsesSnapshot) {
    120         [_wkView _setThumbnailView:nil];
    121         [_wkView _setIgnoresAllEvents:NO];
     142        if (_wkView) {
     143            [_wkView _setThumbnailView:nil];
     144            [_wkView _setIgnoresAllEvents:NO];
     145        } else {
     146            ASSERT(_wkWebView);
     147            [_wkWebView _setThumbnailView:nil];
     148            [_wkWebView _setIgnoresAllEvents:NO];
     149        }
    122150        _webPageProxy->setMayStartMediaWhenInWindow(_originalMayStartMediaWhenInWindow);
    123151    }
     
    132160- (void)_viewWasParented
    133161{
    134     if ([_wkView _thumbnailView])
     162    if (_wkView && [_wkView _thumbnailView])
     163        return;
     164    if (_wkWebView && [_wkWebView _thumbnailView])
    135165        return;
    136166
     
    141171
    142172    if (!_exclusivelyUsesSnapshot) {
    143         [_wkView _setThumbnailView:self];
    144         [_wkView _setIgnoresAllEvents:YES];
     173        if (_wkView) {
     174            [_wkView _setThumbnailView:self];
     175            [_wkView _setIgnoresAllEvents:YES];
     176        } else {
     177            ASSERT(_wkWebView);
     178            [_wkWebView _setThumbnailView:self];
     179            [_wkWebView _setIgnoresAllEvents:YES];
     180        }
    145181    }
    146182}
Note: See TracChangeset for help on using the changeset viewer.