Changeset 191637 in webkit


Ignore:
Timestamp:
Oct 27, 2015 1:55:36 PM (8 years ago)
Author:
timothy_horton@apple.com
Message:

WKView being inside WKWebView leads to weird API issues
https://bugs.webkit.org/show_bug.cgi?id=150174

Reviewed by Anders Carlsson.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _superAccessibilityAttributeValue:]):
(-[WKView accessibilityFocusedUIElement]):
(-[WKView accessibilityIsIgnored]):
(-[WKView accessibilityHitTest:]):
(-[WKView accessibilityAttributeValue:]):
(-[WKView _processDidExit]):
(-[WKView _pageClosed]):
(-[WKView _updateRemoteAccessibilityRegistration:]): Deleted.
(-[WKView enableAccessibilityIfNecessary]): Deleted.
(-[WKView _toolTipChangedFrom:to:]): Deleted.
(-[WKView _setAccessibilityWebProcessToken:]): Deleted.
(-[WKView _hasFullScreenWindowController]): Deleted.
(-[WKView _fullScreenWindowController]): Deleted.
(-[WKView _closeFullScreenWindowController]): Deleted.
(-[WKView _setSuppressVisibilityUpdates:]): Deleted.
(-[WKView _suppressVisibilityUpdates]): Deleted.
(-[WKView _primaryTrackingArea]): Deleted.
(-[WKView _setPrimaryTrackingArea:]): Deleted.
(-[WKView initWithFrame:processPool:configuration:webView:]): Deleted.

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/Cocoa/WebViewImpl.h:

(WebKit::WebViewImpl::accessibilityIsIgnored):
(WebKit::WebViewImpl::primaryTrackingArea):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::trackingAreaOptions):
(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::setAccessibilityWebProcessToken):
(WebKit::WebViewImpl::updateRemoteAccessibilityRegistration):
(WebKit::WebViewImpl::accessibilityFocusedUIElement):
(WebKit::WebViewImpl::accessibilityHitTest):
(WebKit::WebViewImpl::enableAccessibilityIfNecessary):
(WebKit::WebViewImpl::accessibilityAttributeValue):
(WebKit::WebViewImpl::setPrimaryTrackingArea):
(WebKit::WebViewImpl::toolTipChanged):

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::toolTipChanged):
(WebKit::PageClientImpl::accessibilityWebProcessTokenReceived):
(WebKit::PageClientImpl::recommendedScrollbarStyleDidChange):
(WebKit::PageClientImpl::closeFullScreenManager):
(WebKit::PageClientImpl::isFullScreen):
(WebKit::PageClientImpl::enterFullScreen):
(WebKit::PageClientImpl::exitFullScreen):
(WebKit::PageClientImpl::beganEnterFullScreen):
(WebKit::PageClientImpl::beganExitFullScreen):
Move accessibility code, and fold in some internal-only methods.

Location:
trunk/Source/WebKit2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r191634 r191637  
     12015-10-27  Tim Horton  <timothy_horton@apple.com>
     2
     3        WKView being inside WKWebView leads to weird API issues
     4        https://bugs.webkit.org/show_bug.cgi?id=150174
     5
     6        Reviewed by Anders Carlsson.
     7
     8        * UIProcess/API/mac/WKView.mm:
     9        (-[WKView _superAccessibilityAttributeValue:]):
     10        (-[WKView accessibilityFocusedUIElement]):
     11        (-[WKView accessibilityIsIgnored]):
     12        (-[WKView accessibilityHitTest:]):
     13        (-[WKView accessibilityAttributeValue:]):
     14        (-[WKView _processDidExit]):
     15        (-[WKView _pageClosed]):
     16        (-[WKView _updateRemoteAccessibilityRegistration:]): Deleted.
     17        (-[WKView enableAccessibilityIfNecessary]): Deleted.
     18        (-[WKView _toolTipChangedFrom:to:]): Deleted.
     19        (-[WKView _setAccessibilityWebProcessToken:]): Deleted.
     20        (-[WKView _hasFullScreenWindowController]): Deleted.
     21        (-[WKView _fullScreenWindowController]): Deleted.
     22        (-[WKView _closeFullScreenWindowController]): Deleted.
     23        (-[WKView _setSuppressVisibilityUpdates:]): Deleted.
     24        (-[WKView _suppressVisibilityUpdates]): Deleted.
     25        (-[WKView _primaryTrackingArea]): Deleted.
     26        (-[WKView _setPrimaryTrackingArea:]): Deleted.
     27        (-[WKView initWithFrame:processPool:configuration:webView:]): Deleted.
     28        * UIProcess/API/mac/WKViewInternal.h:
     29        * UIProcess/Cocoa/WebViewImpl.h:
     30        (WebKit::WebViewImpl::accessibilityIsIgnored):
     31        (WebKit::WebViewImpl::primaryTrackingArea):
     32        * UIProcess/Cocoa/WebViewImpl.mm:
     33        (WebKit::trackingAreaOptions):
     34        (WebKit::WebViewImpl::WebViewImpl):
     35        (WebKit::WebViewImpl::setAccessibilityWebProcessToken):
     36        (WebKit::WebViewImpl::updateRemoteAccessibilityRegistration):
     37        (WebKit::WebViewImpl::accessibilityFocusedUIElement):
     38        (WebKit::WebViewImpl::accessibilityHitTest):
     39        (WebKit::WebViewImpl::enableAccessibilityIfNecessary):
     40        (WebKit::WebViewImpl::accessibilityAttributeValue):
     41        (WebKit::WebViewImpl::setPrimaryTrackingArea):
     42        (WebKit::WebViewImpl::toolTipChanged):
     43        * UIProcess/mac/PageClientImpl.mm:
     44        (WebKit::PageClientImpl::toolTipChanged):
     45        (WebKit::PageClientImpl::accessibilityWebProcessTokenReceived):
     46        (WebKit::PageClientImpl::recommendedScrollbarStyleDidChange):
     47        (WebKit::PageClientImpl::closeFullScreenManager):
     48        (WebKit::PageClientImpl::isFullScreen):
     49        (WebKit::PageClientImpl::enterFullScreen):
     50        (WebKit::PageClientImpl::exitFullScreen):
     51        (WebKit::PageClientImpl::beganEnterFullScreen):
     52        (WebKit::PageClientImpl::beganExitFullScreen):
     53        Move accessibility code, and fold in some internal-only methods.
     54
    1552015-10-27  Tim Horton  <timothy_horton@apple.com>
    256
  • trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm

    r191634 r191637  
    162162    RetainPtr<_WKRemoteObjectRegistry> _remoteObjectRegistry;
    163163#endif
    164 
    165     RetainPtr<NSTrackingArea> _primaryTrackingArea;
    166 
    167     RetainPtr<id> _remoteAccessibilityChild;
    168164
    169165    // For asynchronous validation.
     
    20482044}
    20492045
     2046- (id)_superAccessibilityAttributeValue:(NSString *)attribute
     2047{
     2048#pragma clang diagnostic push
     2049#pragma clang diagnostic ignored "-Wdeprecated-declarations"
     2050    return [super accessibilityAttributeValue:attribute];
     2051#pragma clang diagnostic pop
     2052}
     2053
    20502054- (NSArray *)validAttributesForMarkedText
    20512055{
     
    21702174}
    21712175
    2172 - (void)_updateRemoteAccessibilityRegistration:(BOOL)registerProcess
    2173 {
    2174     // When the tree is connected/disconnected, the remote accessibility registration
    2175     // needs to be updated with the pid of the remote process. If the process is going
    2176     // away, that information is not present in WebProcess
    2177     pid_t pid = 0;
    2178     if (registerProcess)
    2179         pid = _data->_page->process().processIdentifier();
    2180     else if (!registerProcess) {
    2181         pid = WKAXRemoteProcessIdentifier(_data->_remoteAccessibilityChild.get());
    2182         _data->_remoteAccessibilityChild = nil;
    2183     }
    2184     if (pid)
    2185         WKAXRegisterRemoteProcess(registerProcess, pid);
    2186 }
    2187 
    2188 - (void)enableAccessibilityIfNecessary
    2189 {
    2190     if (WebCore::AXObjectCache::accessibilityEnabled())
    2191         return;
    2192 
    2193     // After enabling accessibility update the window frame on the web process so that the
    2194     // correct accessibility position is transmitted (when AX is off, that position is not calculated).
    2195     WebCore::AXObjectCache::enableAccessibility();
    2196     _data->_impl->updateWindowAndViewFrames();
    2197 }
    2198 
    21992176- (id)accessibilityFocusedUIElement
    22002177{
    2201     [self enableAccessibilityIfNecessary];
    2202     return _data->_remoteAccessibilityChild.get();
     2178    return _data->_impl->accessibilityFocusedUIElement();
    22032179}
    22042180
    22052181- (BOOL)accessibilityIsIgnored
    22062182{
    2207     return NO;
     2183    return _data->_impl->accessibilityIsIgnored();
    22082184}
    22092185
    22102186- (id)accessibilityHitTest:(NSPoint)point
    22112187{
    2212     [self enableAccessibilityIfNecessary];
    2213     return _data->_remoteAccessibilityChild.get();
    2214 }
    2215 
    2216 - (id)accessibilityAttributeValue:(NSString*)attribute
    2217 {
    2218     [self enableAccessibilityIfNecessary];
    2219 
    2220     if ([attribute isEqualToString:NSAccessibilityChildrenAttribute]) {
    2221 
    2222         id child = nil;
    2223         if (_data->_remoteAccessibilityChild)
    2224             child = _data->_remoteAccessibilityChild.get();
    2225        
    2226         if (!child)
    2227             return nil;
    2228         return [NSArray arrayWithObject:child];
    2229     }
    2230     if ([attribute isEqualToString:NSAccessibilityRoleAttribute])
    2231         return NSAccessibilityGroupRole;
    2232     if ([attribute isEqualToString:NSAccessibilityRoleDescriptionAttribute])
    2233         return NSAccessibilityRoleDescription(NSAccessibilityGroupRole, nil);
    2234     if ([attribute isEqualToString:NSAccessibilityParentAttribute])
    2235         return NSAccessibilityUnignoredAncestor([self superview]);
    2236     if ([attribute isEqualToString:NSAccessibilityEnabledAttribute])
    2237         return [NSNumber numberWithBool:YES];
    2238    
    2239     return [super accessibilityAttributeValue:attribute];
     2188    return _data->_impl->accessibilityHitTest(NSPointToCGPoint(point));
     2189}
     2190
     2191- (id)accessibilityAttributeValue:(NSString *)attribute
     2192{
     2193    return _data->_impl->accessibilityAttributeValue(attribute);
    22402194}
    22412195
     
    22792233        _data->_impl->setAcceleratedCompositingRootLayer(nil);
    22802234
    2281     [self _updateRemoteAccessibilityRegistration:NO];
     2235    _data->_impl->updateRemoteAccessibilityRegistration(false);
    22822236
    22832237    _data->_impl->resetGestureController();
     
    22862240- (void)_pageClosed
    22872241{
    2288     [self _updateRemoteAccessibilityRegistration:NO];
     2242    _data->_impl->updateRemoteAccessibilityRegistration(false);
    22892243}
    22902244
     
    23772331{
    23782332    return _data->_impl->stringForToolTip(tag);
    2379 }
    2380 
    2381 - (void)_toolTipChangedFrom:(NSString *)oldToolTip to:(NSString *)newToolTip
    2382 {
    2383     _data->_impl->toolTipChanged(oldToolTip, newToolTip);
    2384 }
    2385 
    2386 - (void)_setAccessibilityWebProcessToken:(NSData *)data
    2387 {
    2388     _data->_remoteAccessibilityChild = WKAXRemoteElementForToken(data);
    2389     [self _updateRemoteAccessibilityRegistration:YES];
    23902333}
    23912334
     
    25472490}
    25482491
    2549 #if ENABLE(FULLSCREEN_API)
    2550 - (BOOL)_hasFullScreenWindowController
    2551 {
    2552     return _data->_impl->hasFullScreenWindowController();
    2553 }
    2554 
    2555 - (WKFullScreenWindowController *)_fullScreenWindowController
    2556 {
    2557     return _data->_impl->fullScreenWindowController();
    2558 }
    2559 
    2560 - (void)_closeFullScreenWindowController
    2561 {
    2562     _data->_impl->closeFullScreenWindowController();
    2563 }
    2564 #endif
    2565 
    25662492- (bool)_executeSavedCommandBySelector:(SEL)selector
    25672493{
     
    25892515}
    25902516
    2591 - (void)_setSuppressVisibilityUpdates:(BOOL)suppressVisibilityUpdates
    2592 {
    2593     _data->_page->setSuppressVisibilityUpdates(suppressVisibilityUpdates);
    2594 }
    2595 
    2596 - (BOOL)_suppressVisibilityUpdates
    2597 {
    2598     return _data->_page->suppressVisibilityUpdates();
    2599 }
    2600 
    2601 - (NSTrackingArea *)_primaryTrackingArea
    2602 {
    2603     return _data->_primaryTrackingArea.get();
    2604 }
    2605 
    2606 - (void)_setPrimaryTrackingArea:(NSTrackingArea *)trackingArea
    2607 {
    2608     [self removeTrackingArea:_data->_primaryTrackingArea.get()];
    2609     _data->_primaryTrackingArea = trackingArea;
    2610     [self addTrackingArea:trackingArea];
    2611 }
    2612 
    26132517- (instancetype)initWithFrame:(NSRect)frame processPool:(WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)configuration webView:(WKWebView *)webView
    26142518{
     
    26212525    InitializeWebKit2();
    26222526
    2623     // Legacy style scrollbars have design details that rely on tracking the mouse all the time.
    2624     NSTrackingAreaOptions options = NSTrackingMouseMoved | NSTrackingMouseEnteredAndExited | NSTrackingInVisibleRect | NSTrackingCursorUpdate;
    2625     if (WKRecommendedScrollerStyle() == NSScrollerStyleLegacy)
    2626         options |= NSTrackingActiveAlways;
    2627     else
    2628         options |= NSTrackingActiveInKeyWindow;
    2629 
    26302527    _data = [[WKViewData alloc] init];
    2631     _data->_primaryTrackingArea = adoptNS([[NSTrackingArea alloc] initWithRect:frame options:options owner:self userInfo:nil]);
    2632     [self addTrackingArea:_data->_primaryTrackingArea.get()];
    26332528
    26342529    _data->_pageClient = std::make_unique<PageClientImpl>(self, webView);
  • trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h

    r191634 r191637  
    2828#import "WKViewPrivate.h"
    2929
    30 #import "APIObject.h"
    31 #import "PluginComplexTextInputState.h"
    32 #import "SameDocumentNavigationType.h"
    33 #import "WebFindOptions.h"
    34 #import "WebHitTestResultData.h"
    3530#import <wtf/Forward.h>
    3631#import <wtf/RetainPtr.h>
     
    4035
    4136namespace API {
    42 class Object;
    4337class PageConfiguration;
    4438}
     
    5145class Image;
    5246class SharedBuffer;
    53 class TextIndicator;
    54 enum class TextIndicatorWindowLifetime : uint8_t;
    55 enum class TextIndicatorWindowDismissalAnimation : uint8_t;
    56 struct KeypressCommand;
    5747}
    5848
    5949namespace WebKit {
    6050class DrawingAreaProxy;
    61 class LayerTreeContext;
    62 class ViewSnapshot;
    6351class WebProcessPool;
    6452struct ColorSpaceData;
    65 struct EditorState;
    6653}
    6754
    68 @class WKFullScreenWindowController;
    6955@class WKWebView;
    7056#if WK_API_ENABLED
     
    8167- (void)_pageClosed;
    8268- (void)_didRelaunchProcess;
    83 - (void)_toolTipChangedFrom:(NSString *)oldToolTip to:(NSString *)newToolTip;
    8469- (void)_setUserInterfaceItemState:(NSString *)commandName enabled:(BOOL)isEnabled state:(int)newState;
    8570- (void)_doneWithKeyEvent:(NSEvent *)event eventWasHandled:(BOOL)eventWasHandled;
     
    8772- (NSRect)_convertToDeviceSpace:(NSRect)rect;
    8873- (NSRect)_convertToUserSpace:(NSRect)rect;
    89 
    90 - (void)_setAccessibilityWebProcessToken:(NSData *)data;
    9174
    9275- (void)_dragImageForView:(NSView *)view withImage:(NSImage *)image at:(NSPoint)clientPoint linkDrag:(BOOL)linkDrag;
     
    10184- (void)handleAcceptedAlternativeText:(NSString*)text;
    10285
    103 - (void)_setSuppressVisibilityUpdates:(BOOL)suppressVisibilityUpdates;
    104 - (BOOL)_suppressVisibilityUpdates;
    105 
    10686#if WK_API_ENABLED
    10787@property (nonatomic, setter=_setThumbnailView:) _WKThumbnailView *_thumbnailView;
     
    10989
    11090- (void)_addFontPanelObserver;
    111 // FullScreen
    112 
    113 @property (readonly) BOOL _hasFullScreenWindowController;
    114 @property (readonly) WKFullScreenWindowController *_fullScreenWindowController;
    115 - (void)_closeFullScreenWindowController;
    11691
    11792#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
    11893- (void)_startWindowDrag;
    11994#endif
    120 
    121 @property (nonatomic, retain, setter=_setPrimaryTrackingArea:) NSTrackingArea *_primaryTrackingArea;
    12295
    12396#if WK_API_ENABLED
  • trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h

    r191634 r191637  
    5656- (void)_superMagnifyWithEvent:(NSEvent *)event;
    5757- (void)_superSmartMagnifyWithEvent:(NSEvent *)event;
     58- (id)_superAccessibilityAttributeValue:(NSString *)attribute;
    5859
    5960// This is a hack; these things live can live on a category (e.g. WKView (Private)) but WKView itself conforms to this protocol.
     
    226227    bool ignoresMouseDraggedEvents() const { return m_ignoresMouseDraggedEvents; }
    227228
     229    void setAccessibilityWebProcessToken(NSData *);
    228230    void accessibilityRegisterUIProcessTokens();
     231    void updateRemoteAccessibilityRegistration(bool registerProcess);
     232    id accessibilityFocusedUIElement();
     233    bool accessibilityIsIgnored() const { return false; }
     234    id accessibilityHitTest(CGPoint);
     235    void enableAccessibilityIfNecessary();
     236    id accessibilityAttributeValue(NSString *);
     237
     238    NSTrackingArea *primaryTrackingArea() const { return m_primaryTrackingArea.get(); }
     239    void setPrimaryTrackingArea(NSTrackingArea *);
    229240
    230241    NSTrackingRectTag addTrackingRect(CGRect, id owner, void* userData, bool assumeInside);
     
    234245    void removeTrackingRects(NSTrackingRectTag *, int count);
    235246    NSString *stringForToolTip(NSToolTipTag tag);
    236     void toolTipChanged(NSString *oldToolTip, NSString *newToolTip);
     247    void toolTipChanged(const String& oldToolTip, const String& newToolTip);
    237248
    238249    void setAcceleratedCompositingRootLayer(CALayer *);
     
    369380    bool m_didRegisterForLookupPopoverCloseNotifications { false };
    370381
     382    RetainPtr<NSTrackingArea> m_primaryTrackingArea;
     383
    371384    NSToolTipTag m_lastToolTipTag { 0 };
    372385    id m_trackingRectOwner { nil };
     
    383396    bool m_allowsBackForwardNavigationGestures { false };
    384397    bool m_allowsMagnification { false };
     398
     399    RetainPtr<id> m_remoteAccessibilityChild;
    385400};
    386401   
  • trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm

    r191634 r191637  
    322322namespace WebKit {
    323323
     324static NSTrackingAreaOptions trackingAreaOptions()
     325{
     326    // Legacy style scrollbars have design details that rely on tracking the mouse all the time.
     327    NSTrackingAreaOptions options = NSTrackingMouseMoved | NSTrackingMouseEnteredAndExited | NSTrackingInVisibleRect | NSTrackingCursorUpdate;
     328    if (WKRecommendedScrollerStyle() == NSScrollerStyleLegacy)
     329        options |= NSTrackingActiveAlways;
     330    else
     331        options |= NSTrackingActiveInKeyWindow;
     332    return options;
     333}
     334
    324335WebViewImpl::WebViewImpl(NSView <WebViewImplDelegate> *view, WebPageProxy& page, PageClient& pageClient)
    325336    : m_view(view)
     
    332343    , m_undoTarget(adoptNS([[WKEditorUndoTargetObjC alloc] init]))
    333344    , m_windowVisibilityObserver(adoptNS([[WKWindowVisibilityObserver alloc] initWithView:view impl:*this]))
    334 {
     345    , m_primaryTrackingArea(adoptNS([[NSTrackingArea alloc] initWithRect:m_view.frame options:trackingAreaOptions() owner:m_view userInfo:nil]))
     346{
     347    [m_view addTrackingArea:m_primaryTrackingArea.get()];
     348
    335349    m_page.setIntrinsicDeviceScaleFactor(intrinsicDeviceScaleFactor());
    336350
     
    14651479}
    14661480
     1481void WebViewImpl::setAccessibilityWebProcessToken(NSData *data)
     1482{
     1483    m_remoteAccessibilityChild = WKAXRemoteElementForToken(data);
     1484    updateRemoteAccessibilityRegistration(true);
     1485}
     1486
     1487void WebViewImpl::updateRemoteAccessibilityRegistration(bool registerProcess)
     1488{
     1489    // When the tree is connected/disconnected, the remote accessibility registration
     1490    // needs to be updated with the pid of the remote process. If the process is going
     1491    // away, that information is not present in WebProcess
     1492    pid_t pid = 0;
     1493    if (registerProcess)
     1494        pid = m_page.process().processIdentifier();
     1495    else if (!registerProcess) {
     1496        pid = WKAXRemoteProcessIdentifier(m_remoteAccessibilityChild.get());
     1497        m_remoteAccessibilityChild = nil;
     1498    }
     1499    if (pid)
     1500        WKAXRegisterRemoteProcess(registerProcess, pid);
     1501}
     1502
    14671503void WebViewImpl::accessibilityRegisterUIProcessTokens()
    14681504{
     
    14731509    IPC::DataReference windowToken = IPC::DataReference(reinterpret_cast<const uint8_t*>([remoteWindowToken bytes]), [remoteWindowToken length]);
    14741510    m_page.registerUIProcessAccessibilityTokens(elementToken, windowToken);
     1511}
     1512
     1513id WebViewImpl::accessibilityFocusedUIElement()
     1514{
     1515    enableAccessibilityIfNecessary();
     1516    return m_remoteAccessibilityChild.get();
     1517}
     1518
     1519id WebViewImpl::accessibilityHitTest(CGPoint)
     1520{
     1521    return accessibilityFocusedUIElement();
     1522}
     1523
     1524void WebViewImpl::enableAccessibilityIfNecessary()
     1525{
     1526    if (WebCore::AXObjectCache::accessibilityEnabled())
     1527        return;
     1528
     1529    // After enabling accessibility update the window frame on the web process so that the
     1530    // correct accessibility position is transmitted (when AX is off, that position is not calculated).
     1531    WebCore::AXObjectCache::enableAccessibility();
     1532    updateWindowAndViewFrames();
     1533}
     1534
     1535id WebViewImpl::accessibilityAttributeValue(NSString *attribute)
     1536{
     1537    enableAccessibilityIfNecessary();
     1538
     1539    if ([attribute isEqualToString:NSAccessibilityChildrenAttribute]) {
     1540
     1541        id child = nil;
     1542        if (m_remoteAccessibilityChild)
     1543            child = m_remoteAccessibilityChild.get();
     1544
     1545            if (!child)
     1546                return nil;
     1547        return [NSArray arrayWithObject:child];
     1548    }
     1549    if ([attribute isEqualToString:NSAccessibilityRoleAttribute])
     1550        return NSAccessibilityGroupRole;
     1551    if ([attribute isEqualToString:NSAccessibilityRoleDescriptionAttribute])
     1552        return NSAccessibilityRoleDescription(NSAccessibilityGroupRole, nil);
     1553        if ([attribute isEqualToString:NSAccessibilityParentAttribute])
     1554            return NSAccessibilityUnignoredAncestor([m_view superview]);
     1555            if ([attribute isEqualToString:NSAccessibilityEnabledAttribute])
     1556                return @YES;
     1557   
     1558    return [m_view _superAccessibilityAttributeValue:attribute];
     1559}
     1560
     1561void WebViewImpl::setPrimaryTrackingArea(NSTrackingArea *trackingArea)
     1562{
     1563    [m_view removeTrackingArea:m_primaryTrackingArea.get()];
     1564    m_primaryTrackingArea = trackingArea;
     1565    [m_view addTrackingArea:trackingArea];
    14751566}
    14761567
     
    15721663}
    15731664
    1574 void WebViewImpl::toolTipChanged(NSString *oldToolTip, NSString *newToolTip)
    1575 {
    1576     if (oldToolTip)
     1665void WebViewImpl::toolTipChanged(const String& oldToolTip, const String& newToolTip)
     1666{
     1667    if (!oldToolTip.isNull())
    15771668        sendToolTipMouseExited();
    15781669   
    1579     if (newToolTip && [newToolTip length] > 0) {
     1670    if (!newToolTip.isEmpty()) {
    15801671        // See radar 3500217 for why we remove all tooltips rather than just the single one we created.
    15811672        [m_view removeAllToolTips];
  • trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.mm

    r191634 r191637  
    265265void PageClientImpl::toolTipChanged(const String& oldToolTip, const String& newToolTip)
    266266{
    267     [m_wkView _toolTipChangedFrom:nsStringFromWebCoreString(oldToolTip) to:nsStringFromWebCoreString(newToolTip)];
     267    m_impl->toolTipChanged(oldToolTip, newToolTip);
    268268}
    269269
     
    475475void PageClientImpl::accessibilityWebProcessTokenReceived(const IPC::DataReference& data)
    476476{
    477     NSData* remoteToken = [NSData dataWithBytes:data.data() length:data.size()];
    478     [m_wkView _setAccessibilityWebProcessToken:remoteToken];
     477    m_impl->setAccessibilityWebProcessToken([NSData dataWithBytes:data.data() length:data.size()]);
    479478}
    480479   
     
    602601
    603602    RetainPtr<NSTrackingArea> trackingArea = adoptNS([[NSTrackingArea alloc] initWithRect:[m_wkView frame] options:options owner:m_wkView userInfo:nil]);
    604     [m_wkView _setPrimaryTrackingArea:trackingArea.get()];
     603    m_impl->setPrimaryTrackingArea(trackingArea.get());
    605604}
    606605
     
    659658void PageClientImpl::closeFullScreenManager()
    660659{
    661     [m_wkView _closeFullScreenWindowController];
     660    m_impl->closeFullScreenWindowController();
    662661}
    663662
    664663bool PageClientImpl::isFullScreen()
    665664{
    666     if (!m_wkView._hasFullScreenWindowController)
     665    if (!m_impl->hasFullScreenWindowController())
    667666        return false;
    668667
    669     return m_wkView._fullScreenWindowController.isFullScreen;
     668    return m_impl->fullScreenWindowController().isFullScreen;
    670669}
    671670
    672671void PageClientImpl::enterFullScreen()
    673672{
    674     [m_wkView._fullScreenWindowController enterFullScreen:nil];
     673    [m_impl->fullScreenWindowController() enterFullScreen:nil];
    675674}
    676675
    677676void PageClientImpl::exitFullScreen()
    678677{
    679     [m_wkView._fullScreenWindowController exitFullScreen];
     678    [m_impl->fullScreenWindowController() exitFullScreen];
    680679}
    681680
    682681void PageClientImpl::beganEnterFullScreen(const IntRect& initialFrame, const IntRect& finalFrame)
    683682{
    684     [m_wkView._fullScreenWindowController beganEnterFullScreenWithInitialFrame:initialFrame finalFrame:finalFrame];
     683    [m_impl->fullScreenWindowController() beganEnterFullScreenWithInitialFrame:initialFrame finalFrame:finalFrame];
    685684    m_impl->updateSupportsArbitraryLayoutModes();
    686685}
     
    688687void PageClientImpl::beganExitFullScreen(const IntRect& initialFrame, const IntRect& finalFrame)
    689688{
    690     [m_wkView._fullScreenWindowController beganExitFullScreenWithInitialFrame:initialFrame finalFrame:finalFrame];
     689    [m_impl->fullScreenWindowController() beganExitFullScreenWithInitialFrame:initialFrame finalFrame:finalFrame];
    691690    m_impl->updateSupportsArbitraryLayoutModes();
    692691}
Note: See TracChangeset for help on using the changeset viewer.