diff --git a/CHANGELOG.md b/CHANGELOG.md index d397c037d003..1f3e17c52ee5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -746,7 +746,7 @@ If you rely on the $modelValue validation, you can overwrite the `min`/`max` val link: function(scope, element, attrs, ctrl) { var maxValidator = ctrl.$validators.max; - ctrk.$validators.max = function(modelValue, viewValue) { + ctrl.$validators.max = function(modelValue, viewValue) { return maxValidator(modelValue, modelValue); }; } @@ -1579,7 +1579,7 @@ If you rely on the $modelValue validation, you can overwrite the `min`/`max` val link: function(scope, element, attrs, ctrl) { var maxValidator = ctrl.$validators.max; - ctrk.$validators.max = function(modelValue, viewValue) { + ctrl.$validators.max = function(modelValue, viewValue) { return maxValidator(modelValue, modelValue); }; } diff --git a/docs/content/guide/migration.ngdoc b/docs/content/guide/migration.ngdoc index 74de3a418ffa..66137dbd4cfb 100644 --- a/docs/content/guide/migration.ngdoc +++ b/docs/content/guide/migration.ngdoc @@ -148,7 +148,7 @@ custom directive, as seen in the following example directive definition object: link: function(scope, element, attrs, ctrl) { var maxValidator = ctrl.$validators.max; - ctrk.$validators.max = function(modelValue, viewValue) { + ctrl.$validators.max = function(modelValue, viewValue) { return maxValidator(modelValue, modelValue); }; } diff --git a/package.json b/package.json index a7b71fcaebee..b674a91bcaa0 100644 --- a/package.json +++ b/package.json @@ -83,13 +83,13 @@ "npm-run": "^4.1.0", "open-sans-fontface": "^1.4.0", "promises-aplus-tests": "~2.1.0", - "protractor": "^5.1.2", + "protractor": "^5.4.1", "q": "~1.0.0", "q-io": "^1.10.9", "qq": "^0.3.5", "rewire": "~2.1.0", "sax": "^1.1.1", - "selenium-webdriver": "^2.53.1", + "selenium-webdriver": "^4.0.0-alpha.1", "semver": "^5.4.1", "serve-favicon": "^2.3.0", "serve-index": "^1.8.0", diff --git a/src/AngularPublic.js b/src/AngularPublic.js index 725e2877078f..760fa835bd48 100644 --- a/src/AngularPublic.js +++ b/src/AngularPublic.js @@ -7,7 +7,7 @@ htmlAnchorDirective, inputDirective, - inputDirective, + hiddenInputBrowserCacheDirective, formDirective, scriptDirective, selectDirective, @@ -221,7 +221,8 @@ function publishExternalAPI(angular) { ngModelOptions: ngModelOptionsDirective }). directive({ - ngInclude: ngIncludeFillContentDirective + ngInclude: ngIncludeFillContentDirective, + input: hiddenInputBrowserCacheDirective }). directive(ngAttributeAliasDirectives). directive(ngEventDirectives); diff --git a/src/ng/directive/input.js b/src/ng/directive/input.js index bf6576f81a09..2f75defe1944 100644 --- a/src/ng/directive/input.js +++ b/src/ng/directive/input.js @@ -2193,6 +2193,48 @@ var inputDirective = ['$browser', '$sniffer', '$filter', '$parse', }]; +var hiddenInputBrowserCacheDirective = function() { + var valueProperty = { + configurable: true, + enumerable: false, + get: function() { + return this.getAttribute('value') || ''; + }, + set: function(val) { + this.setAttribute('value', val); + } + }; + + return { + restrict: 'E', + priority: 200, + compile: function(_, attr) { + if (lowercase(attr.type) !== 'hidden') { + return; + } + + return { + pre: function(scope, element, attr, ctrls) { + var node = element[0]; + + // Support: Edge + // Moving the DOM around prevents autofillling + if (node.parentNode) { + node.parentNode.insertBefore(node, node.nextSibling); + } + + // Support: FF, IE + // Avoiding direct assignment to .value prevents autofillling + if (Object.defineProperty) { + Object.defineProperty(node, 'value', valueProperty); + } + } + }; + } + }; +}; + + var CONSTANT_VALUE_REGEXP = /^(true|false|\d+)$/; /** diff --git a/test/e2e/fixtures/back2dom/index.html b/test/e2e/fixtures/back2dom/index.html new file mode 100644 index 000000000000..6134b796a1fa --- /dev/null +++ b/test/e2e/fixtures/back2dom/index.html @@ -0,0 +1,13 @@ + + + +
+ + + + +
+ + + + \ No newline at end of file diff --git a/test/e2e/fixtures/back2dom/script.js b/test/e2e/fixtures/back2dom/script.js new file mode 100644 index 000000000000..04911865c39d --- /dev/null +++ b/test/e2e/fixtures/back2dom/script.js @@ -0,0 +1,11 @@ +'use strict'; + +angular + .module('test', []) + .run(function($rootScope) { + $rootScope.internalFnCalled = false; + + $rootScope.internalFn = function() { + $rootScope.internalFnCalled = true; + }; + }); diff --git a/test/e2e/tests/input-hidden.spec.js b/test/e2e/tests/input-hidden.spec.js index ef2669f0f64a..e1e76e0390a4 100644 --- a/test/e2e/tests/input-hidden.spec.js +++ b/test/e2e/tests/input-hidden.spec.js @@ -14,4 +14,72 @@ describe('hidden thingy', function() { var expectedValue = browser.params.browser === 'safari' ? '{{ 7 * 6 }}' : ''; expect(element(by.css('input')).getAttribute('value')).toEqual(expectedValue); }); + + it('should prevent browser autofill on browser.refresh', function() { + + loadFixture('back2dom'); + expect(element(by.css('#input1')).getAttribute('value')).toEqual(''); + expect(element(by.css('#input2')).getAttribute('value')).toEqual(''); + + element(by.css('textarea')).sendKeys('{{ internalFn() }}'); + + expect(element(by.css('#input1')).getAttribute('value')).toEqual('{{ internalFn() }}'); + expect(element(by.css('#input2')).getAttribute('value')).toEqual('{{ internalFn() }}'); + expect(element(by.css('body')).getAttribute('class')).toBe(''); + + browser.refresh(); + expect(element(by.css('body')).getAttribute('class')).toBe(''); + }); + + it('should prevent browser autofill on location.reload', function() { + + loadFixture('back2dom'); + expect(element(by.css('#input1')).getAttribute('value')).toEqual(''); + expect(element(by.css('#input2')).getAttribute('value')).toEqual(''); + + element(by.css('textarea')).sendKeys('{{ internalFn() }}'); + + expect(element(by.css('#input1')).getAttribute('value')).toEqual('{{ internalFn() }}'); + expect(element(by.css('#input2')).getAttribute('value')).toEqual('{{ internalFn() }}'); + expect(element(by.css('body')).getAttribute('class')).toBe(''); + + browser.driver.executeScript('location.reload()'); + expect(element(by.css('body')).getAttribute('class')).toBe(''); + }); + + it('should prevent browser autofill on history.back', function() { + + loadFixture('back2dom'); + expect(element(by.css('#input1')).getAttribute('value')).toEqual(''); + expect(element(by.css('#input2')).getAttribute('value')).toEqual(''); + + element(by.css('textarea')).sendKeys('{{ internalFn() }}'); + + expect(element(by.css('#input1')).getAttribute('value')).toEqual('{{ internalFn() }}'); + expect(element(by.css('#input2')).getAttribute('value')).toEqual('{{ internalFn() }}'); + expect(element(by.css('body')).getAttribute('class')).toBe(''); + + loadFixture('sample'); + + browser.driver.executeScript('history.back()'); + expect(element(by.css('body')).getAttribute('class')).toBe(''); + }); + + it('should prevent browser autofill on history.forward', function() { + + loadFixture('sample'); + loadFixture('back2dom'); + expect(element(by.css('#input1')).getAttribute('value')).toEqual(''); + expect(element(by.css('#input2')).getAttribute('value')).toEqual(''); + + element(by.css('textarea')).sendKeys('{{ internalFn() }}'); + + expect(element(by.css('#input1')).getAttribute('value')).toEqual('{{ internalFn() }}'); + expect(element(by.css('#input2')).getAttribute('value')).toEqual('{{ internalFn() }}'); + expect(element(by.css('body')).getAttribute('class')).toBe(''); + + browser.driver.executeScript('history.back()'); + browser.driver.executeScript('history.forward()'); + expect(element(by.css('body')).getAttribute('class')).toBe(''); + }); }); diff --git a/yarn.lock b/yarn.lock index 79123f878d11..551675822fb2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,10 +12,10 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" integrity sha1-vShOV8hPEyXacCur/IKlMoGQwMU= -"@types/selenium-webdriver@^2.53.35", "@types/selenium-webdriver@~2.53.39": - version "2.53.42" - resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-2.53.42.tgz#74cb77fb6052edaff2a8984ddafd88d419f25cac" - integrity sha1-dMt3+2BS7a/yqJhN2v2I1BnyXKw= +"@types/selenium-webdriver@^3.0.0": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-3.0.12.tgz#6affe5aed1ba379175075a889adbe2bc3aa62159" + integrity sha512-hYn+eoOehVUIdMwp5h34ZsGAO1ydja10GDup4BwyoFCdcH5MQ35nQq+AInSaBMEMopD5hEooFCyKo2Pajbe1ag== Base64@~0.2.0: version "0.2.1" @@ -106,11 +106,6 @@ addressparser@1.0.1: resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746" integrity sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y= -adm-zip@0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.4.tgz#a61ed5ae6905c3aea58b3a657d25033091052736" - integrity sha1-ph7VrmkFw66lizplfSUDMJEFJzY= - adm-zip@^0.4.7, adm-zip@~0.4.3: version "0.4.7" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" @@ -642,10 +637,10 @@ block-stream@*: dependencies: inherits "~2.0.0" -blocking-proxy@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blocking-proxy/-/blocking-proxy-0.0.5.tgz#462905e0dcfbea970f41aa37223dda9c07b1912b" - integrity sha1-RikF4Nz76pcPQao3Ij3anAexkSs= +blocking-proxy@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/blocking-proxy/-/blocking-proxy-1.0.1.tgz#81d6fd1fe13a4c0d6957df7f91b75e98dac40cb2" + integrity sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA== dependencies: minimist "^1.2.0" @@ -902,6 +897,13 @@ browserstack@1.5.0: dependencies: https-proxy-agent "1.0.0" +browserstack@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/browserstack/-/browserstack-1.5.1.tgz#e2dfa66ffee940ebad0a07f7e00fd4687c455d66" + integrity sha512-O8VMT64P9NOLhuIoD4YngyxBURefaSdR4QdhG8l6HZ9VxtU7jc3m6jLufFwKA5gaf7fetfB2TnRJnMxyob+heg== + dependencies: + https-proxy-agent "^2.2.1" + browserstacktunnel-wrapper@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/browserstacktunnel-wrapper/-/browserstacktunnel-wrapper-2.0.0.tgz#4d6ebf6a667451ad4ee9325fddcf3546607b4d92" @@ -1607,6 +1609,11 @@ core-js@^2.2.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" integrity sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4= +core-js@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz#fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65" + integrity sha1-+rg/uwstjchfpjbEudNMdUIMbWU= + core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -2307,6 +2314,11 @@ es6-promise@^4.0.3: resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" integrity sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ== +es6-promise@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.0.2.tgz#010d5858423a5f118979665f46486a95c6ee2bb6" + integrity sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y= + es6-promisify@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" @@ -3984,6 +3996,11 @@ iltorb@^1.0.13: dependencies: nan "^2.4.0" +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -4505,7 +4522,7 @@ jade@0.26.3: commander "0.6.1" mkdirp "0.3.0" -jasmine-core@^2.8.0: +jasmine-core@^2.8.0, jasmine-core@~2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" integrity sha1-vMl5rh+f0FcB5F5S5l06XWPxok4= @@ -4544,7 +4561,16 @@ jasmine-reporters@^2.2.0: mkdirp "^0.5.1" xmldom "^0.1.22" -jasmine@^2.4.1, jasmine@^2.5.3: +jasmine@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.8.0.tgz#6b089c0a11576b1f16df11b80146d91d4e8b8a3e" + integrity sha1-awicChFXax8W3xG4AUbZHU6Lij4= + dependencies: + exit "^0.1.2" + glob "^7.0.6" + jasmine-core "~2.8.0" + +jasmine@^2.4.1: version "2.5.3" resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.5.3.tgz#5441f254e1fc2269deb1dfd93e0e57d565ff4d22" integrity sha1-VEHyVOH8Imnesd/ZPg5X1WX/TSI= @@ -4657,6 +4683,17 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +jszip@^3.1.3: + version "3.1.5" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.1.5.tgz#e3c2a6c6d706ac6e603314036d43cd40beefdf37" + integrity sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ== + dependencies: + core-js "~2.3.0" + es6-promise "~3.0.2" + lie "~3.1.0" + pako "~1.0.2" + readable-stream "~2.0.6" + karma-browserstack-launcher@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/karma-browserstack-launcher/-/karma-browserstack-launcher-1.3.0.tgz#61fe3d36b1cf10681e40f9d874bf37271fb1c674" @@ -4864,6 +4901,13 @@ libqp@1.1.0: resolved "https://registry.yarnpkg.com/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8" integrity sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g= +lie@~3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" + integrity sha1-mkNrLMd0bKWd56QfpGmz77dr2H4= + dependencies: + immediate "~3.0.5" + liftoff@^2.0.1: version "2.3.0" resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385" @@ -6101,11 +6145,6 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" -options@>=0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" - integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8= - orchestrator@^0.3.0: version "0.3.8" resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" @@ -6197,6 +6236,11 @@ pako@~0.2.0: resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= +pako@~1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + integrity sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg== + param-case@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.0.tgz#2619f90fd6c829ed0b958f1c84ed03a745a6d70a" @@ -6507,25 +6551,26 @@ protochain@^1.0.5: resolved "https://registry.yarnpkg.com/protochain/-/protochain-1.0.5.tgz#991c407e99de264aadf8f81504b5e7faf7bfa260" integrity sha1-mRxAfpneJkqt+PgVBLXn+ve/omA= -protractor@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/protractor/-/protractor-5.1.2.tgz#9b221741709a4c62d5cd53c6aadd54a71137e95f" - integrity sha1-myIXQXCaTGLVzVPGqt1UpxE36V8= +protractor@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/protractor/-/protractor-5.4.1.tgz#011a99e38df7aa45d22455b889ffbb13a6ce0bd9" + integrity sha512-ORey5ewQMYiXQxcQohsqEiKYOg/r5yJoJbt0tuROmmgajdg/CA3gTOZNIFJncUVMAJIk5YFqBBLUjKVmQO6tfA== dependencies: "@types/node" "^6.0.46" "@types/q" "^0.0.32" - "@types/selenium-webdriver" "~2.53.39" - blocking-proxy "0.0.5" + "@types/selenium-webdriver" "^3.0.0" + blocking-proxy "^1.0.0" + browserstack "^1.5.1" chalk "^1.1.3" glob "^7.0.3" - jasmine "^2.5.3" + jasmine "2.8.0" jasminewd2 "^2.1.0" optimist "~0.6.0" q "1.4.1" - saucelabs "~1.3.0" - selenium-webdriver "3.0.1" + saucelabs "^1.5.0" + selenium-webdriver "3.6.0" source-map-support "~0.4.0" - webdriver-js-extender "^1.0.0" + webdriver-js-extender "2.1.0" webdriver-manager "^12.0.6" proxy-addr@~1.1.3: @@ -6828,7 +6873,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.1.5: string_decoder "~0.10.x" util-deprecate "~1.0.1" -readable-stream@~2.0.5: +readable-stream@~2.0.5, readable-stream@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" integrity sha1-j5A0HmilPMySh4jaz80Rs265t44= @@ -7285,17 +7330,12 @@ saucelabs@^1.4.0: dependencies: https-proxy-agent "^1.0.0" -saucelabs@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.3.0.tgz#d240e8009df7fa87306ec4578a69ba3b5c424fee" - integrity sha1-0kDoAJ33+ocwbsRXimm6O1xCT+4= +saucelabs@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.5.0.tgz#9405a73c360d449b232839919a86c396d379fd9d" + integrity sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ== dependencies: - https-proxy-agent "^1.0.0" - -sax@0.6.x: - version "0.6.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-0.6.1.tgz#563b19c7c1de892e09bfc4f2fc30e3c27f0952b9" - integrity sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk= + https-proxy-agent "^2.2.1" sax@>=0.6.0, sax@^1.1.1: version "1.2.2" @@ -7307,26 +7347,25 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -selenium-webdriver@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.0.1.tgz#a2dea5da4a97f6672e89e7ca7276cefa365147a7" - integrity sha1-ot6l2kqX9mcuiefKcnbO+jZRR6c= +selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz#2ba87a1662c020b8988c981ae62cb2a01298eafc" + integrity sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q== dependencies: - adm-zip "^0.4.7" + jszip "^3.1.3" rimraf "^2.5.4" tmp "0.0.30" xml2js "^0.4.17" -selenium-webdriver@^2.53.1, selenium-webdriver@^2.53.2: - version "2.53.3" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz#d29ff5a957dff1a1b49dc457756e4e4bfbdce085" - integrity sha1-0p/1qVff8aG0ncRXdW5OS/vc4IU= +selenium-webdriver@^4.0.0-alpha.1: + version "4.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.0.0-alpha.1.tgz#cc93415e21d2dc1dfd85dfc5f6b55f3ac53933b1" + integrity sha512-z88rdjHAv3jmTZ7KSGUkTvo4rGzcDGMq0oXWHNIDK96Gs31JKVdu9+FMtT4KBrVoibg8dUicJDok6GnqqttO5Q== dependencies: - adm-zip "0.4.4" - rimraf "^2.2.8" - tmp "0.0.24" - ws "^1.0.1" - xml2js "0.4.4" + jszip "^3.1.3" + rimraf "^2.5.4" + tmp "0.0.30" + xml2js "^0.4.17" "semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.2.0: version "5.3.0" @@ -8250,11 +8289,6 @@ title-case@^2.1.0: no-case "^2.2.0" upper-case "^1.0.3" -tmp@0.0.24: - version "0.0.24" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.24.tgz#d6a5e198d14a9835cc6f2d7c3d9e302428c8cf12" - integrity sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI= - tmp@0.0.30: version "0.0.30" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" @@ -8443,11 +8477,6 @@ uid-number@^0.0.6: resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= -ultron@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" - integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po= - ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" @@ -8791,13 +8820,13 @@ weak-map@1.0.0: resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.0.tgz#b66e56a9df0bd25a76bbf1b514db129080614a37" integrity sha1-tm5Wqd8L0lp2u/G1FNsSkIBhSjc= -webdriver-js-extender@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz#81c533a9e33d5bfb597b4e63e2cdb25b54777515" - integrity sha1-gcUzqeM9W/tZe05j4s2yW1R3dRU= +webdriver-js-extender@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz#57d7a93c00db4cc8d556e4d3db4b5db0a80c3bb7" + integrity sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ== dependencies: - "@types/selenium-webdriver" "^2.53.35" - selenium-webdriver "^2.53.2" + "@types/selenium-webdriver" "^3.0.0" + selenium-webdriver "^3.0.1" webdriver-manager@^12.0.6: version "12.0.6" @@ -8902,14 +8931,6 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -ws@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" - integrity sha1-CC3bbGQehdS7RR8D1S8G6r2x8Bg= - dependencies: - options ">=0.0.5" - ultron "1.0.x" - ws@~3.3.1: version "3.3.3" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" @@ -8919,14 +8940,6 @@ ws@~3.3.1: safe-buffer "~5.1.0" ultron "~1.1.0" -xml2js@0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.4.tgz#3111010003008ae19240eba17497b57c729c555d" - integrity sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0= - dependencies: - sax "0.6.x" - xmlbuilder ">=1.0.0" - xml2js@^0.4.17: version "0.4.17" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" @@ -8935,7 +8948,7 @@ xml2js@^0.4.17: sax ">=0.6.0" xmlbuilder "^4.1.0" -xmlbuilder@8.2.2, xmlbuilder@>=1.0.0: +xmlbuilder@8.2.2: version "8.2.2" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" integrity sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=