Web Automation: add capabilities to control ICE candidate filtering and insecure...
authorbburg@apple.com <bburg@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 25 Aug 2017 22:09:22 +0000 (22:09 +0000)
committerbburg@apple.com <bburg@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 25 Aug 2017 22:09:22 +0000 (22:09 +0000)
https://bugs.webkit.org/show_bug.cgi?id=175563
<rdar://problem/33734492>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Add macros for new capability protocol string names. Let's use a reverse
domain name notification for these capabilities so we know whether they are
intended for a particular client/port or any WebKit client, and what feature they
are related to (i.e., webrtc).

* inspector/remote/RemoteInspectorConstants.h:

Source/WebKit:

* UIProcess/Cocoa/AutomationClient.mm:
(WebKit::AutomationClient::requestAutomationSessionWithCapabilities):
Translate new capabilities to _WKAutomationSessionConfiguration properties.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221208 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/inspector/remote/RemoteInspectorConstants.h
Source/WebKit/ChangeLog
Source/WebKit/UIProcess/Cocoa/AutomationClient.mm

index fa03cb2..84a9293 100644 (file)
@@ -1,3 +1,18 @@
+2017-08-25  Brian Burg  <bburg@apple.com>
+
+        Web Automation: add capabilities to control ICE candidate filtering and insecure media capture
+        https://bugs.webkit.org/show_bug.cgi?id=175563
+        <rdar://problem/33734492>
+
+        Reviewed by Joseph Pecoraro.
+
+        Add macros for new capability protocol string names. Let's use a reverse
+        domain name notification for these capabilities so we know whether they are
+        intended for a particular client/port or any WebKit client, and what feature they
+        are related to (i.e., webrtc).
+
+        * inspector/remote/RemoteInspectorConstants.h:
+
 2017-08-24  Brian Burg  <bburg@apple.com>
 
         Web Automation: use automation session configurations to propagate per-session settings
index 185f441..dfb9061 100644 (file)
 #define WIRSessionCapabilitiesKey                  @"WIRSessionCapabilitiesKey"
 #define WIRAutomationSessionRequestMessage         @"WIRAutomationSessionRequestMessage"
 
+// These definitions are shared between WebDriver.framework and WebKit.
+// The value for WIRSessionCapabilitiesKey is a dictionary that holds these capability key-value pairs.
+
+#define WIRAllowInsecureMediaCaptureCapabilityKey      @"org.webkit.webdriver.webrtc.allow-insecure-media-capture"
+#define WIRSuppressICECandidateFilteringCapabilityKey  @"org.webkit.webdriver.webrtc.suppress-ice-candidate-filtering"
+
 // These definitions are shared with a Simulator webinspectord and
 // OS X process communicating with it.
 
index 090d1b5..928cce1 100644 (file)
@@ -1,3 +1,15 @@
+2017-08-25  Brian Burg  <bburg@apple.com>
+
+        Web Automation: add capabilities to control ICE candidate filtering and insecure media capture
+        https://bugs.webkit.org/show_bug.cgi?id=175563
+        <rdar://problem/33734492>
+
+        Reviewed by Joseph Pecoraro.
+
+        * UIProcess/Cocoa/AutomationClient.mm:
+        (WebKit::AutomationClient::requestAutomationSessionWithCapabilities):
+        Translate new capabilities to _WKAutomationSessionConfiguration properties.
+
 2017-08-24  Brian Burg  <bburg@apple.com>
 
         Web Automation: use automation session configurations to propagate per-session settings
index fef8470..83df133 100644 (file)
@@ -34,6 +34,7 @@
 #import "_WKAutomationDelegate.h"
 #import "_WKAutomationSessionConfiguration.h"
 #import <JavaScriptCore/RemoteInspector.h>
+#import <JavaScriptCore/RemoteInspectorConstants.h>
 #import <wtf/text/WTFString.h>
 
 using namespace Inspector;
@@ -77,6 +78,16 @@ void AutomationClient::requestAutomationSession(const String& sessionIdentifier)
 void AutomationClient::requestAutomationSessionWithCapabilities(NSString *sessionIdentifier, NSDictionary *forwardedCapabilities)
 {
     _WKAutomationSessionConfiguration *configuration = [_WKAutomationSessionConfiguration new];
+    if (NSNumber *value = forwardedCapabilities[WIRAllowInsecureMediaCaptureCapabilityKey]) {
+        if ([value isKindOfClass:[NSNumber class]])
+            configuration.allowsInsecureMediaCapture = value.boolValue;
+    }
+
+    if (NSNumber *value = forwardedCapabilities[WIRSuppressICECandidateFilteringCapabilityKey]) {
+        if ([value isKindOfClass:[NSNumber class]])
+            configuration.suppressesICECandidateFiltering = value.boolValue;
+    }
+
     // 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.