From 48f8a03528278f3e293db69a99ee933859aa47ab Mon Sep 17 00:00:00 2001
From: AutomatedTester The process for successfully creating a session MUST be: The remote end steps for the New Session command are: Let capabilities be the result of getting a property named "capabilities"
+ from the parameters argument.
+ Let resultant capabilities be the result of calling process capabilities
+ with capabilities as an argument. If the result is an error, return an
+ error with the code session not created.
+
+ An Intermediary Node may inspect capabilities for items that might influence
+ how jobs are distributed. When the Intermediary Node has completed any checks on
+ capabilities it MUST forward the request on to the Remote End.
+
+ If the list of active sessions is not empty:
+
+ Return an error with code unsupported operation.
+ Sessions
requires passing a session ID.
newSession()
+ New Session
-
HTTP Method
@@ -109,89 +109,60 @@ newSession()
-
-
session not created error code. The sessionId MUST be left as the default value unless one was set in the initial request, in which case that value MUST be used. The error message SHOULD list all unmet required capabilities though only a single required capability MUST be given.
+
+
sessionId which MUST be unique for each session (a UUID SHOULD be used). Generating the sessionId
- MAY occur before the session is created. If the parameters object had the "sessionId" key with a value, this MAY be
- discarded in favour of the freshly generated sessionId. Because of this, it is
- recommended that sessionId generation be done on the remote end. If the sessionId has already been used, a Response MUST be sent with the status
- code set to session not created and the value being an explanation that the sessionId has previously been used.sessionId associated with this session.success error code.As stated, when returning the value of the Response, the remote end MUST include the capability names and values of all supported Capabilities from this specification. They MAY also include any additional capability names and values of supported Capabilities implemented independently of this specification. Local ends MAY choose to ignore this additional information. Intermediate nodes between the local and remote ends MAY interpret the Capabilities being returned.
- -If the browserName is given as a desired capability and omitted from the required capabilities, and the returned browserName value does not match the requested one, local ends SHOULD issue a warning to the user. How this warning is issued is undefined, but one implementation could be a log message. In this particular case, local ends MAY chose to change the Response's status code to session not created, and modify the value to explain the cause, including the value originally returned as the browserName capability. If this is done, the local end MUST ensure that the remote end quits the session.
The following keys SHOULD be used in the Capabilities instances. They all default to the null string.
-The following platform names are defined and MUST be used, case sensitively, for the "platformName" unless the actual platform being used is not given in this list:
+Let session id be the result of generating a UUID.
Append session id to list of active sessions.
+ Let data be an empty JSON Object with the following entries. +
+ sessionId: the value of session Id.
+
+ capabilities: the value of resultant capabilities.
+
In addition "any" MAY be used to indicate the underlying OS is either unknown or does not matter.
- -Implementors MAY add additional platform names. Until these are standardized, these MUST follow the conventions outlined in extending the protocol section with the exception that the vendor prefix SHOULD omit the leading "-" character.
- -
For example, Mozilla's Firefox OS could be described as either "-MOZ-FIREFOXOS". The latter makes it easier for local ends to specify an enum of supported platforms and is therefore recommended in this case.
- - - -The following status codes MUST be returned by the "newSession" command:
-successResponse MUST contain a Capabilities object describing the session.timeoutunknown errorReturn success with data data. +
For all comparisons, if the key is missing (as determined by a call to Capability.has() returning "false"), that particular criteria shall not factor into the comparison.
-| HTTP Method | @@ -894,89 +894,60 @@
|---|
The process for successfully creating a session MUST be:
+The remote end steps for the New Session command are:
+session not created error code. The sessionId MUST be left as the default value unless one was set in the initial request, in which case that value MUST be used. The error message SHOULD list all unmet required capabilities though only a single required capability MUST be given.Let capabilities be the result of getting a property named "capabilities" + from the parameters argument.
++ Let resultant capabilities be the result of calling process capabilities + with capabilities as an argument. If the result is an error, return an + error with the code session not created. +
++ An Intermediary Node may inspect capabilities for items that might influence + how jobs are distributed. When the Intermediary Node has completed any checks on + capabilities it MUST forward the request on to the Remote End. +
++ If the list of active sessions is not empty: +
+ Return an error with code unsupported operation. +
+sessionId which MUST be unique for each session (a UUID SHOULD be used). Generating the sessionId
- MAY occur before the session is created. If the parameters object had the "sessionId" key with a value, this MAY be
- discarded in favour of the freshly generated sessionId. Because of this, it is
- recommended that sessionId generation be done on the remote end. If the sessionId has already been used, a Response MUST be sent with the status
- code set to session not created and the value being an explanation that the sessionId has previously been used.sessionId associated with this session.success error code.As stated, when returning the value of the Response, the remote end MUST include the capability names and values of all supported Capabilities from this specification. They MAY also include any additional capability names and values of supported Capabilities implemented independently of this specification. Local ends MAY choose to ignore this additional information. Intermediate nodes between the local and remote ends MAY interpret the Capabilities being returned.
- -If the browserName is given as a desired capability and omitted from the required capabilities, and the returned browserName value does not match the requested one, local ends SHOULD issue a warning to the user. How this warning is issued is undefined, but one implementation could be a log message. In this particular case, local ends MAY chose to change the Response's status code to session not created, and modify the value to explain the cause, including the value originally returned as the browserName capability. If this is done, the local end MUST ensure that the remote end quits the session.
The following keys SHOULD be used in the Capabilities instances. They all default to the null string.
-The following platform names are defined and MUST be used, case sensitively, for the "platformName" unless the actual platform being used is not given in this list:
+Let session id be the result of generating a UUID.
Append session id to list of active sessions.
+ Let data be an empty JSON Object with the following entries. +
+ sessionId: the value of session Id.
+
+ capabilities: the value of resultant capabilities.
+
In addition "any" MAY be used to indicate the underlying OS is either unknown or does not matter.
- -Implementors MAY add additional platform names. Until these are standardized, these MUST follow the conventions outlined in extending the protocol section with the exception that the vendor prefix SHOULD omit the leading "-" character.
- -
For example, Mozilla's Firefox OS could be described as either "-MOZ-FIREFOXOS". The latter makes it easier for local ends to specify an enum of supported platforms and is therefore recommended in this case.
- - - -The following status codes MUST be returned by the "newSession" command:
-successResponse MUST contain a Capabilities object describing the session.timeoutunknown errorReturn success with data data. +
For all comparisons, if the key is missing (as determined by a call to Capability.has() returning "false"), that particular criteria shall not factor into the comparison.
-Capabilities are used by WebDriver implementations to enumerate the parts of this specification that they support. They are also used when establishing a new session to descrive the required or desired capabilities. This appendix collects the capabilities mentioned in this spec into one place.