Handle HTTP Refresh header (#36393)

Move parsing of Refresh values to Document.
Send Refresh header to Document and have meta tags reuse the logic.

I transplanted the existing Regex and made some updates so that it
passed all the existing parser tests.
I added the comments that made sense but it is not very clean to add
many comments within the regex.

Testing: There are existing WPT tests

---------

Signed-off-by: Sebastian C <sebsebmc@gmail.com>
This commit is contained in:
Sebastian C 2025-04-11 02:25:37 -05:00 committed by GitHub
parent 80a6ba5e42
commit 2c7aeca404
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 147 additions and 373 deletions

View file

@ -1,52 +0,0 @@
[refresh-cross-origin.sub.html]
expected: TIMEOUT
[cross-origin header refresh with referrer policy "no-referrer" refreshes with the empty string as referrer]
expected: TIMEOUT
[cross-origin meta refresh with referrer policy "no-referrer-when-downgrade" refreshes with full url as referrer]
expected: NOTRUN
[cross-origin header refresh with referrer policy "no-referrer-when-downgrade" refreshes with full url as referrer]
expected: NOTRUN
[cross-origin meta refresh with referrer policy "origin" refreshes with origin as referrer]
expected: NOTRUN
[cross-origin header refresh with referrer policy "origin" refreshes with origin as referrer]
expected: NOTRUN
[cross-origin meta refresh with referrer policy "origin-when-cross-origin" refreshes with origin as referrer]
expected: NOTRUN
[cross-origin header refresh with referrer policy "origin-when-cross-origin" refreshes with origin as referrer]
expected: NOTRUN
[cross-origin meta refresh with referrer policy "same-origin" refreshes with the empty string as referrer]
expected: NOTRUN
[cross-origin header refresh with referrer policy "same-origin" refreshes with the empty string as referrer]
expected: NOTRUN
[cross-origin meta refresh with referrer policy "strict-origin" refreshes with origin as referrer]
expected: NOTRUN
[cross-origin header refresh with referrer policy "strict-origin" refreshes with origin as referrer]
expected: NOTRUN
[cross-origin meta refresh with referrer policy "strict-origin-when-cross-origin" refreshes with origin as referrer]
expected: NOTRUN
[cross-origin header refresh with referrer policy "strict-origin-when-cross-origin" refreshes with origin as referrer]
expected: NOTRUN
[cross-origin meta refresh with referrer policy "unsafe-url" refreshes with full url as referrer]
expected: NOTRUN
[cross-origin header refresh with referrer policy "unsafe-url" refreshes with full url as referrer]
expected: NOTRUN
[cross-origin meta refresh with referrer policy "" refreshes with origin as referrer]
expected: NOTRUN
[cross-origin header refresh with referrer policy "" refreshes with origin as referrer]
expected: NOTRUN

View file

@ -1,52 +0,0 @@
[refresh-same-origin.html]
expected: TIMEOUT
[same-origin header refresh with referrer policy "no-referrer" refreshes with the empty string as referrer]
expected: TIMEOUT
[same-origin meta refresh with referrer policy "no-referrer-when-downgrade" refreshes with full url as referrer]
expected: NOTRUN
[same-origin header refresh with referrer policy "no-referrer-when-downgrade" refreshes with full url as referrer]
expected: NOTRUN
[same-origin meta refresh with referrer policy "origin" refreshes with origin as referrer]
expected: NOTRUN
[same-origin header refresh with referrer policy "origin" refreshes with origin as referrer]
expected: NOTRUN
[same-origin meta refresh with referrer policy "origin-when-cross-origin" refreshes with full url as referrer]
expected: NOTRUN
[same-origin header refresh with referrer policy "origin-when-cross-origin" refreshes with full url as referrer]
expected: NOTRUN
[same-origin meta refresh with referrer policy "same-origin" refreshes with full url as referrer]
expected: NOTRUN
[same-origin header refresh with referrer policy "same-origin" refreshes with full url as referrer]
expected: NOTRUN
[same-origin meta refresh with referrer policy "strict-origin" refreshes with origin as referrer]
expected: NOTRUN
[same-origin header refresh with referrer policy "strict-origin" refreshes with origin as referrer]
expected: NOTRUN
[same-origin meta refresh with referrer policy "strict-origin-when-cross-origin" refreshes with full url as referrer]
expected: NOTRUN
[same-origin header refresh with referrer policy "strict-origin-when-cross-origin" refreshes with full url as referrer]
expected: NOTRUN
[same-origin meta refresh with referrer policy "unsafe-url" refreshes with full url as referrer]
expected: NOTRUN
[same-origin header refresh with referrer policy "unsafe-url" refreshes with full url as referrer]
expected: NOTRUN
[same-origin meta refresh with referrer policy "" refreshes with full url as referrer]
expected: NOTRUN
[same-origin header refresh with referrer policy "" refreshes with full url as referrer]
expected: NOTRUN

View file

@ -1,52 +0,0 @@
[refresh-same-url.html]
expected: TIMEOUT
[same-URL header refresh with referrer policy "no-referrer" refreshes with the empty string as referrer]
expected: TIMEOUT
[same-URL meta refresh with referrer policy "no-referrer-when-downgrade" refreshes with full url as referrer]
expected: NOTRUN
[same-URL header refresh with referrer policy "no-referrer-when-downgrade" refreshes with full url as referrer]
expected: NOTRUN
[same-URL meta refresh with referrer policy "origin" refreshes with origin as referrer]
expected: NOTRUN
[same-URL header refresh with referrer policy "origin" refreshes with origin as referrer]
expected: NOTRUN
[same-URL meta refresh with referrer policy "origin-when-cross-origin" refreshes with full url as referrer]
expected: NOTRUN
[same-URL header refresh with referrer policy "origin-when-cross-origin" refreshes with full url as referrer]
expected: NOTRUN
[same-URL meta refresh with referrer policy "same-origin" refreshes with full url as referrer]
expected: NOTRUN
[same-URL header refresh with referrer policy "same-origin" refreshes with full url as referrer]
expected: NOTRUN
[same-URL meta refresh with referrer policy "strict-origin" refreshes with origin as referrer]
expected: NOTRUN
[same-URL header refresh with referrer policy "strict-origin" refreshes with origin as referrer]
expected: NOTRUN
[same-URL meta refresh with referrer policy "strict-origin-when-cross-origin" refreshes with full url as referrer]
expected: NOTRUN
[same-URL header refresh with referrer policy "strict-origin-when-cross-origin" refreshes with full url as referrer]
expected: NOTRUN
[same-URL meta refresh with referrer policy "unsafe-url" refreshes with full url as referrer]
expected: NOTRUN
[same-URL header refresh with referrer policy "unsafe-url" refreshes with full url as referrer]
expected: NOTRUN
[same-URL meta refresh with referrer policy "" refreshes with full url as referrer]
expected: NOTRUN
[same-URL header refresh with referrer policy "" refreshes with full url as referrer]
expected: NOTRUN