Diff
Modified: trunk/Source/WebKit/ChangeLog (237052 => 237053)
--- trunk/Source/WebKit/ChangeLog 2018-10-11 22:52:43 UTC (rev 237052)
+++ trunk/Source/WebKit/ChangeLog 2018-10-11 23:41:18 UTC (rev 237053)
@@ -1,3 +1,42 @@
+2018-10-11 Tim Horton <[email protected]>
+
+ Hardware keyboard arrow keys/spacebar don't scroll PDFs (works for web content)
+ https://bugs.webkit.org/show_bug.cgi?id=190495
+ <rdar://problem/22734616>
+
+ Reviewed by Andy Estes.
+
+ Hook up WKKeyboardScrollViewAnimator to the scroll view when
+ WKPDFView is installed.
+
+ * Platform/spi/ios/UIKitSPI.h:
+ Move _inputFlags to the IPI section so we can remove it
+ from WKContentViewInteraction.
+
+ * SourcesCocoa.txt:
+ * UIProcess/ios/WKWebEvent.h:
+ * UIProcess/ios/WKWebEvent.mm:
+ * UIProcess/ios/WKContentViewInteraction.mm:
+ (-[WKContentView handleKeyEvent:]):
+ (-[WKWebEvent dealloc]): Deleted.
+ * WebKit.xcodeproj/project.pbxproj:
+ Move WKWebEvent out of WKContentViewInteraction.
+ We tend to prefer one file per class.
+ Also, move the code to make a WKWebEvent from a UIEvent into
+ -initWithEvent:, instead of being ad-hoc in WKContentViewInteraction.
+ Adopt RetainPtr for the WKWebEvent's uiEvent property.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView _handleKeyUIEvent:]):
+ * UIProcess/Cocoa/WKWebViewContentProvider.h:
+ Plumb hardware keyboard events to custom content views, if they want them.
+
+ * UIProcess/ios/WKPDFView.mm:
+ (-[WKPDFView dealloc]):
+ (-[WKPDFView web_handleKeyEvent:]):
+ (-[WKPDFView web_initWithFrame:webView:mimeType:]):
+ Install a WKKeyboardScrollViewAnimator and plumb key events to it.
+
2018-10-11 Antoine Quint <[email protected]>
[Web Animations] Allow iOS to also control toggling Web Animations CSS Integration
Modified: trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h (237052 => 237053)
--- trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h 2018-10-11 22:52:43 UTC (rev 237052)
+++ trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h 2018-10-11 23:41:18 UTC (rev 237053)
@@ -187,7 +187,6 @@
} UIKeyboardInputFlags;
@interface UIEvent ()
-@property (nonatomic, readonly) UIKeyboardInputFlags _inputFlags;
- (void *)_hidEvent;
- (NSString *)_unmodifiedInput;
- (NSString *)_modifiedInput;
@@ -1014,6 +1013,7 @@
@end
@interface UIPhysicalKeyboardEvent ()
+@property (nonatomic, readonly) UIKeyboardInputFlags _inputFlags;
- (UIPhysicalKeyboardEvent *)_cloneEvent NS_RETURNS_RETAINED;
@property (nonatomic, readonly) CFIndex _keyCode;
@end
Modified: trunk/Source/WebKit/SourcesCocoa.txt (237052 => 237053)
--- trunk/Source/WebKit/SourcesCocoa.txt 2018-10-11 22:52:43 UTC (rev 237052)
+++ trunk/Source/WebKit/SourcesCocoa.txt 2018-10-11 23:41:18 UTC (rev 237053)
@@ -396,6 +396,7 @@
UIProcess/ios/WKScrollView.mm
UIProcess/ios/WKSyntheticClickTapGestureRecognizer.m
UIProcess/ios/WKSystemPreviewView.mm
+UIProcess/ios/WKWebEvent.mm
UIProcess/Launcher/mac/ProcessLauncherMac.mm
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (237052 => 237053)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2018-10-11 22:52:43 UTC (rev 237052)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2018-10-11 23:41:18 UTC (rev 237053)
@@ -1525,6 +1525,21 @@
_page->didLayoutForCustomContentProvider();
}
+- (void)_handleKeyUIEvent:(::UIEvent *)event
+{
+ // We only want to handle key events from the hardware keyboard when we are
+ // first responder and a custom content view is installed; otherwise,
+ // WKContentView will be the first responder and expects to get key events directly.
+ if ([self isFirstResponder] && event._hidEvent) {
+ if ([_customContentView respondsToSelector:@selector(web_handleKeyEvent:)]) {
+ if ([_customContentView web_handleKeyEvent:event])
+ return;
+ }
+ }
+
+ [super _handleKeyUIEvent:event];
+}
+
- (void)_willInvokeUIScrollViewDelegateCallback
{
_delayUpdateVisibleContentRects = YES;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WKWebViewContentProvider.h (237052 => 237053)
--- trunk/Source/WebKit/UIProcess/Cocoa/WKWebViewContentProvider.h 2018-10-11 22:52:43 UTC (rev 237052)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WKWebViewContentProvider.h 2018-10-11 23:41:18 UTC (rev 237053)
@@ -33,6 +33,7 @@
#import <WebKit/_WKFindOptions.h>
@class NSData;
+@class UIEvent;
@class UIScrollView;
@class UIView;
@class WKWebView;
@@ -60,6 +61,7 @@
- (void)web_scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale;
- (void)web_scrollViewDidZoom:(UIScrollView *)scrollView;
- (void)web_beginAnimatedResizeWithUpdates:(void (^)(void))updateBlock;
+- (BOOL)web_handleKeyEvent:(UIEvent *)event;
@property (nonatomic, readonly) NSData *web_dataRepresentation;
@property (nonatomic, readonly) NSString *web_suggestedFilename;
@property (nonatomic, readonly) BOOL web_isBackground;
Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (237052 => 237053)
--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2018-10-11 22:52:43 UTC (rev 237052)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2018-10-11 23:41:18 UTC (rev 237053)
@@ -56,6 +56,7 @@
#import "WKTextInputListViewController.h"
#import "WKTimePickerViewController.h"
#import "WKUIDelegatePrivate.h"
+#import "WKWebEvent.h"
#import "WKWebViewConfiguration.h"
#import "WKWebViewConfigurationPrivate.h"
#import "WKWebViewInternal.h"
@@ -122,24 +123,6 @@
#import <WebKitAdditions/WKPlatformFileUploadPanel.mm>
#endif
-@interface UIEvent (UIEventInternal)
-@property (nonatomic, assign) UIKeyboardInputFlags _inputFlags;
-@end
-
-@interface WKWebEvent : WebEvent
-@property (nonatomic, retain) UIEvent *uiEvent;
-@end
-
-@implementation WKWebEvent
-
-- (void)dealloc
-{
- [_uiEvent release];
- [super dealloc];
-}
-
-@end
-
#if PLATFORM(WATCHOS)
@interface WKContentView (WatchSupport) <WKFocusedFormControlViewDelegate, WKSelectMenuListViewControllerDelegate, WKTextInputListViewControllerDelegate>
@@ -3794,28 +3777,9 @@
if (event == _uiEventBeingResent)
return;
- uint16_t keyCode;
- BOOL isHardwareKeyboardEvent = !!event._hidEvent;
- if (!isHardwareKeyboardEvent)
- keyCode = 0;
- else {
- UIPhysicalKeyboardEvent *keyEvent = (UIPhysicalKeyboardEvent *)event;
- keyCode = keyEvent._keyCode;
- event = [[keyEvent _cloneEvent] autorelease]; // UIKit uses a singleton for hardware keyboard events.
- }
- WKWebEvent *webEvent = [[[WKWebEvent alloc] initWithKeyEventType:(event._isKeyDown) ? WebEventKeyDown : WebEventKeyUp
- timeStamp:event.timestamp
- characters:event._modifiedInput
- charactersIgnoringModifiers:event._unmodifiedInput
- modifiers:event._modifierFlags
- isRepeating:(event._inputFlags & kUIKeyboardInputRepeat)
- withFlags:event._inputFlags
- keyCode:keyCode
- isTabKey:[event._modifiedInput isEqualToString:@"\t"]
- characterSet:WebEventCharacterSetUnicode] autorelease];
- webEvent.uiEvent = event;
+ auto webEvent = adoptNS([[WKWebEvent alloc] initWithEvent:event]);
- [self handleKeyWebEvent:webEvent];
+ [self handleKeyWebEvent:webEvent.get()];
}
- (void)handleKeyWebEvent:(::WebEvent *)theEvent
Modified: trunk/Source/WebKit/UIProcess/ios/WKPDFView.mm (237052 => 237053)
--- trunk/Source/WebKit/UIProcess/ios/WKPDFView.mm 2018-10-11 22:52:43 UTC (rev 237052)
+++ trunk/Source/WebKit/UIProcess/ios/WKPDFView.mm 2018-10-11 23:41:18 UTC (rev 237053)
@@ -31,8 +31,11 @@
#import "APIUIClient.h"
#import "FindClient.h"
#import "PDFKitSPI.h"
+#import "UIKitSPI.h"
#import "WKActionSheetAssistant.h"
+#import "WKKeyboardScrollingAnimator.h"
#import "WKUIDelegatePrivate.h"
+#import "WKWebEvent.h"
#import "WKWebViewInternal.h"
#import "WebPageProxy.h"
#import "_WKWebViewPrintFormatterInternal.h"
@@ -65,6 +68,7 @@
WebKit::InteractionInformationAtPosition _positionInformation;
RetainPtr<NSString> _suggestedFilename;
WeakObjCPtr<WKWebView> _webView;
+ RetainPtr<WKKeyboardScrollViewAnimator> _keyboardScrollingAnimator;
}
- (void)dealloc
@@ -72,9 +76,20 @@
[_actionSheetAssistant cleanupSheet];
[[_hostViewController view] removeFromSuperview];
[_pageNumberIndicator removeFromSuperview];
+ [_keyboardScrollingAnimator invalidate];
[super dealloc];
}
+- (BOOL)web_handleKeyEvent:(::UIEvent *)event
+{
+ auto webEvent = adoptNS([[WKWebEvent alloc] initWithEvent:event]);
+
+ if ([_keyboardScrollingAnimator beginWithEvent:webEvent.get()])
+ return YES;
+ [_keyboardScrollingAnimator handleKeyEvent:webEvent.get()];
+ return NO;
+}
+
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
return [_hostViewController gestureRecognizerShouldBegin:gestureRecognizer];
@@ -99,6 +114,8 @@
self.backgroundColor = UIColor.grayColor;
webView.scrollView.backgroundColor = UIColor.grayColor;
+ _keyboardScrollingAnimator = adoptNS([[WKKeyboardScrollViewAnimator alloc] initWithScrollView:webView.scrollView]);
+
_webView = webView;
return self;
}
Added: trunk/Source/WebKit/UIProcess/ios/WKWebEvent.h (0 => 237053)
--- trunk/Source/WebKit/UIProcess/ios/WKWebEvent.h (rev 0)
+++ trunk/Source/WebKit/UIProcess/ios/WKWebEvent.h 2018-10-11 23:41:18 UTC (rev 237053)
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2018 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if PLATFORM(IOS)
+
+#import <WebCore/WebEvent.h>
+
+@class UIEvent;
+
+@interface WKWebEvent : WebEvent
+
+- (instancetype)initWithEvent:(UIEvent *)event;
+
+@property (nonatomic, retain, readonly) UIEvent *uiEvent;
+
+@end
+
+#endif // PLATFORM(IOS)
Added: trunk/Source/WebKit/UIProcess/ios/WKWebEvent.mm (0 => 237053)
--- trunk/Source/WebKit/UIProcess/ios/WKWebEvent.mm (rev 0)
+++ trunk/Source/WebKit/UIProcess/ios/WKWebEvent.mm 2018-10-11 23:41:18 UTC (rev 237053)
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2018 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "WKWebEvent.h"
+
+#if PLATFORM(IOS)
+
+#import "UIKitSPI.h"
+#import <wtf/RetainPtr.h>
+
+@implementation WKWebEvent {
+ RetainPtr<UIEvent> _uiEvent;
+}
+
+- (instancetype)initWithEvent:(UIEvent *)event
+{
+ uint16_t keyCode;
+ UIKeyboardInputFlags inputFlags;
+ BOOL isHardwareKeyboardEvent = !!event._hidEvent;
+ if (!isHardwareKeyboardEvent) {
+ keyCode = 0;
+ inputFlags = (UIKeyboardInputFlags)0;
+ } else {
+ UIPhysicalKeyboardEvent *keyEvent = (UIPhysicalKeyboardEvent *)event;
+ keyCode = keyEvent._keyCode;
+ inputFlags = keyEvent._inputFlags;
+ event = [[keyEvent _cloneEvent] autorelease]; // UIKit uses a singleton for hardware keyboard events.
+ }
+
+ self = [super initWithKeyEventType:(event._isKeyDown ? WebEventKeyDown : WebEventKeyUp) timeStamp:event.timestamp characters:event._modifiedInput charactersIgnoringModifiers:event._unmodifiedInput modifiers:event._modifierFlags isRepeating:(inputFlags & kUIKeyboardInputRepeat) withFlags:inputFlags keyCode:keyCode isTabKey:[event._modifiedInput isEqualToString:@"\t"] characterSet:WebEventCharacterSetUnicode];
+ if (!self)
+ return nil;
+
+ _uiEvent = event;
+
+ return self;
+}
+
+- (UIEvent *)uiEvent
+{
+ return _uiEvent.get();
+}
+
+@end
+
+#endif // PLATFORM(IOS)
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (237052 => 237053)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2018-10-11 22:52:43 UTC (rev 237052)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2018-10-11 23:41:18 UTC (rev 237053)
@@ -570,6 +570,7 @@
2D12DAB520662C73006F00FB /* WKAnimationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D12DAB420662C73006F00FB /* WKAnimationDelegate.h */; };
2D1B5D5D185869C8006C6596 /* ViewGestureControllerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D1B5D5B185869C8006C6596 /* ViewGestureControllerMessageReceiver.cpp */; };
2D1B5D5E185869C8006C6596 /* ViewGestureControllerMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D1B5D5C185869C8006C6596 /* ViewGestureControllerMessages.h */; };
+ 2D1E8223216FFF5100A15265 /* WKWebEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D1E8221216FFF5000A15265 /* WKWebEvent.h */; };
2D28A4971AF965A100F190C9 /* WKViewLayoutStrategy.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D28A4951AF965A100F190C9 /* WKViewLayoutStrategy.h */; };
2D29ECD0192F2C2E00984B78 /* RemoteLayerTreeDisplayRefreshMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D29ECCE192F2C2E00984B78 /* RemoteLayerTreeDisplayRefreshMonitor.h */; };
2D3A65DB1A7C3A1F00CAC637 /* WKNavigationActionRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D3A65D91A7C3A1F00CAC637 /* WKNavigationActionRef.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -1833,9 +1834,9 @@
00B9661518E24CBA00CE1F88 /* APIFindClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIFindClient.h; sourceTree = "<group>"; };
00B9661718E25AE100CE1F88 /* FindClient.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FindClient.mm; sourceTree = "<group>"; };
00B9661818E25AE100CE1F88 /* FindClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FindClient.h; sourceTree = "<group>"; };
+ 07297F9C1C1711EA003F0735 /* DeviceIdHashSaltStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeviceIdHashSaltStorage.cpp; sourceTree = "<group>"; };
07297F9C1C17BBEA003F0735 /* UserMediaPermissionCheckProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UserMediaPermissionCheckProxy.cpp; sourceTree = "<group>"; };
07297F9D1C17BBEA003F0735 /* UserMediaPermissionCheckProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserMediaPermissionCheckProxy.h; sourceTree = "<group>"; };
- 07297F9C1C1711EA003F0735 /* DeviceIdHashSaltStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeviceIdHashSaltStorage.cpp; sourceTree = "<group>"; };
07297F9D1C17BBEA223F0735 /* DeviceIdHashSaltStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceIdHashSaltStorage.h; sourceTree = "<group>"; };
07297FA01C186ADB003F0735 /* WKUserMediaPermissionCheck.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKUserMediaPermissionCheck.cpp; sourceTree = "<group>"; };
07297FA11C186ADB003F0735 /* WKUserMediaPermissionCheck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKUserMediaPermissionCheck.h; sourceTree = "<group>"; };
@@ -2459,6 +2460,8 @@
2D1B5D5A18586599006C6596 /* ViewGestureController.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = ViewGestureController.messages.in; sourceTree = "<group>"; };
2D1B5D5B185869C8006C6596 /* ViewGestureControllerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ViewGestureControllerMessageReceiver.cpp; sourceTree = "<group>"; };
2D1B5D5C185869C8006C6596 /* ViewGestureControllerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewGestureControllerMessages.h; sourceTree = "<group>"; };
+ 2D1E8221216FFF5000A15265 /* WKWebEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKWebEvent.h; path = ios/WKWebEvent.h; sourceTree = "<group>"; };
+ 2D1E8222216FFF5100A15265 /* WKWebEvent.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKWebEvent.mm; path = ios/WKWebEvent.mm; sourceTree = "<group>"; };
2D28A4951AF965A100F190C9 /* WKViewLayoutStrategy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKViewLayoutStrategy.h; sourceTree = "<group>"; };
2D28A4961AF965A100F190C9 /* WKViewLayoutStrategy.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKViewLayoutStrategy.mm; sourceTree = "<group>"; };
2D28F3E01885CCC1004B9EAE /* WebChromeClientIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WebChromeClientIOS.mm; path = ios/WebChromeClientIOS.mm; sourceTree = "<group>"; };
@@ -5773,6 +5776,8 @@
26F10BE719187E2E001D0E68 /* WKSyntheticClickTapGestureRecognizer.m */,
316B8B622054B55800BD4A62 /* WKSystemPreviewView.h */,
316B8B612054B55800BD4A62 /* WKSystemPreviewView.mm */,
+ 2D1E8221216FFF5000A15265 /* WKWebEvent.h */,
+ 2D1E8222216FFF5100A15265 /* WKWebEvent.mm */,
);
name = ios;
sourceTree = "<group>";
@@ -9740,6 +9745,7 @@
BFA6179F12F0B99D0033E0CA /* WKViewPrivate.h in Headers */,
C5E1AFE916B20B75006CC1F2 /* WKWebArchive.h in Headers */,
C5E1AFEB16B20B7E006CC1F2 /* WKWebArchiveResource.h in Headers */,
+ 2D1E8223216FFF5100A15265 /* WKWebEvent.h in Headers */,
5CADDE05215046BD0067D309 /* WKWebProcess.h in Headers */,
1AA2E56718D77508003814BD /* WKWebProcessBundleParameters.h in Headers */,
BC989D82161A7E5D000D46D3 /* WKWebProcessPlugIn.h in Headers */,
@@ -10600,7 +10606,6 @@
2D92A77D212B6A7100F493FD /* Connection.cpp in Sources */,
2D92A77E212B6A7100F493FD /* DataReference.cpp in Sources */,
2D92A77F212B6A7100F493FD /* Decoder.cpp in Sources */,
- 07297F9E1C17BBEA014F0735 /* DeviceIdHashSaltStorage.cpp in Sources */,
1AB7D6191288B9D900CFD08C /* DownloadProxyMessageReceiver.cpp in Sources */,
1A64229912DD029200CAAE2C /* DrawingAreaMessageReceiver.cpp in Sources */,
1A64230812DD09EB00CAAE2C /* DrawingAreaProxyMessageReceiver.cpp in Sources */,