RESOLVED FIXED274224
REGRESSION (276904@main): Breaks https://www.tax.ny.gov/online/.
https://bugs.webkit.org/show_bug.cgi?id=274224
Summary REGRESSION (276904@main): Breaks https://www.tax.ny.gov/online/.
Mark Lam
Reported 2024-05-15 12:58:55 PDT
Steps to reproduce: 1. Navigate to https://www.tax.ny.gov/online/ 2. Click Log in 3. Observe "Network connection was lost" error message or blank white page. This reproduces in MiniBrowser with 276904@main or later.
Attachments
Mark Lam
Comment 1 2024-05-15 12:59:32 PDT
Radar WebKit Bug Importer
Comment 2 2024-05-15 12:59:48 PDT
Mark Lam
Comment 3 2024-05-15 13:04:50 PDT
Mark Lam
Comment 4 2024-05-15 13:56:25 PDT
The previous changes were reverted in 278825@main. See https://bugs.webkit.org/show_bug.cgi?id=274225.
Mark Lam
Comment 5 2024-05-15 14:01:47 PDT
Honestly, I'm not sure if this is actually a bug in this PR. From my debugging, if I make the getter not prepend "get " to its name, the issue stops reproducing. Meanwhile, Chrome and Firefox all do not implement the spec in https://tc39.es/ecma262/#sec-function.prototype.tostring, and hence, do appear to hit this issue. For example, on Firefox, ``` String(Object.getOwnPropertyDescriptor((function() { "use strict"; }).__proto__, "caller").get) ``` ... yields: ``` "function caller() { [native code] }" ``` Maybe someone needs to tell https://www.tax.ny.gov/online to fix their site, or we need more consensus support from Chrome and Firefox in order to land this.
Karl Dubost
Comment 6 2024-05-22 22:39:48 PDT
Mark, I do not have login access to https://www.tax.ny.gov/online Could you identify which part of the code triggers the bug? Testing with: Safari Technology Preview 191 20619.1.6.3 Firefox Nightly 128.0a1 12824.5.19 Google Chrome Canary 127.0.6495.0 6495.0 So this: String(Object.getOwnPropertyDescriptor((function() { "use strict"; }).__proto__, "caller").get) Safari returns "function caller() { [native code] }" Firefox returns "function caller() { [native code] }" Chrome returns 'function () { [native code] }'
Mark Lam
Comment 7 2024-07-17 08:31:49 PDT
(In reply to Karl Dubost from comment #6) > Mark, > > I do not have login access to https://www.tax.ny.gov/online > Could you identify which part of the code triggers the bug? I do not have login access to https://www.tax.ny.gov/online either, but login access is not required. Before 276904@main, trying to login will get some activity on https://www.tax.ny.gov/online. After 276904@main, trying to login gives you a "blank white page". The only change in 276904@main is to rename a getter function: function input() { ... should be: function get input() { ... This is in accordance to the ECMA262 spec. However, after that change in 276904@main (which makes us spec compliant), https://www.tax.ny.gov/online starts showing the "blank white page" on login attempts. What we need to find out here is why that website does not like the spec compliant behavior.
Karl Dubost
Comment 8 2024-07-17 15:17:01 PDT
Given that Firefox returns the same thing than Safari, I wonder if it fails in Firefox too. So on STP Release 198 (Safari 18.0, WebKit 20619.1.20.7) 1. Go to https://www.tax.ny.gov/online/ 2. Click on Login button Result: The site opens a new tab with https://my.ny.gov/LoginV4/login.xhtml?APP=nyappdtf No blank page at the end. (it just takes time 1s to 3s while the page is blank) Same behavior and delay on * Chrome Canary Version 128.0.6598.0 (Official Build) canary (arm64) * Firefox Nightly 128.0 (64 bits) * Working also on a recent internal version of Safari Mark, does it still happen for you? which version?
Karl Dubost
Comment 9 2024-07-17 17:51:14 PDT
comment #8 So my bad, I had forgotten that the change had been reverted so it's normal this is working.
Karl Dubost
Comment 10 2024-07-17 17:51:23 PDT
comment #8 So my bad, I had forgotten that the change had been reverted so it's normal this is working.
Karl Dubost
Comment 11 2024-07-18 00:32:42 PDT
I'm confused with this bug. Object.getOwnPropertyDescriptor(Document.prototype, 'title').get.toString() Chrome: 'function get title() { [native code] }' Firefox: "function title() { [native code] }" Safari: "function title() { [native code] }" In the current state. So Chrome does return the `get` and it is working with the https://www.tax.ny.gov/online/ Now, I also tested by setting Chrome with the UA string for Safari. 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15' And this is still working. if I set Safari with the Chrome UA Then it fails. So I suspect there is some user agent sniffing going on. which adjusts to the expected string, but I'm not sure where in the code. That also means we can't fix it except by doing a Quirk. Proposal: We re-land the code with set/get and a quirk in the same patch. which removes the set/get just for this site. And we start an outreach effort to make them change.
Yijia Huang
Comment 12 2024-07-18 14:24:37 PDT
Karl Dubost
Comment 13 2024-07-18 18:34:28 PDT
We are also in the process of contacting them through radar 132049502 And hopefully we will not have to implement a Quirk.
Yijia Huang
Comment 14 2024-08-30 09:55:15 PDT
Yijia Huang
Comment 15 2025-01-23 14:51:42 PST
EWS
Comment 16 2025-02-04 09:06:09 PST
Committed 289786@main (e4a6a6964d55): <https://commits.webkit.org/289786@main> Reviewed commits have been landed. Closing PR #39468 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.