Commit Graph

864 Commits

Author SHA1 Message Date
Andrey Lushnikov
51865fe584
chore: bump WebKit build number to test self-hosted runners (#4525) 2020-11-25 08:38:23 -08:00
Joel Einbinder
d06afadb8b
browser(firefox): send dragend after drop and survive navigations (#4506) 2020-11-25 03:47:34 -08:00
Andrey Lushnikov
17bec4f6f8
browser(firefox): rebaseline atop of Nov, 23 2020 (#4516) 2020-11-23 16:21:07 -08:00
Dmitry Gozman
14a96ca21f
browser(firefox): ensure detachedFromTarget is always sent (#4505)
browser(firefox): ensure detachedFromTarget is always sent

LinkedBrowser can throw when removing listeners in PageTarget.dispose,
and that prevents BrowserHandler from sending Browser.detachedFromTarget.

Using a try-catch seems good enough.
2020-11-20 10:48:06 -08:00
Pavel Feldman
95aab3b29d
browser(chromium): prepare r828656 (#4499) 2020-11-19 12:44:05 -08:00
Andrey Lushnikov
6bc45d9247
browser(firefox): browser.version() to return full version (#4491)
Currently, browser.version() returns `83.0`, whereas launching firefox
with `--version` flag returns `83.0b3`. This patch alings protocol's
`Browser.version()` with flag output.
2020-11-19 08:24:17 -08:00
Dmitry Gozman
1169c5ab50
browser(webkit): close on pipe disconnect (#4484) 2020-11-18 19:34:33 -08:00
Yury Semikhatsky
a11be3e9ef
browser(webkit): roll to 11-18 (#4481) 2020-11-18 13:03:42 -08:00
Andrey Lushnikov
cb1f2a38f3
browser(firefox): roll Firefox to Nov 17,2020 (#4477)
Changes accomodate touchEventsOverride that has moved to the
browser side.
2020-11-18 08:19:09 -08:00
Andrey Lushnikov
8860d6d11d
chore: try building webkit on github selfhosted runner (#4476) 2020-11-17 21:03:51 -08:00
Pavel Feldman
fc0388813e
browser(chromium): pick 827102 for roll (#4460) 2020-11-16 16:43:37 -08:00
Pavel Feldman
79c592ed7d
browser(webkit): do not create unique page groups for pages (#4456) 2020-11-16 14:31:50 -08:00
Yury Semikhatsky
5509e98ba5
browser(webkit): fix mac build after latest roll (#4455) 2020-11-16 14:25:58 -08:00
Yury Semikhatsky
39fcf1bc54
browser(firefox): do not leak reponses (#4453) 2020-11-16 13:16:20 -08:00
Yury Semikhatsky
bd76e9ddbf
browser(webkit): roll to 11-16 (#4451) 2020-11-16 13:02:55 -08:00
Dmitry Gozman
2f73a45e63
browser(chromium): roll to 827767 (#4452) 2020-11-16 12:43:56 -08:00
Joel Einbinder
e91140e88c
browser(firefox): force a layout before dispatching a tap (#4428) 2020-11-16 11:07:06 -08:00
Yury Semikhatsky
0167f8c182
browser(firefox): allow to override request url (#4436) 2020-11-13 14:56:27 -08:00
Dmitry Gozman
2e65f78874
browser(firefox): close browser when pipe disconnects (#4437) 2020-11-13 14:51:40 -08:00
Dmitry Gozman
9e1b26f9f9
browser(webkit): close on pipe disconnect (#4421) 2020-11-13 10:02:37 -08:00
Yury Semikhatsky
8f7286175e
browser(webkit): roll to 11-12 (#4417) 2020-11-12 11:10:42 -08:00
Yury Semikhatsky
8488c296f9
browser(firefox): allow to override content-type along with post data (#4416) 2020-11-12 10:41:49 -08:00
Pavel Feldman
d3135871e5
browser(chromium): fetch r825625 (#4406) 2020-11-11 12:45:01 -08:00
Yury Semikhatsky
508be0d78f
browser(webkit): fix big sur crashes after latest roll (#4391) 2020-11-09 22:29:52 -08:00
Yury Semikhatsky
bd75fb1c55
browser(webkit): roll to 11-09 (#4384) 2020-11-09 11:30:12 -08:00
Dmitry Gozman
ae738c1fac
browser(firefox): ignore WebProgress events coming from workers (#4380)
Somehow, we get WebProgress state changes when worker is loaded
with a blob url. This messes up frame navigation detection.

Luckily, it's easy to filter out non-document state changes.
2020-11-09 09:29:34 -08:00
Dmitry Gozman
06c8881dad
browser(firefox): fix videoSessionId (#4374)
PRIx8 produced "%hx%hx%hx%hx%hx%hx%hx%hx%hx%hx%hx%hx%hx%hx%hx%hx",
so video session ids were clashing between pages, and popup videos
did not work.
2020-11-06 15:08:03 -08:00
Joel Einbinder
d4fb159154
browser(webkit): fix webcontent startup crash on macos 11 (#4370)
reverts #4357 and provides the real fix. Apple accidentally landed some code that will crash the web process if it is not signed by them. I'm sure they will figure it out once they get test bots for macos 11. But until then, we can just revert.

https://bugs.webkit.org/show_bug.cgi?id=218342
2020-11-06 11:11:19 -08:00
Andrey Lushnikov
c522a0dfba
browser(firefox): force always active docshell (#4363)
This forces active docshell for all content processes.

References #4208
2020-11-05 17:53:22 -08:00
Yury Semikhatsky
49e4d9a347
browser(webkit): force rebuild with new redistributable dlls (#4364) 2020-11-05 17:51:28 -08:00
Yury Semikhatsky
040f9b04ca
browser(webkit): copy MS VC++ redistributable libs from VS installation (#4360) 2020-11-05 16:51:42 -08:00
Yury Semikhatsky
aafcf932bc
browser(firefox): bundle VS C++ redistributable dlls (#4359) 2020-11-05 13:56:15 -08:00
Andrey Lushnikov
bc20bfd4cc
browser(webkit): disable cache compiled sandbox (#4357)
This seems to be broken on BigSur.
2020-11-05 09:25:36 -08:00
Andrey Lushnikov
b94a7c0e60
devops: speedup initial browser checkout (#4352)
Instead of checking out the whole repository, we now do a shallow
clone.

We then gradually "unshallow" the clone, looking for the `BASE_REVISION`.

This should fix experimental mac-11 builder.
2020-11-05 02:04:06 -08:00
Andrey Lushnikov
4d8ef423ba
devops: add instructions to build mac on BigSur (#4350) 2020-11-05 00:49:05 -08:00
Yury Semikhatsky
283bc2c7d0
devops: ensure that embedder directory does not exist (#4340)
Otherwise `cp -r from to` will copy content of `from` to a subdirectory in `to`
2020-11-04 11:20:47 -08:00
Andrey Lushnikov
5dc632b82e
chore: mirror Chromium 823944 to our cdn (#4339)
References #4021
2020-11-04 09:44:30 -08:00
Yury Semikhatsky
890add98fe
browser(webkit): do not hang on close when there is a dialog (#4332) 2020-11-03 18:58:57 -08:00
Yury Semikhatsky
031f0bf539
browser(webkit): fix mac build failure caused by touch events (#4330) 2020-11-03 16:21:42 -08:00
Yury Semikhatsky
c6b4263e54
browser(webkit): fix timezone overrides after last roll (#4329) 2020-11-03 14:54:28 -08:00
Andrey Lushnikov
799604c085
browser(firefox): roll Firefox to beta @ Nov, 3 (#4327) 2020-11-03 14:51:37 -08:00
Pavel Feldman
eae3d93a20
browser(webkit): fix proxy ignore pattern set on context level (#4328) 2020-11-03 14:28:04 -08:00
Yury Semikhatsky
0a9fdc4751
browser(webkit): roll to 11-03 (#4325) 2020-11-03 13:17:03 -08:00
Andrey Lushnikov
e3b12b0a0d
browser(firefox): fix closing browser contexts with beforeunload (#4314)
References #4021
2020-11-02 17:29:54 -08:00
Andrey Lushnikov
2b495c9750
browser(firefox): fix SimpleChannel to await initialization (#4311)
As Joel noticed recently, MessageManager in firefox doesn't guarantee
message delivery if the opposite end hasn't been initialized yet. In
this case, message will be silently dropped on the ground.

To fix this, we establish a handshake in SimpleChannel to make sure that
both ends are initialized, end buffer outgoing messages until this
happens.

Drive-by: serialize dialog events to only deliver *after* the
`Page.ready` protocol event. Otherwise, we deliver dialog events to the
unreported page.
2020-11-02 16:21:34 -08:00
Dmitry Gozman
1255289098
browser(chromium): roll to 823078 (#4307) 2020-11-02 13:00:38 -08:00
Yury Semikhatsky
7ef1533cae
browser(webkit): one more mac build fix after last roll (#4298) 2020-10-30 16:15:53 -07:00
Yury Semikhatsky
3577e637c7
browser(webkit): mac build fix after last roll (#4296) 2020-10-30 14:47:53 -07:00
Yury Semikhatsky
5e50fe3d40
browser(webkit): roll to 10-30 (#4294) 2020-10-30 12:42:33 -07:00
Andrey Lushnikov
18c3efe79e
browser(firefox): instrument websockets (#4287) 2020-10-29 16:33:50 -07:00
Andrey Lushnikov
c5d3490b34
browser(firefox): roll firefox to beta Oct, 28 (#4274) 2020-10-28 14:47:14 -07:00
Yury Semikhatsky
41d514dfde
browser(webkit): disable gamepad on GTK (#4264) 2020-10-27 16:43:26 -07:00
Pavel Feldman
00d6313f6d
browser(webkit): report raw request headers from didReceiveResponse (#4250) 2020-10-26 22:05:43 -07:00
Andrey Lushnikov
b08d3dc9ff
devops: always ensure linux deps when building webkit (#4249) 2020-10-26 21:53:27 -07:00
Yury Semikhatsky
39637a4ab0
browser(webkit): build fix (#4247) 2020-10-26 18:52:25 -07:00
Yury Semikhatsky
1feb041086
browser(webkit): fix mac build after last roll (#4245) 2020-10-26 17:40:31 -07:00
Pavel Feldman
c1a64eee02
browser(webkit): serialize set-cookie \n-separated (#4243) 2020-10-26 16:58:40 -07:00
Yury Semikhatsky
4b2a29e23d
browser(webkit): roll to 10-26 (#4241) 2020-10-26 13:00:15 -07:00
Pavel Feldman
437fe17825
browser(firefox): expose resource timing info (#4205) 2020-10-21 13:55:30 -07:00
Yury Semikhatsky
920ea85b99
fix(winldd): make linker set checksum to make antiviruses happy (#4197) 2020-10-20 13:59:44 -07:00
Yury Semikhatsky
092c9905e6
browser(firefox): fix screencast timescale precision (#4196) 2020-10-20 13:39:56 -07:00
Yury Semikhatsky
54e05ac83e
browser(webkit): fix screencast timescale precision (#4195) 2020-10-20 13:09:24 -07:00
Joel Einbinder
bf491f12cf
browser(webkit): fix pointer media query on windows (#4176) 2020-10-19 10:08:02 -07:00
Yury Semikhatsky
92cde6cd06
browser(webkit): roll to 10-19 (#4177)
This should fix current build failure on Mac.

5e1333ea77 is necessary to fix the following compilation error:

CMake Error at Source/cmake/WebKitFeatures.cmake:21 (message):
  ENABLE_LEGACY_CSS_VENDOR_PREFIXES is not a valid WebKit option
Call Stack (most recent call first):
  Source/cmake/WebKitFeatures.cmake:40 (_ENSURE_IS_WEBKIT_OPTION)
  Source/cmake/OptionsWPE.cmake:89 (WEBKIT_OPTION_DEFAULT_PORT_VALUE)
  Source/cmake/WebKitCommon.cmake:58 (include)
  CMakeLists.txt:173 (include)
2020-10-19 09:17:24 -07:00
Joel Einbinder
347dd2403b
browser(webkit): fix pointer media query on mac (#4155) 2020-10-19 02:34:47 -07:00
Joel Einbinder
4f7d65fe9c
browser(firefox): report pageerrors without stack properties (#4166) 2020-10-19 02:23:53 -07:00
Pavel Feldman
26442c563c
browser(webkit): fix the datastore leak (#4163) 2020-10-16 08:14:59 -07:00
Joel Einbinder
305d209e82
browser(firefox): always send focus events (#4150) 2020-10-16 01:28:13 -07:00
Yury Semikhatsky
97cb51f3e9
browser(webkit): fix windows compilation after last roll (#4162) 2020-10-15 14:27:02 -07:00
Yury Semikhatsky
6fb6929e36
browser(webkit): roll to 10-15 (#4161) 2020-10-15 13:48:58 -07:00
Andrey Lushnikov
8f8bebb632
browser(firefox): roll Firefox to tip-of-tree Oct, 12 (#4158) 2020-10-15 09:51:21 -07:00
Joel Einbinder
a61d07a8e9
browser(webkit): report correct pointer type to css (#3936) 2020-10-15 03:28:45 -07:00
Yury Semikhatsky
3c32c1683a
browser(firefox): use 16-byte long uid instead of ordinal as screencast id (#4147) 2020-10-14 16:14:24 -07:00
Joel Einbinder
a169cb63f8
browser(webkit): fix mac compilation errors (#4139) 2020-10-14 10:35:45 -07:00
Joel Einbinder
8c6a2e197a
browser(webkit): Input.dispatchTapEvent (#4102) 2020-10-14 05:53:07 -07:00
Joel Einbinder
a4474f6752
browser(firefox): Page.dispatchTapEvent (#4101) 2020-10-13 12:24:11 -07:00
Yury Semikhatsky
71c444c59f
browser(webkit): revert changes to WebAutomationSession.h (#4128) 2020-10-13 11:43:42 -07:00
Andrey Lushnikov
58285f6155
browser(firefox): await browser initialization when closing browser (#4121)
We try to avoid closing firefox too early, fearing that this
might terminate clean shutdown sequence.

Usually we assume that `Browser.enable` is called before `Browser.close`
- however, this is not the case in certain tests. So we have to
ensure browser initialization in `Browser.close` as well.

In my local tests, this fixes the Firefox Pipe problem: it looks like
we were closing browser too quickly.
2020-10-12 22:34:04 -07:00
Yury Semikhatsky
b2f4fa914a
browser(webkit): pick process pool for service worker from correct context (#4116) 2020-10-12 15:39:49 -07:00
Yury Semikhatsky
5648eac063
browser(webkit): fix mac build after last roll (#4108) 2020-10-09 16:11:50 -07:00
Yury Semikhatsky
db744e28ee
browser(webkit): roll to 10/08 (#4106) 2020-10-09 14:43:36 -07:00
Yury Semikhatsky
b85ba62291
browser(webkit): actually fix mac compilation (#4105) 2020-10-09 13:06:25 -07:00
Yury Semikhatsky
d6a198a9bb
browser(webkit): speculative build fix for Mac (#4104) 2020-10-09 11:13:02 -07:00
Yury Semikhatsky
8252eb7413
browser(webkit): roll to 09-27 (#4103) 2020-10-09 09:32:36 -07:00
Joel Einbinder
e2f77455dd
browser(chromium): roll to 815036 (#4098) 2020-10-08 22:03:39 -07:00
Darío Kondratiuk
ff295d10e6
fix(windows): fix dependencies check on windows (#4076) 2020-10-08 09:45:53 -07:00
Andrey Lushnikov
6a7d24469a
devops: fix firefox build (#4088)
New firefox build requires a pre-created python virtual environment.
We should detect it and create if necessary.

References #3995
2020-10-07 14:34:58 -07:00
Andrey Lushnikov
1ccce09a02
browser(firefox): roll Firefox to beta Oct 7, 2020 (#4087)
References #3995
2020-10-07 14:12:19 -07:00
Andrey Lushnikov
6beef551d9
browser(firefox): wait for search and addon manager initialization (#4081)
It looks like terminating browser when search service or addon manager is
not fully initialized results in a broken shutdown sequence. As of
today, this results in multiple errors in the browser STDERR. In future,
this might also result in browser stalling instead of terminating.

This starts awaiting search and addon manager termination.

References #3995
2020-10-07 10:24:16 -07:00
Andrey Lushnikov
3b4232864d
browser(firefox): a different way to emit 'load' event (#4080)
Using WebProgressListener events works in all cases. Currently
used `pageshow` event will stop being emitted in future when loading
was stopped with `window.stop()` api.

References #3995
2020-10-07 09:22:56 -07:00
Andrey Lushnikov
e6869edf98
browser(firefox): fix typo in dispatcher teardown (#4069) 2020-10-06 12:06:50 -07:00
Andrey Lushnikov
4ab66a4fe5
browser(firefox): follow-up with assorted simplifications (#4066)
This patch:
- moves `SimpleChannel` to synchronously dispatch buffered commands
  instead of a `await Promise.resolve()` hack
- moves dialog & screencast handling from `PageHandler` to
  `TargetManager`. This leaves `PageHandler` to be concerned solely about
  protocol.
- removes `attach` and `detach` methods for worker channels: since
  channels are buffering messages until the namespace registers, there's
  no chance to loose any events.
- slightly simplifies `PageNetwork` class: it's lifetime is now
  identical to the lifetime of the associated `PageTarget`, so a lot can
  be simplified later on.

References #3995
2020-10-06 01:53:25 -07:00
Andrey Lushnikov
c8a64b88e1
browser(firefox): enable document channel (#4065)
In the current tip-of-tree Firefox, document channel is enabled by
default, so we have to enable it in order to roll further.

This patch:
1. Removes content disposition sniffing from content process since it
   crashes renderer with document channel.
2. Merges all page-related handlers in a single `PageHandler` and
   serializes network events wrt the `Page.frameAttached` event.

The serialization mentioned in (2) is necessary: frame attachment is
reported from the content process, and network events are reported from
the browsers process. This is an inherent race, that becomes exposed by
the document channel.

On a side note, (2) makes it possible to synchronously report all
buffered events in `SimpleChannel` (cc offline discussion with @dgozman
that highlighted an unsighty approach that we currently employ there: reporting
events in a subsequent microtask.)

References #3995
2020-10-06 00:15:24 -07:00
Pavel Feldman
857abcfc10
browser(firefox): make pipe work on Windows (#4058) 2020-10-05 10:58:56 -07:00
Dmitry Gozman
a7beaf657c
browser(chromium): roll to 813607 (#4052) 2020-10-05 04:23:35 -07:00
Dmitry Gozman
133de10a47
browser(firefox): start screencast in existing pages upon setScreencastOptions (#4045)
This makes it work in persistent context.

To achieve this, we have to move screencast logic into PageTarget and
make PageHandler listen to an event.
2020-10-02 17:16:49 -07:00
Andrey Lushnikov
2c11b10598
browser(firefox): remove multisession logic (#4039)
This patch:
1. Changes `SimpleChannel` to buffer messages to the namespace that
   hasn't been registered yet. This allows us to create `SimpleChannel`
   per target on the browser side right away.
2. Removes multisession support. Now there's only one `PageAgent` in the
   content process, which talks to a single `PageHandler` on the browser
   side. Both ends can be created as-soon-as-needed; thanks to
   `SimpleChannel` bufferring, no messages will be lost and all messages
   will be delivered in proper order. (This is currently the reason why
   build 1178 flakes on windows).
3. Straightens up the target reporting. Targets are reported as soon
   as they appear on the browser side.

**NOTE:** this doesn't yet remove sessions from protocol.

References #3995
2020-10-02 04:13:42 -07:00
Andrey Lushnikov
b74a6b78ef
browser(firefox): do not double-attach session to the same target (#4027)
We currently might double-attach to the target in `BrowserHandler` since we iterate over all targets, and then subscribe to the additional event when target is getting initialized.

This patch fixes this race condition and should unblock the roll to r1177.

References #3995
2020-09-30 23:50:02 -07:00
Andrey Lushnikov
974358442d
browser(firefox): move user agent emulation to browser side (#4016)
References #3995
2020-09-30 08:02:22 -07:00
Andrey Lushnikov
e28083974d
browser(firefox): simplify PageTarget lifecycle (#4014)
As of today, we create `PageTarget` instances whenever we get a
sync IPC from the content process. This, however, breaks an invariant
that `browserContext.pages` always has all pages (and *browsing contexts* - not to be confused with *browser contexts*), associated with browser context. This invariant will be especially important when we move
user agent emulation to browser-side.

This patch makes `PageTarget` lifecycle symmetrical:
- `PageTarget` instance is created when tab is opened
- `PageTarget` is destroyed when tab is crashed or closed

This should also fix a bunch of race conditions with persistent mode, since sometimes we arrive to the window after its
initialization.

Drive-by: straighten viewport management and put a nice descriptive comment.
2020-09-30 02:10:34 -07:00