Title: [221204] trunk/Source
Revision
221204
Author
[email protected]
Date
2017-08-25 14:08:09 -0700 (Fri, 25 Aug 2017)

Log Message

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.

Source/_javascript_Core:

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):

Source/WebKit:

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:

Modified Paths

Added Paths

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 */,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to