diff --git a/.node-version b/.node-version index 5c088ddb94..9cd25a1fec 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -12.14.1 +12.18.3 diff --git a/appveyor.yml b/appveyor.yml index 14fe3df6c6..7a735cdea4 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -8,7 +8,7 @@ branches: # https://www.appveyor.com/docs/lang/nodejs-iojs/ environment: # use matching version of Node.js - nodejs_version: "12.14.1" + nodejs_version: "12.18.3" # encode secure variables which will NOT be used # in pull requests # https://www.appveyor.com/docs/build-configuration/#secure-variables diff --git a/circle.yml b/circle.yml index fa12ad4e33..68559422ba 100644 --- a/circle.yml +++ b/circle.yml @@ -45,14 +45,14 @@ executors: # the Docker image with Cypress dependencies and Chrome browser cy-doc: docker: - - image: cypress/browsers:node12.14.1-chrome83-ff77 + - image: cypress/browsers:node12.18.3-chrome83-ff77 environment: PLATFORM: linux # Docker image with non-root "node" user non-root-docker-user: docker: - - image: cypress/browsers:node12.14.1-chrome83-ff77 + - image: cypress/browsers:node12.18.3-chrome83-ff77 user: node environment: PLATFORM: linux diff --git a/package.json b/package.json index c983e8d7c3..286a91d62a 100644 --- a/package.json +++ b/package.json @@ -196,7 +196,7 @@ "typescript": "3.7.4" }, "engines": { - "node": ">=12.14.1", + "node": ">=12.18.3", "yarn": ">=1.17.3" }, "productName": "Cypress", diff --git a/packages/electron/package.json b/packages/electron/package.json index 44ffad00af..d40af3f9da 100644 --- a/packages/electron/package.json +++ b/packages/electron/package.json @@ -24,7 +24,7 @@ "minimist": "1.2.5" }, "devDependencies": { - "electron": "10.1.5", + "electron": "11.0.2", "execa": "4.1.0", "mocha": "3.5.3" }, diff --git a/packages/https-proxy/test/integration/proxy_spec.js b/packages/https-proxy/test/integration/proxy_spec.js index 70923a52d7..1beeb2b774 100644 --- a/packages/https-proxy/test/integration/proxy_spec.js +++ b/packages/https-proxy/test/integration/proxy_spec.js @@ -103,7 +103,16 @@ describe('Proxy', () => { expect(res.socket.destroyed).to.be.true // ensure the outgoing socket created for this connection was destroyed expect(net.connect).calledOnce - expect(net.connect.getCalls()[0].returnValue.destroyed).to.be.true + + const socket = net.connect.getCalls()[0].returnValue + + return new Promise((resolve) => { + socket.on('close', () => { + expect(socket.destroyed).to.be.true + + resolve() + }) + }) }) }) diff --git a/packages/server/lib/browsers/electron.js b/packages/server/lib/browsers/electron.js index 84d83e4c50..fd410058df 100644 --- a/packages/server/lib/browsers/electron.js +++ b/packages/server/lib/browsers/electron.js @@ -121,6 +121,9 @@ module.exports = { y: 'browserY', devTools: 'isBrowserDevToolsOpen', }, + webPreferences: { + sandbox: true, + }, onFocus () { if (options.show) { return menu.set({ withDevTools: true }) diff --git a/packages/server/lib/gui/windows.ts b/packages/server/lib/gui/windows.ts index f0b34590f7..b81a8f6b0b 100644 --- a/packages/server/lib/gui/windows.ts +++ b/packages/server/lib/gui/windows.ts @@ -135,6 +135,8 @@ export function defaults (options = {}) { partition: null, webSecurity: true, nodeIntegration: false, + // TODO: enable contextIsolation for Cypress browser (default in Electron 12) + contextIsolation: false, backgroundThrottling: false, }, }) @@ -209,6 +211,7 @@ export function create (projectRoot, _options: WindowOptions = {}, newBrowserWin return win } +// open desktop-gui BrowserWindow export function open (projectRoot, options: WindowOptions = {}, newBrowserWindow = _newBrowserWindow) { // if we already have a window open based // on that type then just show + focus it! diff --git a/scripts/run-docker-local.sh b/scripts/run-docker-local.sh index 27fd5c49cc..f34e945547 100755 --- a/scripts/run-docker-local.sh +++ b/scripts/run-docker-local.sh @@ -3,7 +3,7 @@ set e+x echo "This script should be run from cypress's root" -name=cypress/browsers:node12.14.1-chrome83-ff77 +name=cypress/browsers:node12.18.3-chrome83-ff77 echo "Pulling CI container $name" docker pull $name diff --git a/yarn.lock b/yarn.lock index 7756dc96ca..3c8c6866f2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12984,10 +12984,10 @@ electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.378, electron-to-chromi resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.576.tgz#2e70234484e03d7c7e90310d7d79fd3775379c34" integrity sha512-uSEI0XZ//5ic+0NdOqlxp0liCD44ck20OAGyLMSymIWTEAtHKVJi6JM18acOnRgUgX7Q65QqnI+sNncNvIy8ew== -electron@10.1.5: - version "10.1.5" - resolved "https://registry.yarnpkg.com/electron/-/electron-10.1.5.tgz#f2b161310f627063e73fbac44efcb35dece83a90" - integrity sha512-fys/KnEfJq05TtMij+lFvLuKkuVH030CHYx03iZrW5DNNLwjE6cW3pysJ420lB0FRSfPjTHBMu2eVCf5TG71zQ== +electron@11.0.2: + version "11.0.2" + resolved "https://registry.yarnpkg.com/electron/-/electron-11.0.2.tgz#c7bd2b9abdc1446f4578dbfa22573014b6b2df58" + integrity sha512-FTYtCm0oj8B8EJhp99BQSW2bd40xYEG/txMj+W3Ed0CNu5zVIIXb5WIrhXLvhcasN5LKy9nkmSZ+u220lCaARg== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12"