* add executeDriverScript route, command, tests
* allow driver scripts to write and collect console logs
* ensure driver script protocol is set to same protocol as driver, and also includes all appium commands
* implement isFeatureEnabled to check for insecure feature
* add tests for isFeatureEnabled
* update feature flag name to match style of other flags
* add ensureFeatureEnabled method for use by other drivers
* move driver script execution into a child process so we can kill it if necessary
* use this.opts.address instead of this.opts.host
* ensure driver script timeout is a number in the child proc as well
* ensure we get webdriverio without issues
* add imageTemplateDefaultScale to scale arbitrary scale every time by default
* put all of template scaling into one method
* increase test cases to cover all situations
* define gnoreDefaultImageTemplateScale for click
* add a comment
* tweak comments
* fix typo, default value, docstring
* fix review
* fix ratio potential issue
* use const instead of let
* tweak a comment about scale factor
* remove _, tweak NaN comparison
* use math.round to compare two float
* rename float round constant
* fix typo
* update imgObj
* fix comments
* fix wrong coordinate for android and ios
* separate fixScaleTemplateImage
* add fixScaleTemplateImage as a settings
* take care of both landscape and portrate
* rename to fixTemplateImageScale
* rename ratio to scale
* does not scale if the arg is non number
* rename preference name, default value
* remove comment outted lines
* add null filter as safer way
* make allowing CORS conditional
It turns out blindly allowing CORS could be a security hazard (who knew)
See https://github.com/w3c/webdriver/pull/1362 for the conversation that led to this realization.
This change makes the cross domain middleware conditional (defaulting to the current behavior).
This way Appium can pass in 'false' based on a flag, for better server security.
* actually include function parameter we can use from appium
* add custom locator strategy
* address review comments
* allow customFindModules cap to register multiple modules as an object
* add unit tests for custom element finding plugin