function ensureFileDetectorsAreEnabled(ctor) {
  const mixin = class extends ctor {
    /** @param {input.FileDetector} detector */
    setFileDetector(detector) {
      webdriver.WebDriver.prototype.setFileDetector.call(this, detector);
    }
  };
  return mixin;
}
function ensureFileDetectorsAreEnabled(ctor) {
  const mixin = class extends ctor {
    /** @param {input.FileDetector} detector */
    setFileDetector(detector) {
      webdriver.WebDriver.prototype.setFileDetector.call(this, detector);
    }
  };
  return mixin;
}
function ensureFileDetectorsAreEnabled ( ctor ) { const mixin = class extends ctor { /** @param {input.FileDetector} detector */ setFileDetector ( detector ) { webdriver . WebDriver . prototype . setFileDetector . call ( this , detector ) ; } } ; return mixin ; }
{@linkplain webdriver.WebDriver#setFileDetector WebDriver's setFileDetector}
method uses a non-standard command to transfer files from the local client
to the remote end hosting the browser. Many of the WebDriver sub-types, like
the {@link chrome.Driver} and {@link firefox.Driver}, do not support this
command. Thus, these classes override the `setFileDetector` to no-op.

This function uses a mixin to re-enable `setFileDetector` by calling the
original method on the WebDriver prototype directly. This is used only when
the builder creates a Chrome or Firefox instance that communicates with a
remote end (and thus, support for remote file detectors is unknown).

@param {function(new: webdriver.WebDriver, ...?)} ctor
@return {function(new: webdriver.WebDriver, ...?)}
{ @linkplain webdriver . WebDriver#setFileDetector WebDriver s setFileDetector } method uses a non - standard command to transfer files from the local client to the remote end hosting the browser . Many of the WebDriver sub - types like the { @link chrome . Driver } and { @link firefox . Driver } do not support this command . Thus these classes override the setFileDetector to no - op .
Ensure that the file detectors are enabled