playwright/test
Dmitry Gozman de30ee0aa8
fix(oopifs): account for various races between processes (#5320)
Consider the following situation (one among many possible).
- FrameA has an oopif child FrameB;
- FrameA navigates to same-process origin (e.g. about:blank);
- at the same time, FrameC is attached to the FrameB in the
  FrameB's process.

In this case, we get `frameNavigated` event for FrameA, immediately
followed by `frameAttached` event for FrameC. Since we detach all
FrameA's child frames on navigation, including the oopif FrameB,
there is no parent frame for FrameC to attach to.

In general, multiple processes coming from oopif may send their
events in wildly different order, and their view about the frame
tree may not always correspond to the "up to date" frame tree as
seen from the main frame's process. We try to keep our frame tree
aligned with what main process thinks, and ignore events that
reference frames absent in this tree.

Drive-by: handle filechooser exceptions because of async processing.
2021-02-05 11:30:44 -08:00
..
__snapshots__ test: add a test for focused input screenshot (#5060) 2021-01-22 06:51:59 -08:00
android fix(electron): return a ChromiumBrowserContext for electron (#4913) 2021-01-13 12:08:14 -08:00
assets feat(snapshots): make cssom overrides efficient (#5218) 2021-01-29 15:24:38 -08:00
chromium fix(extensions): do not enable screencast for background pages (#4919) 2021-01-06 15:08:28 -08:00
cli feat(pause): make page.pause public (#5288) 2021-02-03 16:01:51 -08:00
electron docs: document electron api (#5229) 2021-02-01 11:43:26 -08:00
firefox chore: roll test fixtures, replace trace w/ video (#4129) 2020-10-13 13:18:36 -07:00
fixtures fix(launchServer): wait for the server to start before taking its address (#4513) 2020-11-23 15:23:31 -08:00
beforeunload.spec.ts feat(chromium): roll Chromium to r823944 (#4341) 2020-11-04 11:20:02 -08:00
browser.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
browsercontext-add-cookies.spec.ts feat(storage): accept path in save/load storage apis (#4714) 2020-12-14 16:03:52 -08:00
browsercontext-basic.spec.ts fix: add parameter to close/crash/disconnected etc events (#5098) 2021-01-22 09:58:31 -08:00
browsercontext-clearcookies.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
browsercontext-cookies.spec.ts fix: do not return cookies with empty values (#5147) 2021-01-25 16:37:33 -08:00
browsercontext-credentials.spec.ts chore: split playwright.fixtures into files (6) (#3988) 2020-09-26 16:05:58 -07:00
browsercontext-csp.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
browsercontext-device.spec.ts chore: split playwright.fixtures into files (6) (#3988) 2020-09-26 16:05:58 -07:00
browsercontext-dsf.spec.ts link: make lint happy 2020-12-02 13:48:44 -08:00
browsercontext-expose-function.spec.ts chore: move recorder to server side (#5128) 2021-01-24 08:44:11 -08:00
browsercontext-locale.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
browsercontext-page-event.spec.ts chore: split playwright.fixtures into files (6) (#3988) 2020-09-26 16:05:58 -07:00
browsercontext-proxy.spec.ts chore: migrate to Folio 0.3.17 (#5115) 2021-01-23 02:22:40 +03:00
browsercontext-route.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
browsercontext-storage-state.spec.ts feat(storage): accept path in save/load storage apis (#4714) 2020-12-14 16:03:52 -08:00
browsercontext-timezone-id.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
browsercontext-user-agent.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
browsercontext-viewport-mobile.spec.ts feat(webkit): bump to 1363 (#4178) 2020-10-19 17:40:25 -07:00
browsercontext-viewport.spec.ts feat(webkit): roll webkit to r1395 (#4550) 2020-12-01 05:26:53 -08:00
browsertype-basic.spec.ts test: fixed executable path test if ran in Docker (#4219) 2020-10-27 00:04:39 -07:00
browsertype-connect.spec.ts fix(server): use setMaxListeners(0) on all internal event emitters (#5283) 2021-02-03 13:53:09 -08:00
browsertype-launch-server.spec.ts fix(connect): provide an error message when ws endpoint is incorrect (#4978) 2021-01-11 15:53:45 -08:00
browsertype-launch.spec.ts test: unflake some chromium tests (#4521) 2020-11-24 18:14:57 -08:00
capabilities.spec.ts test(chromium): disable webgl2 on headful (#4450) 2020-11-16 16:18:50 -08:00
channels.spec.ts chore: expose adb devices and actions (#4647) 2020-12-09 15:06:57 -08:00
checkCoverage.js feat(firefox): support WebSockets on Firefox (#4289) 2020-10-30 10:34:24 -07:00
chromium-css-coverage.spec.ts chore: split playwright.fixtures into files (6) (#3988) 2020-09-26 16:05:58 -07:00
chromium-js-coverage.spec.ts fix(debug): do not generate source urls for anonymous scripts (#3691) 2020-11-13 14:47:55 -08:00
coverage.js docs: document electron api (#5229) 2021-02-01 11:43:26 -08:00
css-parser.spec.ts test: remove hacky requires, use imports instead (#4835) 2020-12-28 11:14:33 -08:00
defaultbrowsercontext-1.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
defaultbrowsercontext-2.spec.ts chore: migrate to Folio 0.3.17 (#5115) 2021-01-23 02:22:40 +03:00
download.spec.ts chore: add websocket connection mode (#4510) 2020-11-20 15:19:39 -08:00
downloads-path.spec.ts chore: roll folio to 0.3.11 (#4130) 2020-10-13 22:40:25 -07:00
elementhandle-bounding-box.spec.ts docs: improve boundingBox documentation (#4500) 2020-11-19 13:55:14 -08:00
elementhandle-click.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
elementhandle-content-frame.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
elementhandle-convenience.spec.ts api: add isChecked method (#4953) 2021-01-08 17:36:17 -08:00
elementhandle-eval-on-selector.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
elementhandle-misc.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
elementhandle-owner-frame.spec.ts chore: migrate to Folio 0.3.17 (#5115) 2021-01-23 02:22:40 +03:00
elementhandle-press.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
elementhandle-query-selector.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
elementhandle-screenshot.spec.ts chore: migrate to Folio 0.3.17 (#5115) 2021-01-23 02:22:40 +03:00
elementhandle-scroll-into-view.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
elementhandle-select-text.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
elementhandle-type.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
elementhandle-wait-for-element-state.spec.ts api: add isVisible, isHidden, isEnabled, isDisabled and isEditable (#4915) 2021-01-08 12:27:54 -08:00
emulation-focus.spec.ts test(focus): add passing test for focusing more than one page (#4347) 2020-11-04 22:42:35 -08:00
eval-on-selector-all.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
eval-on-selector.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
fixtures.spec.ts chore: migrate to Folio 0.3.17 (#5115) 2021-01-23 02:22:40 +03:00
fixtures.ts docs: document electron api (#5229) 2021-02-01 11:43:26 -08:00
frame-evaluate.spec.ts chore: add websocket connection mode (#4510) 2020-11-20 15:19:39 -08:00
frame-frame-element.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
frame-goto.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
frame-hierarchy.spec.ts feat(chromium): roll to r828656 (#4503) 2020-11-20 08:10:27 -08:00
geolocation.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
har.spec.ts chore: centralize playwright creation, bind context listeners to instance (#5217) 2021-01-29 16:00:56 -08:00
headful.spec.ts feat(chromium): bump to 845618 (#5138) 2021-01-25 07:45:21 -08:00
http.fixtures.ts feat(proxy): enable per-context http proxy (#4280) 2020-10-29 16:12:30 -07:00
ignorehttpserrors.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
interception.spec.ts fix(chromium): make interception work with dedicated workers (#4658) 2020-12-10 15:04:57 -08:00
jshandle-as-element.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
jshandle-evaluate.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
jshandle-json-value.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
jshandle-properties.spec.ts fix(handles): always create proper handle type (#4879) 2021-01-04 13:54:55 -08:00
jshandle-to-string.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
launcher.spec.ts chore: make generate_types not depend on the source (#5040) 2021-01-17 12:09:20 -08:00
logger.spec.ts chore: roll test fixtures, replace trace w/ video (#4129) 2020-10-13 13:18:36 -07:00
page-accessibility.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-add-init-script.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
page-add-script-tag.spec.ts chore: split playwright.fixtures into files (6) (#3988) 2020-09-26 16:05:58 -07:00
page-add-style-tag.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
page-autowaiting-basic.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-autowaiting-no-hang.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-basic.spec.ts fix: add parameter to close/crash/disconnected etc events (#5098) 2021-01-22 09:58:31 -08:00
page-check.spec.ts api: add isChecked method (#4953) 2021-01-08 17:36:17 -08:00
page-click-react.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-click-scroll.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-click-timeout-1.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-click-timeout-2.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-click-timeout-3.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-click-timeout-4.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-click.spec.ts fix(scroll): scroll from under the sticky header (#4641) 2020-12-16 15:29:42 -08:00
page-close.spec.ts feat(webkit): bump to 1378 (#4338) 2020-11-04 11:00:25 -08:00
page-dialog.spec.ts feat(dialogs): auto-dismiss dialogs when there are no listeners (#5269) 2021-02-03 10:34:45 -08:00
page-dispatchevent.spec.ts feat(cli): bring selector generator into playwright (#4795) 2020-12-23 12:44:47 -08:00
page-drag.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-emulate-media.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
page-evaluate-handle.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
page-evaluate.spec.ts chore(webpack): minify injected sources (#4946) 2021-01-08 16:15:05 -08:00
page-event-console.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
page-event-crash.spec.ts chore: migrate to Folio 0.3.17 (#5115) 2021-01-23 02:22:40 +03:00
page-event-network.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
page-event-pageerror.spec.ts chore: split playwright.fixtures into files (6) (#3988) 2020-09-26 16:05:58 -07:00
page-event-popup.spec.ts test: fixed failing test on video bot (#4747) 2020-12-18 14:46:12 -08:00
page-event-request.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
page-expose-function.spec.ts fix(handles): always create proper handle type (#4879) 2021-01-04 13:54:55 -08:00
page-fill.spec.ts feat(fill): make fill work when targeting elements inside the label (#5143) 2021-01-25 13:40:19 -08:00
page-focus.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-goto.spec.ts fix: don't parse potentially invalid urls in event handlers (#5090) 2021-01-25 14:49:51 -08:00
page-history.spec.ts fix(reload): do not throw when reload is racing with navigation (#5113) 2021-01-22 15:58:53 -08:00
page-keyboard.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-mouse.spec.ts chore: migrate to Folio 0.3.17 (#5115) 2021-01-23 02:22:40 +03:00
page-navigation.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-network-idle.spec.ts feat(firefox): roll Firefox to r1203 (#4365) 2020-11-05 23:17:27 -08:00
page-network-request.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-network-response.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-request-continue.spec.ts chore: migrate to Folio 0.3.17 (#5115) 2021-01-23 02:22:40 +03:00
page-request-fulfill.spec.ts test(network): add failing test for Set-Cookie in fulfill (#4988) 2021-01-12 15:56:12 -08:00
page-route.spec.ts chore(eslint): add rule no-unused-expressions (#4848) 2020-12-29 09:59:35 -08:00
page-screenshot.spec.ts fix: throw if quality=0 is passed for png screenshot (#4812) 2020-12-23 09:53:14 -08:00
page-select-option.spec.ts fix(dom): make selectOption wait for options (#5036) 2021-01-19 11:27:05 -08:00
page-set-content.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
page-set-extra-http-headers.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
page-set-input-files.spec.ts fix(oopifs): account for various races between processes (#5320) 2021-02-05 11:30:44 -08:00
page-wait-for-function.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-wait-for-load-state.spec.ts test: fixed failing test on video bot (#4747) 2020-12-18 14:46:12 -08:00
page-wait-for-navigation.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
page-wait-for-request.spec.ts feat(logs): add wrapApiCall for logging to many api methods (#5093) 2021-01-22 06:49:59 -08:00
page-wait-for-response.spec.ts feat(logs): add wrapApiCall for logging to many api methods (#5093) 2021-01-22 06:49:59 -08:00
page-wait-for-selector-1.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
page-wait-for-selector-2.spec.ts chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
pause.spec.ts feat(pause): make page.pause public (#5288) 2021-02-03 16:01:51 -08:00
pdf.spec.ts test: roll test runner to 0.9.20 (#4062) 2020-10-05 17:03:24 -07:00
permissions.spec.ts chore: migrate to Folio 0.3.17 (#5115) 2021-01-23 02:22:40 +03:00
playwright.fixtures.ts api(videos): introduce a single recordVideo option bag (#4309) 2020-11-02 19:42:05 -08:00
popup.spec.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
proxy.spec.ts chore: migrate to Folio 0.3.17 (#5115) 2021-01-23 02:22:40 +03:00
queryselector.spec.ts chore: remove selectorsV2Enabled switch (#4880) 2021-01-04 15:32:31 -08:00
remoteServer.fixture.ts fix(launchServer): wait for the server to start before taking its address (#4513) 2020-11-23 15:23:31 -08:00
resource-timing.spec.ts chore: fix lint after #4517 (#4518) 2020-11-24 06:50:40 -08:00
run_static_server.js test: convert rename options to parameters, remove options magic (#3543) 2020-08-19 21:32:12 -07:00
screencast.spec.ts devops: downloading ffmpeg during install step (#5249) 2021-02-03 09:19:11 -08:00
selector-generator.spec.ts feat(pause): make page.pause public (#5288) 2021-02-03 16:01:51 -08:00
selectors-css.spec.ts test: add test for multiple arguments in :has() (#5047) 2021-01-18 20:40:13 -08:00
selectors-misc.spec.ts feat(selectors): always make xpath relative (#5252) 2021-02-02 13:27:16 -08:00
selectors-register.spec.ts feat(cli): bring selector generator into playwright (#4795) 2020-12-23 12:44:47 -08:00
selectors-text.spec.ts feat(text selector): match text in child nodes (#5293) 2021-02-04 17:44:55 -08:00
slowmo.spec.ts chore: add websocket connection mode (#4510) 2020-11-20 15:19:39 -08:00
tap.spec.ts test(tap): unflake chromium headful tap tests (#4431) 2020-11-16 10:14:37 -08:00
trace.spec.ts feat(trace viewer): Adds _debugName BrowserContextOption to let users define a name for their contexts (#5205) 2021-01-28 10:50:57 -08:00
tsconfig.json feat(testrunner): delete types.d.ts (#3551) 2020-08-21 09:53:02 -07:00
utils.ts chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
web-socket.spec.ts fix: add parameter to close/crash/disconnected etc events (#5098) 2021-01-22 09:58:31 -08:00
workers.spec.ts feat(firefox): bump to 1205 (#4386) 2020-11-09 16:16:10 -08:00