Skip to content

Commit 03d8714

Browse files
committed
Revert .NET bindings to send spec-compliant new session for all browsers
Now that the Java remote server will correctly handle spec-compliant new session payload, even for browsers that are not yet spec-compliant, we can revert to the original behavior of sending both "capabilities" and "desiredCapabilities" properties with new session requests. Reverts commit 4ce57f6.
1 parent 6f0ea54 commit 03d8714

File tree

5 files changed

+20
-72
lines changed

5 files changed

+20
-72
lines changed

dotnet/src/webdriver/DriverOptions.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -262,12 +262,6 @@ protected Dictionary<string, object> GenerateLoggingPreferencesDictionary()
262262
protected DesiredCapabilities GenerateDesiredCapabilities(bool isSpecificationCompliant)
263263
{
264264
DesiredCapabilities capabilities = new DesiredCapabilities();
265-
ISpecificationCompliant specificationCompliantCapabilities = capabilities as ISpecificationCompliant;
266-
if (specificationCompliantCapabilities != null)
267-
{
268-
specificationCompliantCapabilities.IsSpecificationCompliant = isSpecificationCompliant;
269-
}
270-
271265
if (!string.IsNullOrEmpty(this.browserName))
272266
{
273267
capabilities.SetCapability(CapabilityType.BrowserName, this.browserName);

dotnet/src/webdriver/Remote/CapabilityType.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,25 @@ public static class CapabilityType
140140
/// </summary>
141141
public static readonly string SupportsWebStorage = "webStorageEnabled";
142142

143+
/// <summary>
144+
/// Capability name used to indicate whether the driver supports setting the browser window's size and position.
145+
/// </summary>
146+
public static readonly string SetWindowRect = "setWindowRect";
147+
148+
/// <summary>
149+
/// Capability name used to get or set timeout values when creating a session.
150+
/// </summary>
151+
public static readonly string Timeouts = "timeouts";
152+
143153
private static readonly List<string> KnownSpecCompliantCapabilityNames = new List<string>() {
144154
BrowserName,
145155
BrowserVersion,
146156
PlatformName,
147157
AcceptInsecureCertificates,
148158
PageLoadStrategy,
149159
Proxy,
160+
SetWindowRect,
161+
Timeouts,
150162
UnhandledPromptBehavior
151163
};
152164

dotnet/src/webdriver/Remote/DesiredCapabilities.cs

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,9 @@ namespace OpenQA.Selenium.Remote
2626
/// Class to Create the capabilities of the browser you require for <see cref="IWebDriver"/>.
2727
/// If you wish to use default values use the static methods
2828
/// </summary>
29-
public class DesiredCapabilities : ICapabilities, ISpecificationCompliant
29+
public class DesiredCapabilities : ICapabilities
3030
{
3131
private readonly Dictionary<string, object> capabilities = new Dictionary<string, object>();
32-
private bool isSpecCompliant;
3332

3433
/// <summary>
3534
/// Initializes a new instance of the <see cref="DesiredCapabilities"/> class
@@ -101,7 +100,6 @@ internal DesiredCapabilities(string browser, string version, Platform platform,
101100
this.SetCapability(CapabilityType.BrowserName, browser);
102101
this.SetCapability(CapabilityType.Version, version);
103102
this.SetCapability(CapabilityType.Platform, platform);
104-
this.isSpecCompliant = isSpecCompliant;
105103
}
106104

107105
/// <summary>
@@ -179,15 +177,6 @@ public bool AcceptInsecureCerts
179177
}
180178
}
181179

182-
/// <summary>
183-
/// Gets or sets a value indicating whether this set of capabilities is compliant with the W3C WebDriver specification.
184-
/// </summary>
185-
bool ISpecificationCompliant.IsSpecificationCompliant
186-
{
187-
get { return this.isSpecCompliant; }
188-
set { this.isSpecCompliant = value; }
189-
}
190-
191180
/// <summary>
192181
/// Gets the internal capabilities dictionary.
193182
/// </summary>
@@ -215,7 +204,6 @@ public static DesiredCapabilities Firefox()
215204
public static DesiredCapabilities PhantomJS()
216205
{
217206
DesiredCapabilities dc = new DesiredCapabilities("phantomjs", string.Empty, new Platform(PlatformType.Any));
218-
dc.isSpecCompliant = false;
219207
return dc;
220208
}
221209

@@ -237,7 +225,6 @@ public static DesiredCapabilities InternetExplorer()
237225
public static DesiredCapabilities Edge()
238226
{
239227
DesiredCapabilities dc = new DesiredCapabilities("MicrosoftEdge", string.Empty, new Platform(PlatformType.Windows));
240-
dc.isSpecCompliant = false;
241228
return dc;
242229
}
243230

@@ -248,7 +235,6 @@ public static DesiredCapabilities Edge()
248235
public static DesiredCapabilities HtmlUnit()
249236
{
250237
DesiredCapabilities dc = new DesiredCapabilities("htmlunit", string.Empty, new Platform(PlatformType.Any));
251-
dc.isSpecCompliant = false;
252238
return dc;
253239
}
254240

@@ -260,7 +246,6 @@ public static DesiredCapabilities HtmlUnitWithJavaScript()
260246
{
261247
DesiredCapabilities dc = new DesiredCapabilities("htmlunit", string.Empty, new Platform(PlatformType.Any));
262248
dc.SetCapability(CapabilityType.IsJavaScriptEnabled, true);
263-
dc.isSpecCompliant = false;
264249
return dc;
265250
}
266251

@@ -293,7 +278,6 @@ public static DesiredCapabilities Chrome()
293278
{
294279
// This is strangely inconsistent.
295280
DesiredCapabilities dc = new DesiredCapabilities("chrome", string.Empty, new Platform(PlatformType.Any));
296-
dc.isSpecCompliant = false;
297281
return dc;
298282
}
299283

@@ -315,7 +299,6 @@ public static DesiredCapabilities Android()
315299
public static DesiredCapabilities Opera()
316300
{
317301
DesiredCapabilities dc = new DesiredCapabilities("opera", string.Empty, new Platform(PlatformType.Any));
318-
dc.isSpecCompliant = false;
319302
return dc;
320303
}
321304

@@ -327,7 +310,6 @@ public static DesiredCapabilities Opera()
327310
public static DesiredCapabilities Safari()
328311
{
329312
DesiredCapabilities dc = new DesiredCapabilities("safari", string.Empty, new Platform(PlatformType.Mac));
330-
dc.isSpecCompliant = false;
331313
return dc;
332314
}
333315

dotnet/src/webdriver/Remote/ISpecificationCompliant.cs

Lines changed: 0 additions & 36 deletions
This file was deleted.

dotnet/src/webdriver/Remote/RemoteWebDriver.cs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ public RemoteWebDriver(ICommandExecutor commandExecutor, ICapabilities desiredCa
156156
object locationContextCapability = this.capabilities.GetCapability(CapabilityType.SupportsLocationContext);
157157
if (locationContextCapability is bool && (bool)locationContextCapability)
158158
{
159-
this.locationContext = new RemoteLocationContext(this);
159+
this.locationContext = new RemoteLocationContext(this);
160160
}
161161
}
162162

@@ -1105,18 +1105,14 @@ protected void StartSession(ICapabilities desiredCapabilities)
11051105
Dictionary<string, object> parameters = new Dictionary<string, object>();
11061106
parameters.Add("desiredCapabilities", this.GetLegacyCapabilitiesDictionary(desiredCapabilities));
11071107

1108-
ISpecificationCompliant specCompliantCapabilities = desiredCapabilities as ISpecificationCompliant;
1109-
if (specCompliantCapabilities != null && specCompliantCapabilities.IsSpecificationCompliant)
1110-
{
1111-
Dictionary<string, object> firstMatchCapabilities = this.GetCapabilitiesDictionary(desiredCapabilities);
1108+
Dictionary<string, object> firstMatchCapabilities = this.GetCapabilitiesDictionary(desiredCapabilities);
11121109

1113-
List<object> firstMatchCapabilitiesList = new List<object>();
1114-
firstMatchCapabilitiesList.Add(firstMatchCapabilities);
1110+
List<object> firstMatchCapabilitiesList = new List<object>();
1111+
firstMatchCapabilitiesList.Add(firstMatchCapabilities);
11151112

1116-
Dictionary<string, object> specCompliantCapabilitiesDictionary = new Dictionary<string, object>();
1117-
specCompliantCapabilitiesDictionary["firstMatch"] = firstMatchCapabilitiesList;
1118-
parameters.Add("capabilities", specCompliantCapabilitiesDictionary);
1119-
}
1113+
Dictionary<string, object> specCompliantCapabilitiesDictionary = new Dictionary<string, object>();
1114+
specCompliantCapabilitiesDictionary["firstMatch"] = firstMatchCapabilitiesList;
1115+
parameters.Add("capabilities", specCompliantCapabilitiesDictionary);
11201116

11211117
Response response = this.Execute(DriverCommand.NewSession, parameters);
11221118

0 commit comments

Comments
 (0)