Commit Graph

409 Commits

Author SHA1 Message Date
Yury Semikhatsky 25b199b40a
browser(firefox): fix screencast start event for popups (#3834) 2020-09-10 14:37:48 -07:00
Yury Semikhatsky d64d0025a4
browser(firefox): fix screencast in first window on mac headful (#3826)
* browser(firefox): fix screencast in first window on mac headful

* Revert only
2020-09-10 00:40:56 -07:00
Andrey Lushnikov 6c83266047
browser(firefox): force firefox devtools to open in a separate window (#3816)
References #3470
2020-09-09 09:36:32 -07:00
Dmitry Gozman 5364c6acbc
browser(firefox): fix automatic http->https redirect (#3812)
browser(firefox): fix automatic http->https redirect

Sometimes, Firefox does an automatic http->https redirect without hitting
the network (e.g. for http://wikipedia.org). In this case, the http request
is very strange:
- it does not actually hit the network;
- it is never intercepted;
- we cannot access its response because there was no actual response.

So, we had a bug where:
- redirects inherited the original request's listener;
- that listener was throwing an error.
This lead to the error in the listeners onDataAvailable call chain,
and original listener that renders the response was never called,
resulting in an empty page.

This change:
- ignores the original request that did not hit the network;
- does not inherit the listener;
- adds try/catch around problematic calls.
2020-09-09 09:16:03 -07:00
Yury Semikhatsky ee1becd897
browser(firefox): autoscale screencast to fit frame (#3720) 2020-09-01 17:10:06 -07:00
Joel Einbinder abb50a79bd
browser(firefox): fix request frame attribution (#3657)
Firefox will sometimes send multiple requests with the same http channel id. When a frame is loaded, the favicon is requested in the parent frame, but with the same channel id. This can cause the document request to report the wrong frame, causing the test 'should capture iframe navigation request' to fail. It fails consistently on my computer.

This patch adds the content policy type into the http channelId to better distinguish requests. Maybe there is something better we can do? It looks like we use channelId has request ids, so there might be more bugs with these favicon requests in playwright?
2020-08-28 17:55:05 -07:00
Yury Semikhatsky 17077fd901
browser(firefox): introduce browser level screencastFinished event (#3625) 2020-08-25 14:50:40 -07:00
Yury Semikhatsky 9f3a1b5168
browser(firefox): send screencastStarted after attachedToTarget (#3554) 2020-08-20 14:03:05 -07:00
Yury Semikhatsky 5ba0254c99
browser(firefox): make sure response is sent when context is closed (#3553) 2020-08-20 13:26:04 -07:00
Yury Semikhatsky 854d755db5
browser(firefox): make context close wait for sessions to finish (#3550) 2020-08-20 11:04:57 -07:00
Yury Semikhatsky f13cebc66d
browser(firefox): remove redundant checks for PageTarget._browserContext (#3541) 2020-08-19 15:39:46 -07:00
Yury Semikhatsky df50660458
browser(firefox): make tab close listener sync again (#3533) 2020-08-19 12:52:43 -07:00
Yury Semikhatsky 73cd6ecef3
browser(firefox): add screencast control methods to context (#3530) 2020-08-19 12:43:53 -07:00
Yury Semikhatsky 56da4bb027
devops: make sure rust toolchain is installed (#3485)
Otherwise if required version is not installed the build fails with a cryptic message like
`error: toolchain '1.45.0-x86_64-unknown-linux-gnu' does not support components`
2020-08-19 09:11:28 -07:00
Andrey Lushnikov 4dde2882e7
browser(firefox): roll Firefox to August 14 beta (#3465) 2020-08-13 23:14:24 -07:00
Joel Einbinder a4eb86c3df
browser(firefox): update styles when changing color scheme (#3407)
`MediaFeatureValuesChanged` is what their devtools code uses to update the styles. I tried using their code directly, but it doesn't play nicely with navigations so I decided to stick with ours.
2020-08-13 12:16:00 -07:00
Andrey Lushnikov 915902c858
browser(firefox): roll Firefox to roughly July, 15 (#3411) 2020-08-12 10:09:20 -07:00
Dmitry Gozman da95b73b59
browser(firefox): emit iframe lifecycle when initial navigation fails (#3389) 2020-08-11 16:05:34 -07:00
Yury Semikhatsky 538daf3302
browser(firefox): exclude frame from screencast video (#3372) 2020-08-10 15:10:12 -07:00
Andrey Lushnikov a225447653
browser(firefox): introduce global proxy (#3335)
This will be used instead of messing up user preferences for proxy
setup.
2020-08-07 15:38:06 -07:00
Andrey Lushnikov ca3bd5e2ef
browser(firefox): roll Firefox to June, 24 (#3327)
Review URL: 83e6f0114e

References #3215
2020-08-06 10:32:50 -07:00
Yury Semikhatsky 9effb32650
browser(firefox): always create new process rather than reuse one (#3312) 2020-08-05 15:48:26 -07:00
Yury Semikhatsky 90819fa350
browser(firefox): always create image buffer in headless mode (#3299) 2020-08-04 17:58:57 -07:00
Yury Semikhatsky 7e28c26f6d
browser(firefox): do not complain about SnapshotListener being cleared on Destroy (#3298) 2020-08-04 17:38:46 -07:00
Andrey Lushnikov 25089760fd
devops: fix typo in rustup detection (#3282)
This should bring back docker build.
2020-08-04 00:02:14 -07:00
Dmitry Gozman d3a40be479
browser(firefox): reliably close the pipe (#3280) 2020-08-03 20:15:25 -07:00
Dmitry Gozman 402d1a6a67
browser(firefox): fix win compile 2 (#3277) 2020-08-03 15:26:12 -07:00
Dmitry Gozman e481f378f1
browser(firefox): fix win compile (#3275) 2020-08-03 14:42:16 -07:00
Dmitry Gozman 1148f0b906
browser(firefox): implement RemoteDebuggingPipe (#3273) 2020-08-03 13:27:09 -07:00
Andrey Lushnikov 9103ce0060
devops: fix firefox build (#3237) 2020-07-30 11:50:52 -07:00
Andrey Lushnikov 4961c2ddbb
devops(firefox): fixate rust and cbindgen version (#3223)
Firefox buildchain does not fixate `rust` and `cbindgen` versions,
so we want to fixate them on our end.

A table with matching rust version for every firefox version can
be found at [Rust Update Policy for Firefox](https://wiki.mozilla.org/Rust_Update_Policy_for_Firefox).

Additionally, there are checks in `mozbuild` for the minimum
rust version and minimum `cbindgen` version.
2020-07-30 09:59:39 -07:00
Joel Einbinder 3e023f6c3d
Revert "browser(firefox): fix color scheme not updating until reload" (#3198) 2020-07-28 13:46:37 -07:00
Dmitry Gozman 14c6881904
browser(firefox): properly rewrite intercepted request (#3188) 2020-07-28 11:32:44 -07:00
Yury Semikhatsky da25a5b501
browser(firefox): do not capture cursor in screencast (#3118) 2020-07-27 16:22:02 -07:00
Joel Einbinder 549a37b939
browser(firefox): fix color scheme not updating until reload (#3157) 2020-07-24 16:01:45 -07:00
Andrey Lushnikov 678d16454a
devops: normalize blob names on the CDN (#3136)
This establishes a single naming for all our blobs with browser
builds that we upload to CDN: `<browser-name>-<os-version>`

- `<browser-name>` is either `firefox` or `webkit`.
- `os-version` is the OS that was used to produce the build.

References #2745
2020-07-24 00:31:18 -07:00
Andrey Lushnikov 63689e36a6
devops: prepare buildbots to the introduction of Ubuntu 20.04 builder (#3116)
This patch:
- specializes "linux" scripts into "Ubuntu 18.04" scripts
- renames all future linux blobs on CDN:
    * `firefox-linux.zip => firefox-ubuntu-18.04.zip`
    * `minibrowser-gtk.zip => minibrowser-gtk-ubuntu-18.04.zip`
    * `minibrowser-wpe.zip => minibrowser-wpe-ubuntu-18.04.zip`
    * `minibrowser-gtk-wpe.zip => minibrowser-gtk-wpe-ubuntu-18.04.zip`
- updates downloader to deal with the new names

References #2745
2020-07-23 11:59:23 -07:00
Yury Semikhatsky 3d37e4586e
browser(firefox): pass actual frame duration to the codec (#3101)
#1158
2020-07-22 23:27:49 -07:00
Yury Semikhatsky babd0cbcea
browser(firefox): fix Windows build (#3065) 2020-07-21 10:02:14 -07:00
Pavel Feldman 7f29275aa2
browser(firefox): use base64 to deliver post data (#3063) 2020-07-21 09:55:46 -07:00
Yury Semikhatsky a5cb983768
browser(firefox): write video to .webm instead of .ivf (#3062) 2020-07-21 09:26:59 -07:00
Pavel Feldman 726f636b5c
browser(firefox): implement Page.bringToFront (#3051) 2020-07-20 16:47:27 -07:00
Yury Semikhatsky 6db8962125
browser(firefox): smooth resize in headless (#3043) 2020-07-20 14:24:52 -07:00
Yury Semikhatsky d1f937d651
browser(firefox): stop video recording if page closed (#3040) 2020-07-20 10:44:11 -07:00
Yury Semikhatsky 562e1e6460
browser(firefox): wait for file write to finish in stopVideoRecording (#3020) 2020-07-17 17:34:09 -07:00
Yury Semikhatsky 89ccf99b90
browser(firefox): screencast for Mac headful (#2985) 2020-07-16 15:34:33 -07:00
Yury Semikhatsky b7f7ba9230
browser(firefox): screencast support for Windows headful (#2965) 2020-07-15 16:58:58 -07:00
Yury Semikhatsky 0aff9bef11
browser(firefox): screencast for headless mac (#2956) 2020-07-15 09:37:08 -07:00
Yury Semikhatsky 89ca2db36c
browser(firefox): kick off new build after last commit (#2948) 2020-07-14 12:49:04 -07:00
Yury Semikhatsky de40329126
browser(firefox): add new files for headless screencast (#2947) 2020-07-14 12:25:41 -07:00
Yury Semikhatsky bf6f22d812
browser(firefox): basic screencast for headless (#2931) 2020-07-14 11:20:36 -07:00
Yury Semikhatsky baaa65492b
browser(firefox): resize window when changing viewport (#2861) 2020-07-07 14:04:07 -07:00
Yury Semikhatsky 9640dbf2a6
browser(firefox): exclude browser controls from screencast (#2855) 2020-07-07 09:40:09 -07:00
Yury Semikhatsky fc18f2f38a
browser(firefox): support screencast frame size and scale configuration (#2847) 2020-07-06 11:28:35 -07:00
Yury Semikhatsky 6aef045fd4
browser(firefox): create new window for each new page (#2823) 2020-07-02 14:46:57 -07:00
Andrey Lushnikov b1b6d3f531
devops: add signature to BUILD_NUMBER to force rebaseline (#2810)
Currently, it might happen that two different patches clash for the
same build number for the browsers. In this case, authors might
not even know that they need to rebaseline.

This patch starts adding a second line to `BUILD_NUMBER` files - the
signature and date of the `BUILD_NUMBER` change. These are guaranteed
to clash, so it should not be possible to land patches without
re-baselining them.
2020-07-02 12:09:27 -07:00
Yury Semikhatsky 605257b1a0
browser(firefox): Win build fix (#2822) 2020-07-02 11:20:25 -07:00
Yury Semikhatsky 024cb1ddc1
browser(firefox): basic screencast implementation for GTK (#2818) 2020-07-02 10:43:04 -07:00
Dmitry Gozman 991e8d42c6
browser(firefox): report errors from workers (#2797)
There is no exceptionFlag anymore, so we check the logLevel instead.
2020-07-01 14:49:14 -07:00
Dmitry Gozman c4e3ed85c0
browser(firefox): handle the case when inner window is restored from history (#2791)
When innerWindow is restored from the history state, we do not receive
content-document-global-created notification, but would still like to know
that window is now using a different inner window to reset the state.
This introduces a new notification juggler-dom-window-reused.

At the same time, goBack()/goForward() sometimes do not initiate
navigation synchronously, so our check for pendingNaivgationId() does
not work. Instead, we rely on canGoBack, and assume that client will
not need the navigationId synchronously.
2020-07-01 13:28:13 -07:00
Dmitry Gozman 687067831a
browser(firefox): do not fail when decoding large responses (#2671) 2020-06-22 16:01:16 -07:00
Dmitry Gozman 3d49af2537
browser(firefox): fix redirect interception (#2672)
We sometimes receive shouldIntercept for redirects,
and should not issue sendOnRequest for the second time.
2020-06-22 15:57:05 -07:00
Dmitry Gozman 2fa32f7e9c
browser(firefox): rewrite network instrumentation (#2638)
This change introduces NetworkRequest object that encapsulates
internal redirects as they happen in netwerk/ stack.

NetworkRequest now serves as both ResponseBodyListener and NotificationCallbacks.
2020-06-20 20:45:01 -07:00
Dmitry Gozman c544bffee3
browser(firefox): stop faking intercepting redirects (#2618)
We just cannot do it, so we report redirects as intercepted: false.
2020-06-18 10:40:34 -07:00
Andrey Lushnikov 082bb3c3c4
browser(firefox): rely on upstream permission separation per contexts (#2613) 2020-06-17 14:57:47 -07:00
Dmitry Gozman ab5f5c8b78
browser(firefox): another way to report elements without layout object (#2597) 2020-06-16 21:38:32 -07:00
Dmitry Gozman f2af30cf90
browser(firefox): properly instrument requests intercepted by service worker (#2594)
When httpChannel is intercepted by Service Worker:
- it gets an internal redirect to another channel with the same id;
- once serivce worker responds, the channel gets the data, but
  does not get any onResponse notifications.

So, we update our ResponseBodyListener (the nsIRequestObserver implementation)
to the new request and force onResponse from there once data is available or
request finishes.
2020-06-16 17:19:01 -07:00
Dmitry Gozman 9e7ea3ff7b
browser(firefox): Page.scrollIntoViewIfNeeded throws for invisible elements (#2584)
This is similar to other browsers that report distinct errors for
'not connected' vs 'not visible' cases.
2020-06-16 06:13:58 -07:00
Andrey Lushnikov 3bff136825
chore: bump firefox build number
Bots were updated; kicking all bots to build firefox.
2020-06-09 23:42:10 -07:00
Andrey Lushnikov 31da3d3720
browser(firefox): roll Firefox to TOT beta branch as of Jun 9, 2020 (#2520)
With this roll, we now require MacOS 10.11 SDK to build on Mac.
2020-06-09 22:48:10 -07:00
Dmitry Gozman ee3379a80f
browser(firefox): remove non-existing files from build (#2507) 2020-06-08 17:04:37 -07:00
Dmitry Gozman ac88f98999
browser(firefox): properly hide scrollbars in all frames (#2505) 2020-06-08 15:54:47 -07:00
Pavel Feldman 4ec215a88b
browser(firefox): allow setting download behavior of default context (#2502) 2020-06-08 13:49:33 -07:00
Andrey Lushnikov a26311a18a
browser(firefox): support proxy bypass (#2467) 2020-06-04 16:07:45 -07:00
Andrey Lushnikov 95ef71c43c
devops: support `--juggler` argument for `firefox/build.sh` script (#2472) 2020-06-04 14:26:51 -07:00
Andrey Lushnikov 3c9699dc7c
browser(firefox): support Browser.setProxy method in juggler (#2464)
This lets us support network proxies per browser context.
2020-06-04 08:52:43 -07:00
Andrey Lushnikov a3f34fb4b7
chore: export juggler as a standalone folder for browser build (#2432)
This leaves our firefox diff to gecko instrumentation changes only.

Drive-by: rename webkit "src" folder into "embedder".
2020-06-02 16:51:13 -07:00
Pavel Feldman fdd8df608f Revert "browser(firefox): allow passing user preferences at launch time (#2416)" 2020-05-29 22:25:25 -07:00
Pavel Feldman a247f7d2a5
browser(firefox): allow passing user preferences at launch time (#2416) 2020-05-29 16:15:36 -07:00
Andrey Lushnikov 0ed052f9e9
browser(firefox): expose internal request cause along with external one (#2383) 2020-05-28 09:23:14 -07:00
Dmitry Gozman 5d0b5625fa
browser(firefox): set initial page url to about:blank (#2300) 2020-05-19 10:30:36 -07:00
Dmitry Gozman 40ea0dd23b
browser(firefox): make default viewport work in default context (#2277) 2020-05-18 09:47:40 -07:00
Joel Einbinder 5a883a5877
browser(firefox): support internal drag and drop (#2243) 2020-05-14 18:30:02 -07:00
Dmitry Gozman fdc9ce8e07
browser(firefox): move context settings from creation to setters (#2193)
Drive-by: simplify settings plumbing, fix addBinding bug.
2020-05-12 07:32:25 -07:00
Pavel Feldman 59e9b5c017 browser(firefox): kick bots 2020-05-07 19:51:01 -07:00
Pavel Feldman e247506169
browser(firefox): roll ff to ToT 5/7/2020 (#2148) 2020-05-07 18:37:15 -07:00
Dmitry Gozman 98d32c5d67
browser(firefox): do not fail when decoding large responses (#2130)
String.fromCharCode cannot be used to convert very large arrays to strings. Use chunking in this case.
2020-05-07 11:04:58 -07:00
Dmitry Gozman 10cca041fb
browser(firefox): ensure rendering update before taking quads and scrolling (#2123) 2020-05-06 10:20:18 -07:00
Pavel Feldman 7e9a8dd402 browser(firefox): bump the version 2020-05-04 16:09:42 -07:00
Andrey Lushnikov de32d39988
Revert "devops: teach buildbots to run sanity check script (#2064)" (#2075)
This reverts commit 4c2c4855f7.
We'd rather add a mac 10.14 test bot.
2020-05-01 12:09:36 -07:00
Andrey Lushnikov 4c2c4855f7
devops: teach buildbots to run sanity check script (#2064)
This should make sure that build actually runs.
2020-04-30 17:42:52 -07:00
Yury Semikhatsky b6d1cbf402
browser(firefox): report new window downloads (#2014) 2020-04-28 14:20:07 -07:00
Yury Semikhatsky a43eac3809
browser(firefox): use separate web processes for different contexts (#1975) 2020-04-24 17:55:08 -07:00
Yury Semikhatsky 05f0797211
browser(firefox): support blob downloads (#1945) 2020-04-23 14:26:00 -07:00
Joel Einbinder 48cbee1c32
browser(firefox): disable the extension blocklist (#1909)
This saves a few hundred milliseconds.
2020-04-21 17:59:27 -07:00
Pavel Feldman 846af74b05
browser(firefox): do not use system colors for controls (#1838) 2020-04-16 18:13:53 -07:00
Yury Semikhatsky 77f1a70332
browser(firefox): send requestFailed on network error (#1816) 2020-04-16 11:11:15 -07:00
Pavel Feldman a46a32426e
browser(firefox): roll to ToT 4/15/2020 (#1815) 2020-04-15 17:31:59 -07:00
Yury Semikhatsky f3451d9148
browser(firefox): focus all top frames by default (#1811) 2020-04-15 15:22:47 -07:00
Yury Semikhatsky f05a8bdc0c
browser(firefox): override document.hasFocus() in main frames (#1802) 2020-04-15 14:41:18 -07:00
Dmitry Gozman cbad583f8a
browser(firefox): prepare to collect signals during actions (#1772) 2020-04-15 12:02:08 -07:00
Yury Semikhatsky d5e75d8bb7
browser(firefox): avoid clobbering scroll requests after scrollIntoViewIfNeeded (#1785)
5ef35728ff

If there is a pending visual update `AsyncPanZoomController::NotifyLayersUpdated` will override scroll offset set from layout with the visual one. See [`visualScrollOffsetUpdated`](http://ffsearch.azurewebsites.net/#path=%2Fhome%2Fjoe%2Ffirefox%2Fgfx%2Flayers%2Fapz%2Fsrc%2FAsyncPanZoomController.cpp&line=4530) and its comment in the method.
2020-04-14 16:24:36 -07:00
Yury Semikhatsky 126b54f767
browser(firefox): implement Page.scrollIntoViewIfNeeded (#1759) 2020-04-13 11:31:02 -07:00
Yury Semikhatsky f282400e1f
fix(firefox): disable captive portal service (#1737) 2020-04-09 19:03:36 -07:00
Yury Semikhatsky db34d436ec
browser(firefox): make juggler web socket work in -silent mode (#1726) 2020-04-09 10:57:24 -07:00
Yury Semikhatsky aff2ffacf8
browser(firefox): manage network activity per page (#1700)
a33663a362

Network events are now sent to corresponding page session. Previously they would be broadcast to all sessions.
2020-04-07 23:03:43 -07:00
Yury Semikhatsky becf97f30d
browser(firefox): report navigation request failure for downloads (#1688) 2020-04-07 00:38:27 -07:00
Yury Semikhatsky 7b2736b4c9
browser(firefox): support downloads (#1683) 2020-04-06 23:34:30 -07:00
Pavel Feldman 56fbfc2c9e
fix(firefox): do not make stray network requests (#1673) 2020-04-06 12:27:13 -07:00
Pavel Feldman 11ad172822
browser(firefox): allow setting colorScheme on the context level (#1672) 2020-04-06 12:26:42 -07:00
Dmitry Gozman fc73d54039
browser(firefox): instrument all browser windows early enough (#1645) 2020-04-03 15:31:26 -07:00
Yury Semikhatsky e76f8de474
browser(firefox): reland "instrument all windows, support silent mode" with Linux fix (#1634) 2020-04-01 21:06:44 -07:00
Yury Semikhatsky cf49a9ee7b
browser(firefox): make timezone override work on Win (#1628)
68e0c2c6c6
2020-04-01 14:10:30 -07:00
Yury Semikhatsky 1da2141acc
browser(firefox): delete Browser.setIgnoreHTTPSErrors (#1616) 2020-03-31 22:44:09 -07:00
Yury Semikhatsky 4ac98daa3c
browser(firefox): set ignoreHTTPSErrors per context (#1614)
28fc96628e
2020-03-31 17:32:50 -07:00
Yury Semikhatsky 2ce85f9016
Revert "browser(firefox): instrument all windows, support silent mode… (#1615) 2020-03-31 17:20:08 -07:00
Dmitry Gozman 314eb40a13
browser(firefox): instrument all windows, support silent mode (#1612)
Includes 4b00d5dd71 and `playwright.cfg` change.
2020-03-31 16:16:44 -07:00
Yury Semikhatsky d0073ef9e5
chore(firefox): update cheatsheet with logging instructions (#1609) 2020-03-31 13:23:35 -07:00
Yury Semikhatsky 43b91e6930
browser(firefox): implelemt timezone overrides (#1577) 2020-03-30 15:05:46 -07:00
Dmitry Gozman fdc36125be
browser(firefox): refactor targets/contexts/dispatching (#1590) 2020-03-30 13:57:12 -07:00
Dmitry Gozman 3535a829a3
browser(firefox): emulate device size (#1561) 2020-03-26 18:42:21 -07:00
Yury Semikhatsky 4826b3aca5
browser(firefox): make locale override apply to Number/Date formatting (#1560) 2020-03-26 16:33:07 -07:00
Dmitry Gozman 9d0f465ebe
browser(firefox): make call argument properties configurable (#1558) 2020-03-26 15:52:24 -07:00
Andrey Lushnikov b1c156f422
browser(firefox): fix user gesture in evaluation (#1550)
Review URL: 37851a6e27
2020-03-25 23:58:30 -07:00
Andrey Lushnikov 09cbf335bd
browser(firefox): wait for script to be evaluated in Worker (#1543)
Review URL: b70c1ff8c5
2020-03-25 17:39:50 -07:00
Yury Semikhatsky 2203e9c017
browser(firefox): bypass CSP when calling functions from debugger (#1541) 2020-03-25 16:28:33 -07:00
Pavel Feldman 6be3634356
browser(firefox): fix permissions check and notifications name (#1530) 2020-03-25 09:55:41 -07:00
Andrey Lushnikov aba670d719
browser(firefox): roll Firefox (#1534)
Review URL: 2fda0f5fc8
2020-03-24 23:25:17 -07:00
Pavel Feldman 8af21d146c
browser(firefox): fix authentication (#1524) 2020-03-24 21:17:55 -07:00
Yury Semikhatsky 1f48efe417
browser(firefox): ignore beforeunload handlers in Browser.close() (#1526) 2020-03-24 20:51:21 -07:00
Andrey Lushnikov c28c5a6455
browser(firefox): make Runtime a global object shared between sessions (#1458)
Review URL: 88261ea669

Key points:
- `Runtime` is now shared between protocol sessions
- `RuntimeAgent` does not exist any more and is merged into `PageAgent` for Page
- `RuntimeAgent` is re-implemented in a worker
2020-03-23 16:21:39 -07:00
Pavel Feldman 9826fd652e
browser(firefox): disable update, setting sync and other non-testing features (#1480) 2020-03-22 23:52:59 -07:00
Pavel Feldman 049fdf708c
browser(firefox): implement Browser.addBinding (#1477) 2020-03-22 21:10:00 -07:00
Pavel Feldman ac5852f302
browser(firefox): implement offline emulation (#1475) 2020-03-22 13:51:49 -07:00
Dmitry Gozman fb7b919bd4
browser(firefox): make interception, locale and geolocation work on browser context level (#1469) 2020-03-21 21:35:13 -07:00
Dmitry Gozman ac02a6b69c
browser(firefox): issue Page.ready at the right time (#1462)
This covers new pages and popups. Special handling is needed for window.open() with no url.
2020-03-21 17:56:15 -07:00
Andrey Lushnikov 96c9c81581
browser(firefox): fix bug in Juggler with clashing method names (#1456) 2020-03-20 19:35:58 -07:00
Andrey Lushnikov 21630d6de4
devops: strictly configure build folder for Firefox builds (#1454)
This strictly defines Firefox build folder as `obj-build-playwright`.

Currently, Firefox build folder encodes current Mac OS version including
patch versions, and thus we might end up with multiple different build
folders.
2020-03-20 19:24:38 -07:00
Pavel Feldman 840e69b85c
browser(firefox): emulate language (#1452)
1e29e6f231
2020-03-20 17:03:20 -07:00
Pavel Feldman fcdfa9ca24
browser(firefox): implement geolocation overrides (#1437) 2020-03-20 11:14:42 -07:00
Pavel Feldman edd2fee943
browser(firefox): grant permissions to all origins (#1405) 2020-03-16 20:57:19 -07:00
Andrey Lushnikov 3b85bf9c1f
browser(firefox): handle message manager `error` event without error (#1344)
Type TypeError that happens while loading document is reported in
the message manager but does not have the error event.

Saw this while reproducing #1307
2020-03-11 13:37:31 -07:00
Andrey Lushnikov 996f97a6c0
browser(firefox): roll Firefox to current beta (#1276)
Review URLs: 
- Fixing request interception; ad69da0f74
- Fixing eval with user input: 381c1df5c6
2020-03-06 18:25:27 -08:00
Dmitry Gozman 29f243056c
browser(firefox): merge Target domain into Browser, rework default context attach (#1259) 2020-03-06 14:58:35 -08:00
Andrey Lushnikov 8c9933e0f5
browser(firefox): move Juggler to top-level (#1254)
Review URL: 5ba06e6d7a

Drive-by: fix re-baseline over r1036
2020-03-05 17:20:07 -08:00
Dmitry Gozman 9d3bff1cf9
browser(firefox): implement Browser.setHTTPCredentials (#1251) 2020-03-05 16:37:44 -08:00
Andrey Lushnikov b0d037ecfe
browser(firefox): fix flaky permissions in Firefox (#1249)
Review URL: 9bd6e72005

Wait for permissions to propagate to all context pages.

References #720
2020-03-05 14:31:57 -08:00
Andrey Lushnikov 20c326378c
browser(firefox): follow-up with SimpleChannel unification (#1246)
Review URL: 141f30f450

Address all comments in 1bf5b61cbb
2020-03-05 13:16:43 -08:00
Pavel Feldman 2cd727f675
browser(firefox): signal link click (#1236) 2020-03-05 11:59:29 -08:00
Andrey Lushnikov 1bf5b61cbb
browser(firefox): move workers to use SimpleChannel (#1232)
Review URL: 4753d0121f

This patch:
- Moves Workers to FrameTree
- Introduces WorkerData in PageAgent that proxies runtime agent
  in worker to browser process
- Introduces WorkerHandler in PageHandler that handles communicates
  with runtime agent in worker and handles Juggler protocol

As part of this patch, SimpleChannel no longer manages lifetime of
any of its handlers.
2020-03-04 21:18:56 -08:00
Pavel Feldman a69c85f5f8
chore: added ff cheat sheet 2020-03-04 20:09:05 -08:00
Andrey Lushnikov 31278408db
browser(firefox): introduce SimpleChannel (#1209)
Review URL: 6364381adc

Refactor inter-process communication inside Firefox. The goal is
to have a single abstraction that works nicely for all our cross-process
communication needs (browser <-> content, content <-> workers, content
<-> file:// process, e.t.c.)

This is step 1 that eliminates content sessions everywhere.
Step 2 will move workers onto `SimpleChannel` as well.

This is a pre-requisite for #720: with a single `browser <-> content`
communication channel it will be easier to await permission change in tabs.

References #720
2020-03-04 14:33:49 -08:00
Dmitry Gozman ee9c7f1886
browser(firefox): support BrowserContext.evaluateOnNewDocument (#1135)
70ee31b2d4
2020-02-26 15:40:41 -08:00
Dmitry Gozman facf2c24fd
browser(firefox): support BrowserContext.setExtraHTTPHeaders (#1111) 2020-02-25 17:24:06 -08:00
Andrey Lushnikov e3b2f2b2db
browser(firefox): allow loading file URLs in web process (#1110) 2020-02-25 16:07:22 -08:00
Dmitry Gozman c2ab1e31f7
browser(firefox): misc fixes (#983)
- crash support;
- keydown supports text by committing composition;
- cross-page frame handling;
- security check for node adoption.
2020-02-13 10:46:46 -08:00
Dmitry Gozman d37b67a833
browser(firefox): do not wait for initial navigation in default context (#937)
0a70be2bc6
2020-02-11 16:25:35 -08:00
Andrey Lushnikov efa567d1b4 devops: fix firefox preferences build on mac 2020-02-11 16:22:31 -08:00
Andrey Lushnikov 3a32b14f32 devops: bundle firefox preferences alongside with build. 2020-02-11 14:42:04 -08:00
Dmitry Gozman 9ea8f49cd1
browser(firefox): attach to all pages in the browser context (#928)
- introduce BrowserContext abstraction;
- attach to all pages from owned browser contexts on creation;
- move page emulation to PageTarget/FrameTree, away from sessions and agents;
- remove explicit enable methods, replaced by Page.ready event;
- pass browser context options on creation.

c73fb4450e
2020-02-11 11:32:37 -08:00
Andrey Lushnikov ffc8f961da
browser(firefox): bump build number to r1025 2020-02-06 16:14:39 -08:00
Dmitry Gozman 9f0bbfff2c
browser(firefox): pause page on creation to handle emulation messages (#871)
153a95c23a
2020-02-06 16:07:52 -08:00
Andrey Lushnikov 8c6faab012
browser(firefox): roll firefox to upstream's beta (#876) 2020-02-06 15:21:06 -08:00
Pavel Feldman 6202ff12fd
browser(firefox): use guids for browser contexts, delete contexts on disconnect (#866) 2020-02-06 13:41:25 -08:00
Dmitry Gozman 0cc26c0fe6
browser(firefox): introduce Page.scrollIntoViewIfNeeded (#848)
1cfb6fd4cc
2020-02-05 14:57:30 -08:00
Joel Einbinder 44829d6fdf
browser(firefox): wait for pending accessibility updates (#755)
Should fix some flaky accessibility tests on Firefox for mac.
2020-01-29 18:56:11 -08:00
Andrey Lushnikov e64fd173bb devops: fix firefox building script on Mac 10.15.1 2020-01-29 11:55:29 -08:00
Pavel Feldman 7af1d12d25 browser(firefox): use unguessable web socket address (#722)
References #705
2020-01-28 14:03:19 -08:00
Pavel Feldman 19da86b4c9 browser(firefox): amend method & postData upon continue (#716) 2020-01-28 13:04:09 -08:00
Joel Einbinder 717159094c browser(firefox): wait for startup before closing the browser (#575) 2020-01-22 19:56:56 -08:00
Dmitry Gozman 1c96d42a4b browser(firefox): support request interception (#572)
10558a7ead
2020-01-22 17:21:25 -08:00
Andrey Lushnikov 5f656f55b1 browser(firefox): bump build number
This is a follow-up to 2520dedb41
2020-01-17 17:05:31 -08:00
Dmitry Gozman 2520dedb41
browser(firefox): support workers (#526)
a0549a0f64
2020-01-17 16:40:30 -08:00
Andrey Lushnikov e750da376e devops: fix firefox's archive.sh 2020-01-17 15:36:22 -08:00
Andrey Lushnikov 928d04dc26 chore: bump browser numbers to test new intrastructure 2020-01-17 14:28:17 -08:00
Dmitry Gozman b4686f1eb9 browser(firefox): assorted fixes for evaluation and remote objects (#510) 2020-01-16 14:11:33 -08:00
Dmitry Gozman 7785fd8191 browser(firefox): support isolated worlds (#500)
211f1f1bff
2020-01-16 11:52:22 -08:00
Andrey Lushnikov 2387727b42
browser(firefox): improve firefox protocol types (#490)
Review URL: d8f3090d4a
2020-01-14 14:04:03 -08:00
Andrey Lushnikov e57c9063b6 Revert "Revert "browser(firefox): roll Firefox to 2b50ccdc8ad0c83966285352a875415a858037c2 (#451)""
This reverts commit 350b256722.

Reason: buildbots were failing to compile new FF because their
cbindgen was outdated. This is now fixed on both Mac & Win.
2020-01-11 01:20:39 +01:00
Pavel Feldman 350b256722 Revert "browser(firefox): roll Firefox to 2b50ccdc8ad0c83966285352a875415a858037c2 (#451)"
This reverts commit d3e127a0c1.
2020-01-10 12:19:12 -08:00
Andrey Lushnikov d3e127a0c1 browser(firefox): roll Firefox to 2b50ccdc8ad0c83966285352a875415a858037c2 (#451)
Review URL: c3a577c46d

With this roll, Firefox has DocumentChannel enabled by default in Desktop Firefox:
- https://phabricator.services.mozilla.com/D57898

DocumentChannel, unlike nsIHttpChannel, doesn't have a `channelId` that we
can use to attribute navigation requests (see
https://github.com/microsoft/playwright/pull/249).

The feature has to be disabled for now in PlayWright with the
`browser.tabs.documentchannel` pref until we figure how to support it.
2020-01-10 10:50:03 -08:00
Joel Einbinder 85985155d0 feat(firefox): pass in a node to getFullAXTree (#388) 2020-01-06 16:32:29 -08:00
Pavel Feldman b64bd35c23
feat(evaluate): survive null JSON (#351) 2020-01-02 12:13:18 -08:00
Andrey Lushnikov 46483ed009 browser(firefox): support late attach (#282) 2019-12-17 15:07:25 -08:00
Andrey Lushnikov 39357c3f6c fix(devops): use full SHAs in diffs
Different GIT setups export different length of shortsha.
With this, always export full SHA.
2019-12-16 16:17:56 -08:00
Dmitry Gozman 927669b890 feat(firefox): provide navigationId for navigation requests (#249) 2019-12-14 08:21:23 -08:00
Pavel Feldman 4fd241e4ae fix(ff): follow up to the roll, fix permissions 2019-12-13 20:56:49 -08:00
Pavel Feldman 08f0823873 browser(firefox): roll FF to beta ToT (#245) 2019-12-13 16:37:45 -08:00
Dmitry Gozman 4861152766 browser(firefox): instrument document.open load event (#218) 2019-12-11 17:53:46 -08:00
Andrey Lushnikov 9e381a9d50 devops(firefox): move packaging to archive.sh 2019-12-11 16:56:49 -08:00
Andrey Lushnikov 20be65b1c9 devops(scripts): export diffs instead of patches
This changes `export.sh` to export diffs instead of patches.
`export.sh` now does not touch working directory, thus not
triggering clean builds and not intefering with an on-going
build.
2019-12-10 15:41:58 -08:00
Andrey Lushnikov cb92cd0d5c devops: teach {firefox,webkit}/build.sh to build current branch
The check for the proper branch has moved to
`checkout_build_archive_upload.sh` script.
2019-12-09 14:38:23 -08:00
Pavel Feldman d7b727df1c browser(firefox): implement new set/clearCookies contract (#83) 2019-11-26 09:00:10 -08:00
Pavel Feldman a1d71d0de7 feat(csp): support bypass csp on ff (#74) 2019-11-25 15:26:03 -08:00
Pavel Feldman 2e581f1625 feat(emulate): implement emulateMedia color scheme in FF (#71) 2019-11-25 15:00:04 -08:00
Pavel Feldman eaa5e93b8b feat(filechooser): supported file chooser in FF (#70) 2019-11-25 13:56:39 -08:00
Andrey Lushnikov a4d6175760 devops: support firefox-win64 builds 2019-11-22 20:49:40 -08:00
Andrey Lushnikov 81f219cf2b devops: bump BUILD_NUMBERs to 1000
This way build numbers will be easier to distinguish in logs
and documentation.
2019-11-22 20:36:23 -08:00
Andrey Lushnikov 254a464828 devops: fix clean script to keep going if there's no OBJ- folder 2019-11-22 19:57:25 -08:00
Andrey Lushnikov b416dd7507 browser(firefox): roll Firefox to 6f8366f5763c2f8bcf2ed83dee659b963e0f75a2
Previous firefox beta was broken on Mac - this isn't.
2019-11-22 19:19:18 -08:00
Andrey Lushnikov 1a98a4d5e8 devops: build bots should do clean builds 2019-11-22 19:07:39 -08:00
Andrey Lushnikov 26fef7bc46 devops: support firefox-win32 builds 2019-11-22 15:45:36 -08:00
Andrey Lushnikov 98e05b66fd devops: revamp scripts 2019-11-21 17:29:40 -08:00
Andrey Lushnikov 4f3834dd69 devops: revamp archive.sh scripts to accept a target .zip name
This is required so that we can setup a locking directory for cron
jobs later on.
2019-11-20 18:01:51 -08:00
Andrey Lushnikov af0ba0e713 devops: move check_cdn to tools 2019-11-20 18:01:51 -08:00
Andrey Lushnikov f9d2f13540 devops: fix firefox archiving script 2019-11-20 18:01:51 -08:00
Andrey Lushnikov bfcd92da7e devops: fix build scripts 2019-11-19 16:58:09 -08:00
Andrey Lushnikov 8a077da565 devops: simplified bash traps 2019-11-19 16:33:11 -08:00
Pavel Feldman 9ba375c063 Initial commit 2019-11-19 10:58:15 -08:00