Changeset 268384 in webkit


Ignore:
Timestamp:
Oct 12, 2020 7:15:00 PM (3 years ago)
Author:
Devin Rousso
Message:

CSS "any-pointer:fine" media query false on iPad/Pencil
https://bugs.webkit.org/show_bug.cgi?id=212580
<rdar://problem/63813283>

Reviewed by Wenson Hsieh.

Source/WebKit:

Use +[UIScribbleInteraction isPencilInputExpected] as a proxy for the presence of stylus
devices as there's no way of directly querying for connected stylus devices (especially if
there is no active connection). When the value is changed to YES, notify all WebProcess
immediately. When the value is changed to NO, use an NSTimer to delay notifying all
WebProcess for 10min in case the user starts using their stylus again.

For live-on/tweaking purposes this 10min timeout can be adjusted before the UIProcess is
created with the WKStylusDeviceObserverChangeTimeInterval key in NSUserDefaults.

  • UIProcess/ios/WKStylusDeviceObserver.h: Added.
  • UIProcess/ios/WKStylusDeviceObserver.mm: Added.

(+[WKStylusDeviceObserver sharedInstance]):
(-[WKStylusDeviceObserver init]):
(-[WKStylusDeviceObserver setHasStylusDevice:]):
(-[WKStylusDeviceObserver start]):
(-[WKStylusDeviceObserver stop]):
(-[WKStylusDeviceObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WKStylusDeviceObserver startChangeTimer:]):
(-[WKStylusDeviceObserver changeTimerFired:]):
Use ObjC KVO to listen for changes to +[UIScribbleInteraction isPencilInputExpected].

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::notifyHasStylusDeviceChanged): Added.

  • UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::platformInitialize):
(WebKit::WebProcessProxy::platformDestroy):
Tell the shared WKStylusDeviceObserver to start listening when creating the WebProcess.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • Shared/WebProcessCreationParameters.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
Use the current state of the shared WKStylusDeviceObserver when creating WebProcess
instead of sending a SetHasStylusDevice message immediately after the WebProcess is
created.

  • WebProcess/WebProcess.messages.in:
  • WebProcess/WebProcess.h:

(WebKit::WebProcess::hasStylusDevice const): Added.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setHasStylusDevice): Added.
(WebKit::WebProcess::initializeWebProcess):
Update style (including any-pointer) whenever stylus devices change.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::hasStylusDevice): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const):
Include fine when there is a stylus device.

  • UIProcess/ios/WKMouseDeviceObserver.h:
  • UIProcess/ios/WKMouseDeviceObserver.mm:

(-[WKMouseDeviceObserver start]):
(-[WKMouseDeviceObserver stop]):
(-[WKMouseDeviceObserver dealloc]): Removed.
Drive-by: use a count of start/stop instead of WebProcessProxy::allProcesses size.

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/iOSStylusSupport.mm: Added.

(iOSStylusSupport.StylusInitiallyDisconnected):
(iOSStylusSupport.StylusInitiallyConnected):
(iOSStylusSupport.StylusLaterDisconnected):
(iOSStylusSupport.StylusLaterConnected):
(iOSStylusSupport.StylusDisconnectedTimeout):

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
Location:
trunk
Files:
2 added
17 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r268383 r268384  
     12020-10-12  Devin Rousso  <drousso@apple.com>
     2
     3        CSS "any-pointer:fine" media query false on iPad/Pencil
     4        https://bugs.webkit.org/show_bug.cgi?id=212580
     5        <rdar://problem/63813283>
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        Use `+[UIScribbleInteraction isPencilInputExpected]` as a proxy for the presence of stylus
     10        devices as there's no way of directly querying for connected stylus devices (especially if
     11        there is no active connection). When the value is changed to `YES`, notify all WebProcess
     12        immediately. When the value is changed to `NO`, use an `NSTimer` to delay notifying all
     13        WebProcess for 10min in case the user starts using their stylus again.
     14
     15        For live-on/tweaking purposes this 10min timeout can be adjusted before the UIProcess is
     16        created with the `WKStylusDeviceObserverChangeTimeInterval` key in `NSUserDefaults`.
     17
     18        * UIProcess/ios/WKStylusDeviceObserver.h: Added.
     19        * UIProcess/ios/WKStylusDeviceObserver.mm: Added.
     20        (+[WKStylusDeviceObserver sharedInstance]):
     21        (-[WKStylusDeviceObserver init]):
     22        (-[WKStylusDeviceObserver setHasStylusDevice:]):
     23        (-[WKStylusDeviceObserver start]):
     24        (-[WKStylusDeviceObserver stop]):
     25        (-[WKStylusDeviceObserver observeValueForKeyPath:ofObject:change:context:]):
     26        (-[WKStylusDeviceObserver startChangeTimer:]):
     27        (-[WKStylusDeviceObserver changeTimerFired:]):
     28        Use ObjC KVO to listen for changes to `+[UIScribbleInteraction isPencilInputExpected]`.
     29
     30        * UIProcess/WebProcessProxy.h:
     31        * UIProcess/WebProcessProxy.cpp:
     32        (WebKit::WebProcessProxy::notifyHasStylusDeviceChanged): Added.
     33        * UIProcess/ios/WebProcessProxyIOS.mm:
     34        (WebKit::WebProcessProxy::platformInitialize):
     35        (WebKit::WebProcessProxy::platformDestroy):
     36        Tell the shared `WKStylusDeviceObserver` to start listening when creating the WebProcess.
     37
     38        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
     39        (WebKit::WebProcessPool::platformInitializeWebProcess):
     40        * Shared/WebProcessCreationParameters.h:
     41        * Shared/WebProcessCreationParameters.cpp:
     42        (WebKit::WebProcessCreationParameters::encode const):
     43        (WebKit::WebProcessCreationParameters::decode):
     44        Use the current state of the shared `WKStylusDeviceObserver` when creating WebProcess
     45        instead of sending a `SetHasStylusDevice` message immediately after the WebProcess is
     46        created.
     47
     48        * WebProcess/WebProcess.messages.in:
     49        * WebProcess/WebProcess.h:
     50        (WebKit::WebProcess::hasStylusDevice const): Added.
     51        * WebProcess/WebProcess.cpp:
     52        (WebKit::WebProcess::setHasStylusDevice): Added.
     53        (WebKit::WebProcess::initializeWebProcess):
     54        Update style (including `any-pointer`) whenever stylus devices change.
     55
     56        * WebProcess/WebPage/ios/WebPageIOS.mm:
     57        (WebKit::hasStylusDevice): Added.
     58        (WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const):
     59        Include `fine` when there is a stylus device.
     60
     61        * UIProcess/ios/WKMouseDeviceObserver.h:
     62        * UIProcess/ios/WKMouseDeviceObserver.mm:
     63        (-[WKMouseDeviceObserver start]):
     64        (-[WKMouseDeviceObserver stop]):
     65        (-[WKMouseDeviceObserver dealloc]): Removed.
     66        Drive-by: use a count of `start`/`stop` instead of `WebProcessProxy::allProcesses` size.
     67
     68        * SourcesCocoa.txt:
     69        * WebKit.xcodeproj/project.pbxproj:
     70
    1712020-10-12  Darin Adler  <darin@apple.com>
    272
  • trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp

    r268086 r268384  
    8989    encoder << hasMouseDevice;
    9090#endif
     91    encoder << hasStylusDevice;
    9192    encoder << defaultRequestTimeoutInterval;
    9293    encoder << backForwardCacheCapacity;
     
    302303        return false;
    303304#endif
     305    if (!decoder.decode(parameters.hasStylusDevice))
     306        return false;
    304307    if (!decoder.decode(parameters.defaultRequestTimeoutInterval))
    305308        return false;
  • trunk/Source/WebKit/Shared/WebProcessCreationParameters.h

    r268086 r268384  
    121121    bool hasMouseDevice { false };
    122122#endif
     123    bool hasStylusDevice { false };
    123124    bool memoryCacheDisabled { false };
    124125    bool attrStyleEnabled { false };
  • trunk/Source/WebKit/SourcesCocoa.txt

    r268086 r268384  
    467467UIProcess/ios/WKPDFView.mm
    468468UIProcess/ios/WKScrollView.mm
     469UIProcess/ios/WKStylusDeviceObserver.mm
    469470UIProcess/ios/WKSyntheticFlagsChangedWebEvent.mm
    470471UIProcess/ios/WKSyntheticTapGestureRecognizer.mm
  • trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm

    r268278 r268384  
    4242#import "WKBrowsingContextControllerInternal.h"
    4343#import "WKMouseDeviceObserver.h"
     44#import "WKStylusDeviceObserver.h"
    4445#import "WebBackForwardCache.h"
    4546#import "WebMemoryPressureHandler.h"
     
    517518    parameters.hasMouseDevice = [[WKMouseDeviceObserver sharedInstance] hasMouseDevice];
    518519#endif
     520
     521#if HAVE(PENCILKIT_TEXT_INPUT)
     522    parameters.hasStylusDevice = [[WKStylusDeviceObserver sharedInstance] hasStylusDevice];
     523#endif
    519524}
    520525
  • trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp

    r268243 r268384  
    11481148}
    11491149
     1150void WebProcessProxy::notifyHasStylusDeviceChanged(bool hasStylusDevice)
     1151{
     1152    for (auto* webProcessProxy : WebProcessProxy::allProcesses().values())
     1153        webProcessProxy->send(Messages::WebProcess::SetHasStylusDevice(hasStylusDevice), 0);
     1154}
     1155
    11501156void WebProcessProxy::fetchWebsiteData(PAL::SessionID sessionID, OptionSet<WebsiteDataType> dataTypes, CompletionHandler<void(WebsiteData)>&& completionHandler)
    11511157{
  • trunk/Source/WebKit/UIProcess/WebProcessProxy.h

    r268270 r268384  
    216216#endif
    217217
     218    static void notifyHasStylusDeviceChanged(bool hasStylusDevice);
     219
    218220    void fetchWebsiteData(PAL::SessionID, OptionSet<WebsiteDataType>, CompletionHandler<void(WebsiteData)>&&);
    219221    void deleteWebsiteData(PAL::SessionID, OptionSet<WebsiteDataType>, WallTime modifiedSince, CompletionHandler<void()>&&);
  • trunk/Source/WebKit/UIProcess/ios/WKMouseDeviceObserver.h

    r268086 r268384  
    3535
    3636+ (WKMouseDeviceObserver *)sharedInstance;
     37+ (instancetype)new NS_UNAVAILABLE;
     38- (instancetype)init NS_UNAVAILABLE;
    3739
    3840- (void)start;
  • trunk/Source/WebKit/UIProcess/ios/WKMouseDeviceObserver.mm

    r268086 r268384  
    3434@implementation WKMouseDeviceObserver {
    3535    BOOL _hasMouseDevice;
     36    size_t _startCount;
    3637    RetainPtr<id<BSInvalidatable>> _token;
    3738}
     
    4546}
    4647
    47 - (void)dealloc
    48 {
    49     [self stop];
    50 
    51     [super dealloc];
    52 }
    53 
    5448#pragma mark - BKSMousePointerDeviceObserver state
    5549
    5650- (void)start
    5751{
    58     if (_token)
     52    if (++_startCount > 1)
    5953        return;
    6054
     55    ASSERT(!_token);
    6156    _token = [[BKSMousePointerService sharedInstance] addPointerDeviceObserver:self];
    6257}
     
    6459- (void)stop
    6560{
    66     if (!_token)
     61    ASSERT(_startCount > 1);
     62    if (--_startCount)
    6763        return;
    6864
     65    ASSERT(_token);
    6966    [_token invalidate];
    7067    _token = nil;
  • trunk/Source/WebKit/UIProcess/ios/WKStylusDeviceObserver.h

    r268383 r268384  
    2424 */
    2525
    26 #if HAVE(UIKIT_WITH_MOUSE_SUPPORT) && PLATFORM(IOS)
     26#if HAVE(PENCILKIT_TEXT_INPUT)
    2727
    28 #import "BackBoardServicesSPI.h"
     28@interface WKStylusDeviceObserver : NSObject
    2929
    30 namespace WebKit {
    31 class WebProcessProxy;
    32 }
    33 
    34 @interface WKMouseDeviceObserver : NSObject<BKSMousePointerDeviceObserver>
    35 
    36 + (WKMouseDeviceObserver *)sharedInstance;
     30+ (WKStylusDeviceObserver *)sharedInstance;
     31+ (instancetype)new NS_UNAVAILABLE;
     32- (instancetype)init NS_UNAVAILABLE;
    3733
    3834- (void)start;
    3935- (void)stop;
    4036
    41 @property (nonatomic, readonly) BOOL hasMouseDevice;
    42 
    43 - (void)_setHasMouseDeviceForTesting:(BOOL)hasMouseDevice;
     37@property (nonatomic, readonly) BOOL hasStylusDevice;
    4438
    4539@end
    4640
    47 #endif // HAVE(UIKIT_WITH_MOUSE_SUPPORT) && PLATFORM(IOS)
     41#endif // HAVE(PENCILKIT_TEXT_INPUT)
  • trunk/Source/WebKit/UIProcess/ios/WebProcessProxyIOS.mm

    r268086 r268384  
    3232#import "WKFullKeyboardAccessWatcher.h"
    3333#import "WKMouseDeviceObserver.h"
     34#import "WKStylusDeviceObserver.h"
    3435#import "WebProcessMessages.h"
    3536
     
    3940{
    4041#if HAVE(UIKIT_WITH_MOUSE_SUPPORT) && PLATFORM(IOS)
    41     if (WebProcessProxy::allProcesses().size() == 1)
    42         [[WKMouseDeviceObserver sharedInstance] start];
     42    [[WKMouseDeviceObserver sharedInstance] start];
     43#endif
     44#if HAVE(PENCILKIT_TEXT_INPUT)
     45    [[WKStylusDeviceObserver sharedInstance] start];
    4346#endif
    4447}
     
    4750{
    4851#if HAVE(UIKIT_WITH_MOUSE_SUPPORT) && PLATFORM(IOS)
    49     if (WebProcessProxy::allProcesses().isEmpty())
    50         [[WKMouseDeviceObserver sharedInstance] stop];
     52    [[WKMouseDeviceObserver sharedInstance] stop];
     53#endif
     54#if HAVE(PENCILKIT_TEXT_INPUT)
     55    [[WKStylusDeviceObserver sharedInstance] stop];
    5156#endif
    5257}
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r268372 r268384  
    13871387                93F549B41E3174B7000E7239 /* WKSnapshotConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 93F549B31E3174B7000E7239 /* WKSnapshotConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; };
    13881388                950F2880252414EA00B74F1C /* WKMouseDeviceObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 950F287E252414E900B74F1C /* WKMouseDeviceObserver.h */; };
     1389                9593675F252E5E3100D3F0A0 /* WKStylusDeviceObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 9593675D252E5E3000D3F0A0 /* WKStylusDeviceObserver.h */; };
    13891390                95C943912523C0D00054F3D5 /* BaseBoardSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C943902523C0D00054F3D5 /* BaseBoardSPI.h */; };
    13901391                99036AE223A949CF0000B06A /* _WKInspectorDebuggableInfoInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 99036AE123A949CE0000B06A /* _WKInspectorDebuggableInfoInternal.h */; };
     
    44634464                950F287E252414E900B74F1C /* WKMouseDeviceObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKMouseDeviceObserver.h; path = ios/WKMouseDeviceObserver.h; sourceTree = "<group>"; };
    44644465                950F287F252414EA00B74F1C /* WKMouseDeviceObserver.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKMouseDeviceObserver.mm; path = ios/WKMouseDeviceObserver.mm; sourceTree = "<group>"; };
     4466                9593675D252E5E3000D3F0A0 /* WKStylusDeviceObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKStylusDeviceObserver.h; path = ios/WKStylusDeviceObserver.h; sourceTree = "<group>"; };
     4467                9593675E252E5E3100D3F0A0 /* WKStylusDeviceObserver.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKStylusDeviceObserver.mm; path = ios/WKStylusDeviceObserver.mm; sourceTree = "<group>"; };
    44654468                95C943902523C0D00054F3D5 /* BaseBoardSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseBoardSPI.h; sourceTree = "<group>"; };
    44664469                99036AE123A949CE0000B06A /* _WKInspectorDebuggableInfoInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKInspectorDebuggableInfoInternal.h; sourceTree = "<group>"; };
     
    70897092                                0FCB4E4418BBE044000FCFC9 /* WKScrollView.h */,
    70907093                                0FCB4E4518BBE044000FCFC9 /* WKScrollView.mm */,
     7094                                9593675D252E5E3000D3F0A0 /* WKStylusDeviceObserver.h */,
     7095                                9593675E252E5E3100D3F0A0 /* WKStylusDeviceObserver.mm */,
    70917096                                CE5B4C8621B73D870022E64F /* WKSyntheticFlagsChangedWebEvent.h */,
    70927097                                CE5B4C8721B73D870022E64F /* WKSyntheticFlagsChangedWebEvent.mm */,
     
    1181411819                                BC40761A124FF0370068F20A /* WKStringCF.h in Headers */,
    1181511820                                BC9099801256A98200083756 /* WKStringPrivate.h in Headers */,
     11821                                9593675F252E5E3100D3F0A0 /* WKStylusDeviceObserver.h in Headers */,
    1181611822                                CE5B4C8821B73D870022E64F /* WKSyntheticFlagsChangedWebEvent.h in Headers */,
    1181711823                                26F10BE819187E2E001D0E68 /* WKSyntheticTapGestureRecognizer.h in Headers */,
  • trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm

    r268116 r268384  
    40194019{
    40204020    OptionSet<PointerCharacteristics> result(PointerCharacteristics::Coarse);
    4021     if (hasMouseDevice())
     4021    if (hasMouseDevice() || WebProcess::singleton().hasStylusDevice())
    40224022        result.add(PointerCharacteristics::Fine);
    40234023    return result;
  • trunk/Source/WebKit/WebProcess/WebProcess.cpp

    r268086 r268384  
    407407    m_fullKeyboardAccessEnabled = parameters.fullKeyboardAccessEnabled;
    408408
     409    m_hasStylusDevice = parameters.hasStylusDevice;
     410
    409411    for (auto& scheme : parameters.urlSchemesRegisteredAsEmptyDocument)
    410412        registerURLSchemeAsEmptyDocument(scheme);
     
    10641066
    10651067#endif // HAVE(UIKIT_WITH_MOUSE_SUPPORT) && PLATFORM(IOS)
     1068
     1069void WebProcess::setHasStylusDevice(bool hasStylusDevice)
     1070{
     1071    if (hasStylusDevice == m_hasStylusDevice)
     1072        return;
     1073
     1074    m_hasStylusDevice = hasStylusDevice;
     1075
     1076    Page::updateStyleForAllPagesAfterGlobalChangeInEnvironment();
     1077}
    10661078
    10671079#if ENABLE(GAMEPAD)
  • trunk/Source/WebKit/WebProcess/WebProcess.h

    r268086 r268384  
    193193#endif
    194194
     195    bool hasStylusDevice() const { return m_hasStylusDevice; }
     196    void setHasStylusDevice(bool);
     197
    195198    WebFrame* webFrame(WebCore::FrameIdentifier) const;
    196199    Vector<WebFrame*> webFrames() const;
     
    564567#endif
    565568
     569    bool m_hasStylusDevice { false };
     570
    566571    HashMap<WebCore::FrameIdentifier, WebFrame*> m_frameMap;
    567572
  • trunk/Source/WebKit/WebProcess/WebProcess.messages.in

    r268086 r268384  
    5656    SetHasMouseDevice(bool hasMouseDevice)
    5757#endif
     58
     59    SetHasStylusDevice(bool hasStylusDevice)
    5860
    5961    # Plug-ins.
  • trunk/Tools/ChangeLog

    r268373 r268384  
     12020-10-12  Devin Rousso  <drousso@apple.com>
     2
     3        CSS "any-pointer:fine" media query false on iPad/Pencil
     4        https://bugs.webkit.org/show_bug.cgi?id=212580
     5        <rdar://problem/63813283>
     6
     7        Reviewed by Wenson Hsieh.
     8
     9        * TestWebKitAPI/Tests/WebKitCocoa/iOSStylusSupport.mm: Added.
     10        (iOSStylusSupport.StylusInitiallyDisconnected):
     11        (iOSStylusSupport.StylusInitiallyConnected):
     12        (iOSStylusSupport.StylusLaterDisconnected):
     13        (iOSStylusSupport.StylusLaterConnected):
     14        (iOSStylusSupport.StylusDisconnectedTimeout):
     15
     16        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     17
    1182020-10-12  Jonathan Bedard  <jbedard@apple.com>
    219
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r268239 r268384  
    830830                93F56DA91E5F919D003EDE84 /* WKWebViewSnapshot.mm in Sources */ = {isa = PBXBuildFile; fileRef = 93F56DA81E5F9181003EDE84 /* WKWebViewSnapshot.mm */; };
    831831                93F7E86F14DC8E5C00C84A99 /* NewFirstVisuallyNonEmptyLayoutFrames_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93F7E86E14DC8E5B00C84A99 /* NewFirstVisuallyNonEmptyLayoutFrames_Bundle.cpp */; };
     832                950E4CC1252E75240071659F /* iOSStylusSupport.mm in Sources */ = {isa = PBXBuildFile; fileRef = 950E4CC0252E75230071659F /* iOSStylusSupport.mm */; };
    832833                95B6B3B7251EBF2F00FC4382 /* MediaDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95B6B3B6251EBF2F00FC4382 /* MediaDocument.mm */; };
    833834                9984FACC1CFFAF60008D198C /* WKWebViewTextInput.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9984FACA1CFFAEEE008D198C /* WKWebViewTextInput.mm */; };
     
    24402441                93F7E86B14DC8E4D00C84A99 /* NewFirstVisuallyNonEmptyLayoutFrames.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NewFirstVisuallyNonEmptyLayoutFrames.cpp; sourceTree = "<group>"; };
    24412442                93F7E86E14DC8E5B00C84A99 /* NewFirstVisuallyNonEmptyLayoutFrames_Bundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NewFirstVisuallyNonEmptyLayoutFrames_Bundle.cpp; sourceTree = "<group>"; };
     2443                950E4CC0252E75230071659F /* iOSStylusSupport.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = iOSStylusSupport.mm; sourceTree = "<group>"; };
    24422444                95B6B3B6251EBF2F00FC4382 /* MediaDocument.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MediaDocument.mm; sourceTree = "<group>"; };
    24432445                9984FACA1CFFAEEE008D198C /* WKWebViewTextInput.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebViewTextInput.mm; sourceTree = "<group>"; };
     
    32733275                                2DB0232E1E4E871800707123 /* InteractionDeadlockAfterCrash.mm */,
    32743276                                2D116E1223E0CB3900208900 /* iOSMouseSupport.mm */,
     3277                                950E4CC0252E75230071659F /* iOSStylusSupport.mm */,
    32753278                                9B6D9FF8252EFDE500A51640 /* IPCTestingAPI.mm */,
    32763279                                5C69BDD41F82A7EB000F4F4B /* JavaScriptDuringNavigation.mm */,
     
    52305233                                7A909A831D877480007E10F8 /* IntSizeTests.cpp in Sources */,
    52315234                                2D116E1323E0CB3A00208900 /* iOSMouseSupport.mm in Sources */,
     5235                                950E4CC1252E75240071659F /* iOSStylusSupport.mm in Sources */,
    52325236                                9B6D9FF9252EFDE500A51640 /* IPCTestingAPI.mm in Sources */,
    52335237                                5C0BF8931DD599BD00B00328 /* IsNavigationActionTrusted.mm in Sources */,
Note: See TracChangeset for help on using the changeset viewer.