Files
cypress/packages/server/package.json
Zach Bloomquist a3265ccdef Control Chrome cookies through CDP (#5297)
* try connecting to chrome remote interface

* linting

* print CRI targets for better debugging

* linting

* load empty tab first when connecting to CRI

* first load blank page, then navigate

* Page.navigate is working

* linting

* remove title

* add mocha banner

* more banners

* update some server unit tests

* update integration test

* document how to run single driver spec file

* set the focus back on the page before navigating from blank chrome tab

* update server unit test

* do not store Chrome remote interface reference for now

* record video of the Chrome tab using screencast API

* use dynamic port to connect to Chrome remote interface

* update unit tests

* refactoring

* wrap chrome remote interface in our interface, limit access to send

* resolved merge

* fix reference

* passing run unit spec

* stub canary search for CI to pass

* add build step to packages/server

* update chrome spec

* do not build js on install for server

* updated spec snapshots

* update 6_visit_spec snapshot

* update snapshot for 6_web_security_spec

* update snapshot for 3_plugins_spec

* update snapshot for 3_user_agent_spec

* update snapshot for 5_stdout_spec

* update snapshot for 2_browser_path_spec

* do not git ignore js files, add note why

* update several snapshots with video on Chrome

* update visit performance snapshot

* add chrome-remote-interface dependency

* cleanup coffeescript conversion to JS, fix some type errors, make parallel override clearer

* fix failing tests

* Fix snapshot - now we do record in Chrome, so warning message is no longer there.

* remove chrome warnings about not recording from snapshot

* Remove performance tests from 6_visit_spec snapshot

* Remove error from snapshot

* Add newline back to cy_visit_performance_spec snapshot

* Use CDP to control Chrome cookies + screenshot

* Add devtools types

* Cleanup

* Cleanup

* Add guards for minimum CDP version

* Fix failing tests

* Split cdp_automation_spec out of electron_spec

* Move takeScreenshot to cri-client

* Navigate to about:blank

* look for blank page url

* add note about avoiding Prettier

* disable prettier a little more

* call chrome remote interface close after each spec

* return promise when starting screencast

* update failing unit tests, add cri client close test

* update integration test

* Add verbose debug statements to cri-client

* Use connect.createRetryingSocket for CDP connection

* record video from chrome browsers

* add method for validating browser family

* update e2e spec snapshot

* update 4_request_spec snapshot

* update snapshot for spec 1_commands_outside_of_test_spec

* update snapshot for 3_plugins_spec

* update snapshot for spec 3_user_agent_spec

* try: Always log video capturing errors

* update snapshot for 2_browser_path_spec

* update snapshot for 2_cookies_spec

* better browser family test

* update snapshot for 5_stdout_spec

* update snapshot for 5_subdomain_spec

* Add protocol_spec tests

* do not capture video during performance test

* Add test for VIDEO_POST_PROCESSING_FAILED warning

* Add basic cookie validation in cy.setCookie

* Update cdp_automation to throw on Network.setCookie failure code

* Update tests 🎉

* Update snapshot

* Fix test

* Remove redundant logs, cleanup

* Add cri-client_spec, fix some small bugs, improve errors

* Update dep

* use client.on to register screencast callback

* use isCookieName

* strict-cookie-parser@3.1.0

* cleanup prettier, extract some functions, switch to browser.family

* moar cleanup and fixes

* add logging to the cri-client so we can see every message sent + received to the cdp protocol

* bump bluebird to 3.7.0 for .tapCatch addition

* Fix unit tests

* WIP: update e2e test to ensure that duration of the video matches what we expect

* Test duration of recorded video

* Run 6_video_compression in chrome + electron

* Cleanup

* finish ffmpeg duration verification

* Update 8_reporters_spec snapshot

* Fix cri-client test

* Update CRI close logic to monkey-patch browser.kill

* add isBrowserFamily back

* make it possible for remote-debugging-port to get overridden

* Make CDP timeout 5s; add unit, e2e tests for CDP failure; add user-friendly CDP failure error

* Update tests

* Use CYPRESS_REMOTE_DEBUGGING_PORT to set CDP port; update CDP error message

* Change new Buffer to Buffer.from

* Apply name validation on all cookie commands

* Just throw on Chrome start if the CDP version is < 1.3

* Fix cypress_spec

* Use CDP to set resolution + scale factor in Chrome e2e

* Revert "Use CDP to set resolution + scale factor in Chrome e2e"

This reverts commit a1b86d9413.

* use CYPRESS_FORCE_BROWSER_SCALE to force standard resolution

* don't do --window-size --kiosk

* Use CDP to set resolution + scale factor in Chrome e2e

* Revert "use CYPRESS_FORCE_BROWSER_SCALE to force standard resolution"

This reverts commit 22c5e78670.

* Use Page.captureScreenshot for Electron + Chrome, reduce logic

* Use before() task to force device metrics in Chrome

* Fix protocol_spec

* Update 7_record_spec to allow for before() hook

* Update 6_task_spec snapshot

* Appease eslint

* Update hooks in 5_spec_isolation snapshot

* some general promisification and cleanup

* feedback on pluginsfile

* cdp_automation feedback

* chrome.coff feedback

* feedback

* run e2e tests on port 4466, ensure no e2e test ever runs on 5566 to prevent conflicting with debugger port

* accept new 'remote:debugger:protocol' automation command to control device metrics overrides

* update web security e2e to run on electron + chrome

* run web security tests in electorn, disable context isolation

* pass disable-site-isolation-trials to Electron so webSecurity works

* Fix errors in e2e tests caused by extra log item

* fix cri-client unit tests

* fancy arrows in log message


Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2019-10-21 17:07:53 -04:00

199 lines
6.5 KiB
JSON

{
"name": "@packages/server",
"version": "0.0.0",
"private": true,
"main": "index.js",
"scripts": {
"build-js": "tsc",
"check-deps": "node ../../scripts/check-deps.js --verbose",
"check-deps-pre": "npm run check-deps -- --prescript",
"clean-deps": "rm -rf node_modules",
"precodecov": "npm run check-deps-pre",
"codecov": "codecov",
"predev": "npm run check-deps-pre",
"dev": "node index.js",
"lint-coffee": "bin-up coffeelint test/*.coffee test/unit/*.coffee test/integration/*.coffee",
"prerepl": "npm run check-deps-pre",
"repl": "node repl.js",
"prestart": "npm run check-deps-pre",
"start": "node ../../cli/bin/cypress open --dev --global",
"pretest": "npm run check-deps-pre",
"test": "node ./test/scripts/run.js",
"pretest-cov": "npm run check-deps-pre",
"test-cov": "NODE_COVERAGE=true NODE_ENV=test CYPRESS_ENV=test BLUEBIRD_DEBUG=1 xvfb-maybe istanbul cover node_modules/.bin/_mocha -- --opts ./test/support/mocha.opts",
"pretest-cov-process": "npm run check-deps-pre",
"test-cov-process": "NODE_COVERAGE=true NODE_ENV=test CYPRESS_ENV=test BLUEBIRD_DEBUG=1 istanbul cover --include-pid",
"pretest-e2e": "npm run check-deps-pre",
"test-e2e": "node ./test/scripts/e2e.js",
"pretest-e2e-chrome": "npm run check-deps-pre",
"test-e2e-chrome": "node ./test/scripts/run.js test/e2e chrome",
"pretest-integration": "npm run check-deps-pre",
"test-integration": "node ./test/scripts/run.js test/integration",
"pretest-integration-watch": "npm run check-deps-pre",
"test-integration-watch": "./test/support/watch test-integration",
"test-performance": "node ./test/scripts/run.js test/performance",
"pretest-unit": "npm run check-deps-pre",
"test-unit": "node ./test/scripts/run.js test/unit",
"pretest-unit-watch": "npm run check-deps-pre",
"test-unit-watch": "./test/support/watch test/unit",
"pretest-watch": "npm run check-deps-pre",
"test-watch": "./test/support/watch test"
},
"dependencies": {
"@cypress/browserify-preprocessor": "1.1.2",
"@cypress/commit-info": "2.2.0",
"@cypress/get-windows-proxy": "1.6.0",
"@cypress/icons": "0.7.0",
"@ffmpeg-installer/ffmpeg": "1.0.19",
"ansi_up": "1.3.0",
"black-hole-stream": "0.0.1",
"bluebird": "3.7.0",
"browserify": "16.3.0",
"chai": "1.10.0",
"chalk": "2.4.2",
"charset": "1.0.1",
"check-more-types": "2.24.0",
"chokidar": "3.0.2",
"chrome-remote-interface": "0.28.0",
"cjsxify": "0.3.0",
"cli-table3": "0.5.1",
"color-string": "1.5.3",
"common-tags": "1.8.0",
"compression": "1.7.4",
"concat-stream": "1.6.2",
"content-type": "1.0.4",
"cookie-parser": "1.4.4",
"data-uri-to-buffer": "2.0.1",
"debug": "4.1.1",
"dependency-tree": "7.0.2",
"duplexify": "4.1.1",
"electron-context-menu": "0.11.0",
"errorhandler": "1.5.1",
"evil-dns": "0.2.0",
"execa": "1.0.0",
"express": "4.16.4",
"express-handlebars": "3.0.2",
"find-process": "1.4.1",
"fix-path": "2.1.0",
"fluent-ffmpeg": "2.1.2",
"fs-extra": "8.1.0",
"get-port": "5.0.0",
"getos": "3.1.1",
"glob": "7.1.3",
"graceful-fs": "4.2.0",
"grapheme-splitter": "1.0.4",
"http-accept": "0.1.6",
"http-proxy": "1.17.0",
"http-status-codes": "1.3.2",
"human-interval": "0.1.6",
"iconv-lite": "0.5.0",
"image-size": "0.7.4",
"is-fork-pr": "2.5.0",
"is-html": "2.0.0",
"jimp": "0.6.4",
"jsonlint": "1.6.3",
"konfig": "0.2.1",
"lazy-ass": "1.6.0",
"lockfile": "1.0.4",
"lodash": "4.17.15",
"log-symbols": "2.2.0",
"md5": "2.2.1",
"mime": "1.6.0",
"minimatch": "3.0.4",
"minimist": "1.2.0",
"mocha": "2.4.5",
"mocha-junit-reporter": "1.23.1",
"mocha-teamcity-reporter": "3.0.0",
"moment": "2.24.0",
"morgan": "1.9.1",
"node-machine-id": "1.1.10",
"node-webkit-updater": "cypress-io/node-webkit-updater#e74623726f381487f543e373e71515177a32daeb",
"opn": "cypress-io/opn#2f4e9a216ca7bdb95dfae9d46d99ddf004b3cbb5",
"ospath": "1.2.2",
"p-queue": "6.1.0",
"parse-domain": "2.0.0",
"pluralize": "8.0.0",
"pumpify": "1.5.1",
"ramda": "0.24.1",
"randomstring": "1.1.5",
"request": "2.88.0",
"request-promise": "4.2.4",
"return-deep-diff": "0.3.0",
"sanitize-filename": "1.6.3",
"semver": "6.3.0",
"send": "0.17.0",
"shell-env": "3.0.0",
"signal-exit": "3.0.2",
"sinon": "5.1.1",
"strip-ansi": "3.0.1",
"syntax-error": "1.4.0",
"term-size": "2.1.0",
"through": "2.3.8",
"tough-cookie": "3.0.1",
"trash": "5.2.0",
"underscore": "1.9.1",
"underscore.string": "3.3.5",
"url-parse": "1.4.7",
"utf8-stream": "0.0.0",
"uuid": "3.3.2",
"which": "1.3.1",
"widest-line": "3.1.0",
"winston": "2.4.4"
},
"devDependencies": {
"@babel/core": "7.4.4",
"@babel/plugin-proposal-class-properties": "7.4.4",
"@babel/plugin-proposal-object-rest-spread": "7.4.4",
"@babel/plugin-transform-runtime": "7.4.4",
"@babel/preset-env": "7.4.4",
"@babel/preset-react": "7.0.0",
"@babel/runtime": "7.4.4",
"@cypress/debugging-proxy": "2.0.1",
"@cypress/json-schemas": "5.32.2",
"@cypress/sinon-chai": "1.1.0",
"@types/chai-as-promised": "7.1.2",
"babel-plugin-add-module-exports": "1.0.2",
"babelify": "10.0.0",
"bin-up": "1.2.2",
"body-parser": "1.19.0",
"chai-as-promised": "7.1.1",
"chai-uuid": "1.0.6",
"chokidar-cli": "1.2.2",
"chrome-har-capturer": "0.13.4",
"coffee-coverage": "3.0.1",
"cors": "2.8.5",
"devtools-protocol": "0.0.702485",
"eol": "0.9.1",
"eventsource": "1.0.7",
"express-session": "1.16.1",
"express-useragent": "1.0.12",
"http-mitm-proxy": "0.7.0",
"https-proxy-agent": "3.0.0",
"istanbul": "0.4.5",
"mocked-env": "1.2.4",
"mockery": "2.1.0",
"multiparty": "4.2.1",
"nock": "9.6.1",
"npm-install-version": "6.0.2",
"proxyquire": "2.1.0",
"react": "15.6.2",
"repl.history": "0.1.4",
"snap-shot-it": "7.9.0",
"ssestream": "1.0.1",
"stream-to-promise": "1.1.1",
"supertest": "4.0.2",
"supertest-session": "4.0.0",
"ws": "5.2.2",
"xvfb": "cypress-io/node-xvfb#22e3783c31d81ebe64d8c0df491ea00cdc74726a",
"xvfb-maybe": "cypress-io/xvfb-maybe#c4a810c42d603949cd63b8cf245f6c239331d370"
},
"files": [
"config",
"lib"
],
"productName": "Cypress",
"optionalDependencies": {
"registry-js": "1.8.0"
}
}