Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (221203 => 221204)
--- trunk/Source/_javascript_Core/ChangeLog 2017-08-25 20:23:57 UTC (rev 221203)
+++ trunk/Source/_javascript_Core/ChangeLog 2017-08-25 21:08:09 UTC (rev 221204)
@@ -1,3 +1,21 @@
+2017-08-24 Brian Burg <[email protected]>
+
+ Web Automation: use automation session configurations to propagate per-session settings
+ https://bugs.webkit.org/show_bug.cgi?id=175562
+ <rdar://problem/30853362>
+
+ Reviewed by Joseph Pecoraro.
+
+ Add a Cocoa-specific code path to forward capabilities when requesting
+ a new session from the remote inspector (i.e., automation) client.
+
+ If other ports want to use this, then we can convert Cocoa types to WebKit types later.
+
+ * inspector/remote/RemoteInspector.h:
+ * inspector/remote/RemoteInspectorConstants.h:
+ * inspector/remote/cocoa/RemoteInspectorCocoa.mm:
+ (Inspector::RemoteInspector::receivedAutomationSessionRequestMessage):
+
2017-08-25 Saam Barati <[email protected]>
DFG::JITCode::osrEntry should get sorted since we perform a binary search on it
Modified: trunk/Source/_javascript_Core/inspector/remote/RemoteInspector.h (221203 => 221204)
--- trunk/Source/_javascript_Core/inspector/remote/RemoteInspector.h 2017-08-25 20:23:57 UTC (rev 221203)
+++ trunk/Source/_javascript_Core/inspector/remote/RemoteInspector.h 2017-08-25 21:08:09 UTC (rev 221204)
@@ -76,6 +76,9 @@
virtual String browserName() const { return { }; }
virtual String browserVersion() const { return { }; }
virtual void requestAutomationSession(const String& sessionIdentifier) = 0;
+#if PLATFORM(COCOA)
+ virtual void requestAutomationSessionWithCapabilities(NSString *sessionIdentifier, NSDictionary *forwardedCapabilities) = 0;
+#endif
};
static void startDisabled();
Modified: trunk/Source/_javascript_Core/inspector/remote/RemoteInspectorConstants.h (221203 => 221204)
--- trunk/Source/_javascript_Core/inspector/remote/RemoteInspectorConstants.h 2017-08-25 20:23:57 UTC (rev 221203)
+++ trunk/Source/_javascript_Core/inspector/remote/RemoteInspectorConstants.h 2017-08-25 21:08:09 UTC (rev 221204)
@@ -84,6 +84,7 @@
#define WIRAutomationTargetIsPairedKey @"WIRAutomationTargetIsPairedKey"
#define WIRSessionIdentifierKey @"WIRSessionIdentifierKey"
+#define WIRSessionCapabilitiesKey @"WIRSessionCapabilitiesKey"
#define WIRAutomationSessionRequestMessage @"WIRAutomationSessionRequestMessage"
// These definitions are shared with a Simulator webinspectord and
Modified: trunk/Source/_javascript_Core/inspector/remote/cocoa/RemoteInspectorCocoa.mm (221203 => 221204)
--- trunk/Source/_javascript_Core/inspector/remote/cocoa/RemoteInspectorCocoa.mm 2017-08-25 20:23:57 UTC (rev 221203)
+++ trunk/Source/_javascript_Core/inspector/remote/cocoa/RemoteInspectorCocoa.mm 2017-08-25 21:08:09 UTC (rev 221204)
@@ -678,6 +678,9 @@
NSString *suggestedSessionIdentifier = userInfo[WIRSessionIdentifierKey];
BAIL_IF_UNEXPECTED_TYPE(suggestedSessionIdentifier, [NSString class]);
+ NSDictionary *forwardedCapabilities = userInfo[WIRSessionCapabilitiesKey];
+ BAIL_IF_UNEXPECTED_TYPE_ALLOWING_NIL(forwardedCapabilities, [NSDictionary class]);
+
if (!m_client)
return;
@@ -684,7 +687,7 @@
if (!m_clientCapabilities || !m_clientCapabilities->remoteAutomationAllowed)
return;
- m_client->requestAutomationSession(suggestedSessionIdentifier);
+ m_client->requestAutomationSessionWithCapabilities(suggestedSessionIdentifier, forwardedCapabilities);
}
} // namespace Inspector
Modified: trunk/Source/WebKit/ChangeLog (221203 => 221204)
--- trunk/Source/WebKit/ChangeLog 2017-08-25 20:23:57 UTC (rev 221203)
+++ trunk/Source/WebKit/ChangeLog 2017-08-25 21:08:09 UTC (rev 221204)
@@ -1,3 +1,49 @@
+2017-08-24 Brian Burg <[email protected]>
+
+ Web Automation: use automation session configurations to propagate per-session settings
+ https://bugs.webkit.org/show_bug.cgi?id=175562
+ <rdar://problem/30853362>
+
+ Reviewed by Joseph Pecoraro.
+
+ Some WebDriver capabilities need WebKit support in order to be implemented correctly.
+ There is currently no easy way to forward WebDriver capability keys and values to WebKit
+ at session creation time. This is unfortunate, as it would be best to implement many of
+ them via existing mechanisms (i.e., WKPreferences properties) that need to be set up
+ before any windows are opened in the session.
+
+ This patch adds WebKit-side plumbing to forward named capabilities from a remote
+ WebDriver client to the _WKAutomationSession and its delegate in WebKit2 UIProcess.
+ These capabilities are exposed via API in ways that abstract away details of how the
+ capabilities are represented in RWI wire protocol messages.
+
+ In the Cocoa API, these capabilities are exposed via a session configuration object
+ that's similar to WKWebView's WKWebViewConfiguration. A session's configuration is copied
+ and used at initialization and cannot be modified after the session is created.
+ Code in the Cocoa subclass of API::AutomationClient translates between RWI protocol
+ capability names and property values on the _WKAutomationSessionConfiguration it
+ uses to request a new session.
+
+ Later patches will hook up the two properties present in the configuration in this patch.
+ Most of this patch is just generic plumbing without doing any capability-specific work.
+
+ * UIProcess/API/Cocoa/_WKAutomationDelegate.h:
+ * UIProcess/API/Cocoa/_WKAutomationSession.h:
+ * UIProcess/API/Cocoa/_WKAutomationSession.mm:
+ (-[_WKAutomationSession init]):
+ (-[_WKAutomationSession initWithConfiguration:]):
+ (-[_WKAutomationSession configuration]):
+ * UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKAutomationDelegate.h.
+ * UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.h.
+ (-[_WKAutomationSessionConfiguration init]):
+ (-[_WKAutomationSessionConfiguration description]):
+ * UIProcess/Cocoa/AutomationClient.h:
+ * UIProcess/Cocoa/AutomationClient.mm:
+ (WebKit::AutomationClient::AutomationClient):
+ (WebKit::AutomationClient::requestAutomationSession):
+ (WebKit::AutomationClient::requestAutomationSessionWithCapabilities):
+ * WebKit.xcodeproj/project.pbxproj:
+
2017-08-25 Brady Eidson <[email protected]>
Introduce ServerWorkerRegistration task queues.
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationDelegate.h (221203 => 221204)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationDelegate.h 2017-08-25 20:23:57 UTC (rev 221203)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationDelegate.h 2017-08-25 21:08:09 UTC (rev 221204)
@@ -28,11 +28,12 @@
#if WK_API_ENABLED
@class WKProcessPool;
+@class _WKAutomationSessionConfiguration;
@protocol _WKAutomationDelegate <NSObject>
@optional
- (BOOL)_processPoolAllowsRemoteAutomation:(WKProcessPool *)processPool;
-- (void)_processPool:(WKProcessPool *)processPool didRequestAutomationSessionWithIdentifier:(NSString *)identifier;
+- (void)_processPool:(WKProcessPool *)processPool didRequestAutomationSessionWithIdentifier:(NSString *)identifier configuration:(_WKAutomationSessionConfiguration *)configuration;
@end
#endif // WK_API_ENABLED
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.h (221203 => 221204)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.h 2017-08-25 20:23:57 UTC (rev 221203)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.h 2017-08-25 21:08:09 UTC (rev 221204)
@@ -29,6 +29,7 @@
#import <Foundation/Foundation.h>
+@class _WKAutomationSessionConfiguration;
@protocol _WKAutomationSessionDelegate;
NS_ASSUME_NONNULL_BEGIN
@@ -37,9 +38,13 @@
@interface _WKAutomationSession : NSObject
@property (nonatomic, copy) NSString *sessionIdentifier;
+@property (nonatomic, readonly, copy) _WKAutomationSessionConfiguration *configuration;
+
@property (nonatomic, weak) id <_WKAutomationSessionDelegate> delegate;
@property (nonatomic, readonly, getter=isPaired) BOOL paired;
+- (instancetype)initWithConfiguration:(_WKAutomationSessionConfiguration *)configuration NS_DESIGNATED_INITIALIZER;
+
#if !TARGET_OS_IPHONE
- (BOOL)wasEventSynthesizedForAutomation:(NSEvent *)event;
- (void)markEventAsSynthesizedForAutomation:(NSEvent *)event;
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm (221203 => 221204)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm 2017-08-25 20:23:57 UTC (rev 221203)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm 2017-08-25 21:08:09 UTC (rev 221204)
@@ -33,19 +33,28 @@
#import "WKProcessPool.h"
#import "WeakObjCPtr.h"
#import "WebAutomationSession.h"
+#import "_WKAutomationSessionConfiguration.h"
#import "_WKAutomationSessionDelegate.h"
@implementation _WKAutomationSession {
+ RetainPtr<_WKAutomationSessionConfiguration> _configuration;
WebKit::WeakObjCPtr<id <_WKAutomationSessionDelegate>> _delegate;
}
- (instancetype)init
{
+ return [self initWithConfiguration:[_WKAutomationSessionConfiguration new]];
+}
+
+- (instancetype)initWithConfiguration:(_WKAutomationSessionConfiguration *)configuration
+{
if (!(self = [super init]))
return nil;
API::Object::constructInWrapper<WebKit::WebAutomationSession>(self);
+ _configuration = adoptNS([configuration copy]);
+
return self;
}
@@ -78,6 +87,11 @@
_session->setSessionIdentifier(sessionIdentifier);
}
+- (_WKAutomationSessionConfiguration *)configuration
+{
+ return [[_configuration copy] autorelease];
+}
+
- (BOOL)isPaired
{
return _session->isPaired();
Copied: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h (from rev 221203, trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationDelegate.h) (0 => 221204)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h (rev 0)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h 2017-08-25 21:08:09 UTC (rev 221204)
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2017 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 <WebKit/WKFoundation.h>
+
+#if WK_API_ENABLED
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+WK_CLASS_AVAILABLE(macosx(WK_MAC_TBA))
+@interface _WKAutomationSessionConfiguration : NSObject <NSCopying>
+
+@property (nonatomic) BOOL allowsInsecureMediaCapture;
+@property (nonatomic) BOOL suppressesICECandidateFiltering;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // WK_API_ENABLED
Copied: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm (from rev 221203, trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.h) (0 => 221204)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm (rev 0)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm 2017-08-25 21:08:09 UTC (rev 221204)
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2017 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 "_WKAutomationSessionConfiguration.h"
+
+#if WK_API_ENABLED
+
+@implementation _WKAutomationSessionConfiguration
+
+- (instancetype)init
+{
+ if (!(self = [super init]))
+ return nil;
+
+ _allowsInsecureMediaCapture = YES;
+ _suppressesICECandidateFiltering = NO;
+
+ return self;
+}
+
+- (id)copyWithZone:(NSZone *)zone
+{
+ _WKAutomationSessionConfiguration *configuration = [(_WKAutomationSessionConfiguration *)[[self class] allocWithZone:zone] init];
+
+ configuration.allowsInsecureMediaCapture = self.allowsInsecureMediaCapture;
+ configuration.suppressesICECandidateFiltering = self.suppressesICECandidateFiltering;
+
+ return configuration;
+}
+
+@end
+
+#endif // WK_API_ENABLED
Modified: trunk/Source/WebKit/UIProcess/Cocoa/AutomationClient.h (221203 => 221204)
--- trunk/Source/WebKit/UIProcess/Cocoa/AutomationClient.h 2017-08-25 20:23:57 UTC (rev 221203)
+++ trunk/Source/WebKit/UIProcess/Cocoa/AutomationClient.h 2017-08-25 21:08:09 UTC (rev 221204)
@@ -49,6 +49,8 @@
bool allowsRemoteAutomation(WebProcessPool*) override { return remoteAutomationAllowed(); }
void didRequestAutomationSession(WebKit::WebProcessPool*, const String& sessionIdentifier) override;
+ void requestAutomationSessionWithCapabilities(NSString *sessionIdentifier, NSDictionary *forwardedCapabilities) override;
+
// RemoteInspector::Client
bool remoteAutomationAllowed() const override;
void requestAutomationSession(const String& sessionIdentifier) override;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/AutomationClient.mm (221203 => 221204)
--- trunk/Source/WebKit/UIProcess/Cocoa/AutomationClient.mm 2017-08-25 20:23:57 UTC (rev 221203)
+++ trunk/Source/WebKit/UIProcess/Cocoa/AutomationClient.mm 2017-08-25 21:08:09 UTC (rev 221204)
@@ -32,6 +32,7 @@
#import "WKProcessPool.h"
#import "_WKAutomationDelegate.h"
+#import "_WKAutomationSessionConfiguration.h"
#import <_javascript_Core/RemoteInspector.h>
#import <wtf/text/WTFString.h>
@@ -44,7 +45,7 @@
, m_delegate(delegate)
{
m_delegateMethods.allowsRemoteAutomation = [delegate respondsToSelector:@selector(_processPoolAllowsRemoteAutomation:)];
- m_delegateMethods.requestAutomationSession = [delegate respondsToSelector:@selector(_processPool:didRequestAutomationSessionWithIdentifier:)];
+ m_delegateMethods.requestAutomationSession = [delegate respondsToSelector:@selector(_processPool:didRequestAutomationSessionWithIdentifier:configuration:)];
RemoteInspector::singleton().setClient(this);
}
@@ -69,14 +70,19 @@
void AutomationClient::requestAutomationSession(const String& sessionIdentifier)
{
+ NSString *retainedIdentifier = sessionIdentifier;
+ requestAutomationSessionWithCapabilities(retainedIdentifier, nil);
+}
+
+void AutomationClient::requestAutomationSessionWithCapabilities(NSString *sessionIdentifier, NSDictionary *forwardedCapabilities)
+{
+ _WKAutomationSessionConfiguration *configuration = [_WKAutomationSessionConfiguration new];
// Force clients to create and register a session asynchronously. Otherwise,
// RemoteInspector will try to acquire its lock to register the new session and
// deadlock because it's already taken while handling XPC messages.
-
- NSString *retainedIdentifier = sessionIdentifier;
dispatch_async(dispatch_get_main_queue(), ^{
if (m_delegateMethods.requestAutomationSession)
- [m_delegate.get() _processPool:m_processPool didRequestAutomationSessionWithIdentifier:retainedIdentifier];
+ [m_delegate.get() _processPool:m_processPool didRequestAutomationSessionWithIdentifier:sessionIdentifier configuration:configuration];
});
}
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (221203 => 221204)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2017-08-25 20:23:57 UTC (rev 221203)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2017-08-25 21:08:09 UTC (rev 221204)
@@ -1449,6 +1449,8 @@
9955A6F51C7986E000EB6A93 /* AutomationBackendDispatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 9955A6F11C79866400EB6A93 /* AutomationBackendDispatchers.h */; };
9955A6F61C7986E300EB6A93 /* AutomationProtocolObjects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9955A6F21C79866400EB6A93 /* AutomationProtocolObjects.cpp */; };
9955A6F71C7986E500EB6A93 /* AutomationProtocolObjects.h in Headers */ = {isa = PBXBuildFile; fileRef = 9955A6F31C79866400EB6A93 /* AutomationProtocolObjects.h */; };
+ 99788ACB1F421DDA00C08000 /* _WKAutomationSessionConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 99788AC91F421DCA00C08000 /* _WKAutomationSessionConfiguration.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 99788ACC1F421DE200C08000 /* _WKAutomationSessionConfiguration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 99788ACA1F421DCA00C08000 /* _WKAutomationSessionConfiguration.mm */; };
99B750F21F33ED5B00C1CFB5 /* ElementAttribute.js in Copy WebDriver Atoms */ = {isa = PBXBuildFile; fileRef = 990657341F323CBF00944F9C /* ElementAttribute.js */; };
99B750F31F33ED5B00C1CFB5 /* ElementDisplayed.js in Copy WebDriver Atoms */ = {isa = PBXBuildFile; fileRef = 990657331F323CBF00944F9C /* ElementDisplayed.js */; };
99B750F41F33ED5B00C1CFB5 /* FindNodes.js in Copy WebDriver Atoms */ = {isa = PBXBuildFile; fileRef = 990657311F323CBF00944F9C /* FindNodes.js */; };
@@ -3795,6 +3797,8 @@
9955A6F11C79866400EB6A93 /* AutomationBackendDispatchers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutomationBackendDispatchers.h; sourceTree = "<group>"; };
9955A6F21C79866400EB6A93 /* AutomationProtocolObjects.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AutomationProtocolObjects.cpp; sourceTree = "<group>"; };
9955A6F31C79866400EB6A93 /* AutomationProtocolObjects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutomationProtocolObjects.h; sourceTree = "<group>"; };
+ 99788AC91F421DCA00C08000 /* _WKAutomationSessionConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKAutomationSessionConfiguration.h; sourceTree = "<group>"; };
+ 99788ACA1F421DCA00C08000 /* _WKAutomationSessionConfiguration.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKAutomationSessionConfiguration.mm; sourceTree = "<group>"; };
99C3AE231DAD8E3400AF5C16 /* WebAutomationSessionMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebAutomationSessionMac.mm; sourceTree = "<group>"; };
99C3AE261DAD948500AF5C16 /* WebAutomationSessionCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebAutomationSessionCocoa.mm; sourceTree = "<group>"; };
99C3AE2C1DADA6A700AF5C16 /* WebAutomationSessionMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAutomationSessionMacros.h; sourceTree = "<group>"; };
@@ -5629,6 +5633,8 @@
99E714C11C1249E600665B3A /* _WKAutomationDelegate.h */,
990D28A71C6404B000986977 /* _WKAutomationSession.h */,
990D28AD1C65190400986977 /* _WKAutomationSession.mm */,
+ 99788AC91F421DCA00C08000 /* _WKAutomationSessionConfiguration.h */,
+ 99788ACA1F421DCA00C08000 /* _WKAutomationSessionConfiguration.mm */,
990D28A81C6404B000986977 /* _WKAutomationSessionDelegate.h */,
990D28AF1C65203900986977 /* _WKAutomationSessionInternal.h */,
1A5704F61BE01FF400874AF1 /* _WKContextMenuElementInfo.h */,
@@ -8265,6 +8271,7 @@
379A873618BBFA4300588AF2 /* _WKActivatedElementInfoInternal.h in Headers */,
99E714C51C124A0400665B3A /* _WKAutomationDelegate.h in Headers */,
990D28AB1C6420C600986977 /* _WKAutomationSession.h in Headers */,
+ 99788ACB1F421DDA00C08000 /* _WKAutomationSessionConfiguration.h in Headers */,
990D28AC1C6420CF00986977 /* _WKAutomationSessionDelegate.h in Headers */,
990D28B11C65208D00986977 /* _WKAutomationSessionInternal.h in Headers */,
1A5704F81BE01FF400874AF1 /* _WKContextMenuElementInfo.h in Headers */,
@@ -9890,6 +9897,7 @@
files = (
37A5E01318BBF937000A081E /* _WKActivatedElementInfo.mm in Sources */,
990D28B21C65209400986977 /* _WKAutomationSession.mm in Sources */,
+ 99788ACC1F421DE200C08000 /* _WKAutomationSessionConfiguration.mm in Sources */,
1A5704F71BE01FF400874AF1 /* _WKContextMenuElementInfo.mm in Sources */,
A1A4FE5B18DCE9FA00B5EA8A /* _WKDownload.mm in Sources */,
379A873918BBFE0F00588AF2 /* _WKElementAction.mm in Sources */,