Commit Graph

59 Commits

Author SHA1 Message Date
Max Schmitt cd0b053165
chore: update browser_patches to b4f706670 (#35634) 2025-04-16 18:12:33 +02:00
Dmitry Gozman 011034050b
chore: update browser patches to 09195c9 (#32877) 2024-09-30 05:14:45 -07:00
Simon Knott 895d017fb8
chore: update browser patches as of July, 25th, 2024 (#32468) 2024-09-05 13:44:58 +02:00
Dmitry Gozman a4deced132
chore: update browser_patches to May 1st (#31325) 2024-06-14 18:38:09 -07:00
Dmitry Gozman 53755968fb
chore: update browser patches to 475e15 (#30134) 2024-03-26 15:01:07 -07:00
Yury Semikhatsky 92b1b16041
chore: update browser patches to Jan 9 2024 (#29623)
Commit 337e0dbf2cb068a5a519b09fee1155509fb2dc1f
2024-02-22 13:17:33 -08:00
Max Schmitt cd922d137c
chore: update browser patches to 03ca0a7 (#28974) 2024-01-13 00:19:49 +01:00
Dmitry Gozman 03031a6d2c
chore: update browser patches to d8f2e2984 (#28139) 2023-11-14 10:18:18 -08:00
Andrey Lushnikov aa1862cd2b
chore: update browser patches as of Aug, 1 2023 (#27005)
Internal commit reference:

2fa26b1d22
2023-09-11 18:16:33 -07:00
Andrey Lushnikov 67962c58b4
chore: update browser patches as of July, 1 2023 (#26409)
Internal commit reference:
158dd8ada7
2023-08-10 14:41:33 -07:00
Andrey Lushnikov 0c4bed191f
chore: update browser patches as of Mar 14, 2023 (#22603)
Internal commit reference:
e994525a6d
2023-04-24 14:28:08 -07:00
Andrey Lushnikov a6468b73b2
chore: update browser patches as of Feb 7, 2023 (#21824)
Internal SHA: 50b497cbfbdb567ecfaeb80f30942689b08db7c4
2023-03-20 18:23:12 -07:00
Andrey Lushnikov 6c5317bd31
chore: update browser patches as of Dec 13, 2022 (#20297) 2023-01-23 11:29:48 -08:00
Yury Semikhatsky a8249163d3
browser(firefox): preserve content-type from original request if it i… (#16739) 2022-08-23 08:51:09 -07:00
Yury Semikhatsky 135971c406
browser(firefox): recompute content-length if body is overridden (#16173) 2022-08-02 13:51:05 -07:00
Andrey Lushnikov 8a8bdec87d
browser(firefox): roll Firefox Stable to 102 (#15321)
This roll:
- NetworkObserver now uses the `remote's` ChannelEventSink layer to
  subscribe to redirects.
- Wheel events now must be dispatched from browser process.
- There's a new API for console messages
- The old methods to wait for search service and addon manager no longer
  work; speculatively remove them since neither `remote` nor
  `marionette` have anything like this.

Native manual merge: 9e6fcfd868
2022-07-05 08:20:01 -07:00
Dmitry Gozman 94a0d669b6
browser(firefox): expose Response.fromServiceWorker (#14606)
This property is "true" when network response was fulfilled
by the service worker.
2022-06-02 17:16:19 -07:00
Yury Semikhatsky 463b4b1c0d
browser(firefox): do not send post data > 10Mb to the client (#12969) 2022-03-23 08:58:29 -07:00
Yury Semikhatsky 96b0a4b993
browser(firefox): fast post body conversion to base64 (#12898) 2022-03-18 18:30:28 -07:00
Ross Wollman 8f0a5019c0
browser(firefox): fixes empty string postData override (#11529)
Relates #11470
Blocks #11421
2022-01-21 01:19:29 +01:00
Andrey Lushnikov 5d8aa8d5cf
browser(firefox): fix extra HTTP headers in request interception (#11265) 2022-01-08 08:26:11 -08:00
Andrey Lushnikov fba29aa319
browser(firefox): fix HTTP->HTTPS fallback for refused connection (#11123)
In this case, there's no protocol version that we can extract for
nsIHttpChannel.

The code that does the redirect is here: 7f3d9fce41/docshell/base/nsDocShell.cpp (L6079-L6095)

To trigger this codepath, we'd need to run test inside a special
docker container that has https server running on the 443 port. We lack
infrastructure for this kind of tests (but it'll be cool to have it).

References #11118
2021-12-28 12:23:53 -08:00
Andrey Lushnikov 2d386ee8e7
browser(firefox): fix proxy auth redirect + resource redirect handling (#10854)
This was breaking a vital invariant in our firefox network code - see
comments.

References #10095
2021-12-10 13:11:58 -08:00
Yury Semikhatsky 091c0065ad
browser(firefox): delete response interception code (#10053) 2021-11-04 12:29:36 -07:00
Andrey Lushnikov 18e690e234
browser(firefox): fix firefox crashes (#9563)
Fixes #9418
2021-10-15 19:37:00 -07:00
Max Schmitt 4e95448887
browser(firefox): expose encodedBodySize in requestFinished (#8835) 2021-09-10 08:41:34 -07:00
Max Schmitt d9eb37b0b9
browser(firefox): resolve socks DNS on server side (#8723) 2021-09-06 16:34:28 +02:00
Max Schmitt 1762f4c547
browser(firefox): expose protocolVersion in ResponseFinished (#8687) 2021-09-03 11:39:38 -07:00
Yury Semikhatsky 90385a7941
browser(firefox): failure response interception (#8194) 2021-08-16 09:36:28 -07:00
Yury Semikhatsky f434c41523
browser(firefox): fulfill intercepted response with empty body (#8152) 2021-08-11 14:39:49 -07:00
Yury Semikhatsky f9efc7f8a4
browser(firefox): response interception after redirects (#8107) 2021-08-10 14:43:21 -07:00
Yury Semikhatsky efb21b9e9f
browser(firefox): support response interception (#7509) 2021-07-09 05:41:53 -07:00
Dmitry Gozman fca965cb98
browser(firefox): properly handle HSTS redirects (#7391)
When Firefox decides to perform an http->https redirect based on HSTS
information, it issues an "internal" redirect and cancels the http request.

Since there is no response for the http request, we forge 307 redirect
in this case, following Chromium lead.

The relevant code is in nsHttpChannel::StartRedirectChannelToHttps.
2021-06-30 12:59:27 -07:00
Max Schmitt 8fa93ae6be
browser(firefox): add transferSize to Network.requestFinished (#7355) 2021-06-28 21:22:55 +02:00
Andrey Lushnikov d02472a9e0
browser(firefox): fix uploads of large files in Firefox (#6547)
- to read post data of requests, we have to read stream
- to restore the stream later on, we have to rewind it back
- however, if the stream is large enough, it cannot be rewound back

This patch starts cloning post data streams if possible to avoid
back-rewinding them later on.

References #4704
2021-05-12 16:27:53 -07:00
Pavel Feldman 8906ba332c
chore: spell overridden (#5605) 2021-02-24 15:11:34 -08:00
Dmitry Gozman 822f7cb1eb
browser(firefox): respect Set-Cookie header from fulfilled request (#5456) 2021-02-15 22:49:57 -08:00
Yury Semikhatsky 39fcf1bc54
browser(firefox): do not leak reponses (#4453) 2020-11-16 13:16:20 -08:00
Yury Semikhatsky 0167f8c182
browser(firefox): allow to override request url (#4436) 2020-11-13 14:56:27 -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 437fe17825
browser(firefox): expose resource timing info (#4205) 2020-10-21 13:55:30 -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
Andrey Lushnikov 2631e1a809
browser(firefox): use browsingContextID for frame IDs (#3999)
BrowsingContextIDs are consistent across the processes, so we can use
them to target frames in both browser and content processes. This will
aid browser-side navigation.

As a nice side-effect, we can drop a round-trip to the content process
for every `requestWillBeSent` event since we *almost* always can
attribute all network events to the proper parent frames.

I say "almost", because we in fact **fail** to correctly attribute requests
from workers that are instantiated by subframes. This, however, is
not working in Chromium ATM, so I consider this to be a minor regression
that is worth the simplification.
2020-09-29 11:22:00 -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
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 f13cebc66d
browser(firefox): remove redundant checks for PageTarget._browserContext (#3541) 2020-08-19 15:39:46 -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
Dmitry Gozman 14c6881904
browser(firefox): properly rewrite intercepted request (#3188) 2020-07-28 11:32:44 -07:00