Skip to content

Commit 6103798

Browse files
committed
Updating .NET to not propagate non-W3C compliant capability names
Fixes issue #5646.
1 parent 74e584d commit 6103798

File tree

3 files changed

+28
-1
lines changed

3 files changed

+28
-1
lines changed

dotnet/src/webdriver/DriverOptions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,11 @@ protected DesiredCapabilities GenerateDesiredCapabilities(bool isSpecificationCo
333333
if (this.Proxy != null)
334334
{
335335
Dictionary<string, object> proxyCapability = this.Proxy.ToCapability();
336+
if (!isSpecificationCompliant)
337+
{
338+
proxyCapability = this.Proxy.ToLegacyCapability();
339+
}
340+
336341
if (proxyCapability != null)
337342
{
338343
capabilities.SetCapability(CapabilityType.Proxy, proxyCapability);

dotnet/src/webdriver/Remote/CapabilityType.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
// limitations under the License.
1717
// </copyright>
1818

19+
using System.Collections.Generic;
20+
1921
namespace OpenQA.Selenium.Remote
2022
{
2123
/// <summary>
@@ -137,5 +139,25 @@ public static class CapabilityType
137139
/// Capability name used to indicate whether the driver supports web storage.
138140
/// </summary>
139141
public static readonly string SupportsWebStorage = "webStorageEnabled";
142+
143+
private static readonly List<string> KnownSpecCompliantCapabilityNames = new List<string>() {
144+
BrowserName,
145+
BrowserVersion,
146+
PlatformName,
147+
AcceptInsecureCertificates,
148+
PageLoadStrategy,
149+
Proxy,
150+
UnhandledPromptBehavior
151+
};
152+
153+
public static bool IsSpecCompliantCapabilityName(string capabilityName)
154+
{
155+
if (KnownSpecCompliantCapabilityNames.Contains(capabilityName) || capabilityName.Contains(":"))
156+
{
157+
return true;
158+
}
159+
160+
return false;
161+
}
140162
}
141163
}

dotnet/src/webdriver/Remote/RemoteWebDriver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1158,7 +1158,7 @@ protected virtual Dictionary<string, object> GetCapabilitiesDictionary(ICapabili
11581158
DesiredCapabilities capabilitiesObject = capabilitiesToConvert as DesiredCapabilities;
11591159
foreach (KeyValuePair<string, object> entry in capabilitiesObject.CapabilitiesDictionary)
11601160
{
1161-
if (entry.Key != CapabilityType.Version && entry.Key != CapabilityType.Platform)
1161+
if (CapabilityType.IsSpecCompliantCapabilityName(entry.Key))
11621162
{
11631163
capabilitiesDictionary.Add(entry.Key, entry.Value);
11641164
}

0 commit comments

Comments
 (0)