Understanding WebDriver compatibility data

I have questions about the meaning of WebDriver BCD.

This post was prompted by my ill-advised discussion on mdn/browser-compat-data #3340. I’m moving that discussion here.

There are a few things repeating throughout the WebDriver data that I have doubts about, but I’m not sure I understand enough about WebDriver to know whether they’re actually problems. I think some of the notes might be improved, but I thought I’d make sure I understand the status quo before starting a PR.

Questions:

  • Chromium-dervied browsers often have data that goes something like this:

    "chrome": {
      "version_added": false,
      "notes": "To enable Chromium support, include <code>{\"goog:chromeOptions\": {\"w3c\": true}}</code> in the <a href=https://developer.mozilla.org/docs/Web/WebDriver/Capabilities>capabilities</a>."
    }
    

    Does this mean that the feature is unsupported, but something like it is available as an alternative? Or is this a “true, but with a flag” situation that isn’t reflected in the schema yet?

  • As in the above example, is it OK that we’re referring to Chromium? Ordinarily, we cite browsers not engines (e.g., referring to “Firefox” and not “Gecko”). Is “Chromium support” in this case referring to something apart from the browser? Or in other words, does “To enable Chromium support” mean “To enable support in Chrome” or does it mean something like “To enable a thing known as Chromium Support”?

  • Other entries contain "version_added": false and a note like, “The vendor-supported implementation for [browser name] is non-spec-conforming and incompatible.” I understand the first part, that the implementation of [some feature] in [browser name] does not conform to the specification. The incompatible bit throws me though. Does this mean that some features do not conform to the specification, but they are compatible with it? Or does incompatible reiterate non-conforming?

These notes seem pretty consistent throughout the WebDriver data, so I suspect there’s a reason for each of them and I thank you for your help in figuring it out. :slight_smile:

1 Like

I originally created this stuff in collaboration with @ato, but don’t really have clear answers here. Andreas, can you help answer Daniel’s questions here?

Andreas can’t reply to this because his account settings are borked, for vaious reasons.

So I’ve got him to mail me his replies so I can post them on his behalf. See below


Does this mean that the feature is unsupported, but something like
it is available as an alternative? Or is this a “true, but with a
flag” situation that isn’t reflected in the schema yet?

It used to be the case that you needed to set a capability to turn
on chromedriver’s WebDriver compatibility mode. I’m not sure this
is still the case.

As in the above example, is it OK that we’re referring to Chromium?
Ordinarily, we cite browsers not engines (e.g., referring to “Firefox”
and not “Gecko”). Is “Chromium support” in this case referring to
something apart from the browser? Or in other words, does “To enable
Chromium support” mean “To enable support in Chrome” or does it
mean something like “To enable a thing known as Chromium Support”?

“To enable support in Chrome” sounds fine.

Other entries contain “version_added”: false and a note like, “The
vendor-supported implementation for [browser name] is non-spec-conforming
and incompatible.” I understand the first part, that the implementation
of [some feature] in [browser name] does not conform to the
specification. The incompatible bit throws me though. Does this
mean that some features do not conform to the specification, but
they are compatible with it? Or does incompatible reiterate
non-conforming?

What it’s trying to say is that there exists an implementation and
that it doesn’t conform to the specification, but that it does work
with existing clients because the implementation speaks an earlier
non-conforming version of the protocol.

I agree this is not obvious from the wording. Probably the last
part can be omitted: I’m not sure we need/want to say anything about
non-conforming implementations on MDN at all.

1 Like

@chrisdavidmills please give my thanks to Andreas—that’s a really helpful set of answers. I think I can act on this. Also thank you for working around the communication barriers. :slight_smile:

1 Like

You are welcome. @ato is a good man; always helpful and friendly.

2 Likes