@@ -1359,6 +1359,26 @@ <h3>Extensions</h3>
1359
1359
< a > remote end steps</ a > .
1360
1360
</ aside >
1361
1361
1362
+ < p > Other specifications may define < dfn data-lt ="additional WebDriver
1363
+ capability "> additional WebDriver capabilities</ dfn > . Each defined
1364
+ capability must have a < dfn > capability name</ dfn > which is a string
1365
+ not containing a "< code > :</ code > " (colon) character,
1366
+ an < dfn > additional capability deserialization algorithm</ dfn > which is
1367
+ a set of steps taking a single argument < var > value</ var > which has a
1368
+ JSON type, returning either < a > success</ a > wrapping the deserialized
1369
+ capability value or < a > error</ a > .
1370
+
1371
+ < p > An < a > additional WebDriver capability</ a > may also define
1372
+ a < dfn > matched capability serialization algorithm</ dfn > , which is a
1373
+ set of steps used to determine if a capability is matched by the
1374
+ current implementation and provide any computed value to return to the
1375
+ user. This set of steps takes a single argument < var > value</ var > ,
1376
+ which is the output of the corresponding < a > additional capability
1377
+ deserialization algorithm</ a > , and returns
1378
+ either < a > < code > null</ code > </ a > to indicate the capability is not
1379
+ matched, or a non-null JSON-serializable value if the capability is
1380
+ matched.
1381
+
1362
1382
< p > < a > Remote ends</ a > may also introduce
1363
1383
< dfn data-lt ="extension capability "> extension capabilities</ dfn >
1364
1384
that are extra < a > capabilities</ a >
@@ -1751,7 +1771,7 @@ <h3>Processing capabilities</h3>
1751
1771
argument.
1752
1772
1753
1773
< li > < p > If < var > matched capabilities</ var > is not < a > < code > null</ code > </ a > ,
1754
- return < var > matched capabilities</ var > .
1774
+ return < a > success </ a > with data < var > matched capabilities</ var > .
1755
1775
</ ol >
1756
1776
1757
1777
< li > < p > Return < a > success</ a > with data < a > < code > null</ code > </ a > .
@@ -1817,6 +1837,14 @@ <h3>Processing capabilities</h3>
1817
1837
to < a > deserialize as an unhandled prompt behavior</ a > with argument
1818
1838
< var > value</ var > .
1819
1839
1840
+ < dt > < var > name</ var > is the name of an < a > additional WebDriver
1841
+ capability</ a >
1842
+ < dd > < p > Let < var > deserialized</ var > be the result of < a > trying</ a >
1843
+ to run the < a > additional capability deserialization
1844
+ algorithm</ a > for the extension capability corresponding
1845
+ to < var > name</ var > , with argument
1846
+ < var > value</ var > .
1847
+
1820
1848
< dt > < var > name</ var > is the key of an < a > extension capability</ a >
1821
1849
< dd > < p > If < var > name</ var > is known to the implementation,
1822
1850
let < var > deserialized</ var > be the result of < a > trying</ a >
@@ -1946,6 +1974,7 @@ <h3>Processing capabilities</h3>
1946
1974
< li > < p > For each < var > name</ var > and < var > value</ var > corresponding
1947
1975
to < var > capability</ var > ’s < a > own properties</ a > :
1948
1976
< ol >
1977
+ < li > < p > Let < var > match value</ var > equal < var > value</ var > .
1949
1978
< li > < p > Run the substeps of the first matching < var > name</ var > :
1950
1979
1951
1980
< dl class =switch >
@@ -2036,15 +2065,28 @@ <h3>Processing capabilities</h3>
2036
2065
will not be established.
2037
2066
2038
2067
< dt > < strong > Otherwise</ strong >
2039
- < dd > < p > If < var > name</ var > is the key of an
2040
- < a > extension capability</ a > , < p > let < var > value</ var > be the
2041
- result of < a > trying</ a > implementation-specific steps to match
2042
- on < var > name</ var > with < var > value</ var > . If the match is not
2043
- successful, return < a > success</ a > with data < a > < code > null</ code > </ a > .
2044
- </ dl >
2068
+ < dd >
2069
+ < ul >
2070
+ < li >
2071
+ < p > If < var > name</ var > is the name of an < a > additional
2072
+ WebDriver capability</ a > which defines a < a > matched
2073
+ capability serialization algorithm</ a > , let < var > match
2074
+ value</ var > be the result of running the < a > matched
2075
+ capability serialization algorithm</ a > for
2076
+ capability < var > name</ var > with
2077
+ argument < var > value</ var > .</ li >
2078
+
2079
+ < li >
2080
+ < p > Otherwise, if < var > name</ var > is the key of an
2081
+ < a > extension capability</ a > , let < var > match value</ var > be the
2082
+ result of < a > trying</ a > implementation-specific steps to
2083
+ match on < var > name</ var > with < var > value</ var > . If the
2084
+ match is not successful, return < a > success</ a > with
2085
+ data < a > < code > null</ code > </ a > .
2086
+ </ dl >
2045
2087
2046
2088
< li > < p > < a > Set a property</ a > on < var > matched capabilities</ var >
2047
- with name < var > name</ var > and value < var > value</ var > .
2089
+ with name < var > name</ var > and value < var > match value</ var > .
2048
2090
</ ol >
2049
2091
2050
2092
< li > < p > Return < a > success</ a > with data < var > matched capabilities</ var > .
0 commit comments