My favorites | Sign in
Project Home Downloads Wiki Issues Code Search
New issue   Search
  Advanced search   Search tips   Subscriptions
Issue 20117: Chrome doesn't respect http-equiv refresh with space instead of semicolon
26 people starred this issue and may be notified of changes. Back to list
Project Member Reported by, Aug 24, 2009
Chrome doesn't redirect on load of
like Firefox does.
The line
-- snip --
<meta http-equiv="Refresh" content="0
-- snip --
is not being obeyed.  Note the space where a semicolon usually is.

This is almost a dup of  bug 3162 , but that one was merged into
a big-ball-o-hair bug, let's have a nice simple separate bug for this.
Sep 23, 2009
Safari has the same problem. Firefox and IE are generous in the same situation. 

This was also reported in the Google Korean U2U group (
Search/browse_thread/thread/c2743deeb993d003# ). The url in question is 

Although I think Webkit has to be changed to be compatible with Firefox and IE, I'm 
adding Johny in case he wants to see how widespread this problem is with his 
compat-check tool. 

I've just tried one line patch to the webkit 
(WebCore/platform/network/HTTPParser.cpp) and it worked for both Chrome and 

I upstreamed this to (I thought our 
http stack might have its own code to deal with this, but couldn't find and it doesn't 
seem to have one given that  the aforementioned patch works with both Chrome and 

Status: Upstream
Labels: -Type-Bug
Sep 23, 2009
Thanks, Jungshik! I will detect this bug and record how many pages have this problem in 
further detections.
Sep 23, 2009
Thank you, Johny. 

I'm now testing whether IE/Firefox are generous with HTTP Refresh header as well (and 
other characters than 'space', comma and semicolon). 
Labels: -Area-Misc -Size-Medium Area-WebKit Size-Small
Sep 28, 2009
Hello nickjohns2k5. 
I tested your case on my Chrome, it worked well. ( (official Build 25376))
Would you please attach a test case file which was failed on your Chrome. Also would 
you please provide your chrome version info.

Oct 2, 2009
 Issue 14861  has been merged into this issue.
Oct 5, 2009
I have perhaps the simplest example of Chrome ( ignoring meta refresh, and
Safari ignores it as well:

<html><head><meta http-equiv="refresh" content="1;url=/public"
Oct 15, 2009
it looks like this is moving upstream, i'll put this in mstone 4 for now.
Labels: Mstone-4
Nov 6, 2009
Nov 6, 2009
Not quite fixed.  The original case is still broken.  Minimal test case (from #10
with; replaced by space):

<html><head><meta http-equiv="refresh" content="1 

Nov 7, 2009
(reply to comments, 10 and 13, by MsGuireV110 and daniel.r.kegel)

The HTTP "Refresh:" header is not supposed to be honorred if it is not an absolute 
URL, but here you used a relative URL "/public" (relative to the current document's 
URL ?). Is it supposed to work anyway when the Refresh is specified in a HTML <meta> 
element instead?

My opinion is that the <meta> element should not accept what the HTTP header also 
does not accept as valid.

If you make the HTTP implementation generous (accepting the comma or space instead of 
semicolon, or accepting relative URLs), the same patch should be applied to the HTML 
renderer within its support for <meta> (but the HTTP header will still have higher 
precedence for the header with the same "Refresh" name, ignoring case, if it is also 
present, as this Refrsh header type is not cumulative).

Nov 7, 2009
Note that the HTTP "Refresh" header was not specified in any RFC; it was tolerated with 
HTTP/1.0 as a vendor extension, but it is disallowed with HTTP/1.1, i.e. RFC 2616; it 
has been replaced with the standard "Location" header with some restrictions and 
semantics (to comply with HTTP proxies). The "location" header also requires an 
absolute URI and can only be returned with specific HTTP status for redirects.

Nov 7, 2009
Hi Johnny,

As a measure of prevalence, "refresh with space" is used by Discuz forum software, 
which means it's widely used in Chinese websites.

See also other issues:
Nov 17, 2009
Firefox supports the Refresh response header, and so should we.
Nov 21, 2009
I'd rather Jungshik worked on I18N bugs for 4 rather than completing the tests for this 
bug upstream. 

If someone else wants to pick up the WebKit bug, that's OK. Otherwise, I think we can 
safely release another version of Chrome with this issue.

Moving to Mstone-5 so I don't block 4 on the upstream changes.
Labels: -Mstone-4 Mstone-5
Feb 25, 2010
(No comment was entered for this change.)
Status: Assigned
Labels: Upstream karenchanged
Apr 1, 2010
any update on this fix?
May 13, 2010
Raising priority for next round.
Labels: -Pri-2 -Mstone-5 Pri-1 Mstone-6
Aug 6, 2010
(No comment was entered for this change.)
Status: ExternalDependency
Labels: -upstream
Aug 31, 2010
This issue is marked as M6. Are you sure it is? Dear owner, please update the milestone accordingly.
Sep 3, 2010
Moving out of 6, please retarget as needed.
Labels: -Mstone-6 Mstone-X
Jan 20, 2012
 Issue 41136  has been merged into this issue.
Jan 20, 2012
(No comment was entered for this change.)
Labels: WebKit-ID-29674
Jan 20, 2012
Labels: -WebKit-ID-29674 WebKit-ID-29674-ASSIGNED
Jun 9, 2012
My Chrome (recent version on Mac OS X) has the same problem at where the semicolon is correct:

<meta http-equiv="Refresh" content="1; URL=">
Nov 20, 2012
P1 bugs that have been moved 3+ times. Downgrading to P2
Labels: -Pri-1 Pri-2
Feb 12, 2013
This happens all the time for me. Last time was one minute ago when I tried to logout from GMail (!). I ended up being stuck on a page with the following source

<html><head><meta http-equiv="Refresh" content="0;URL=;continue=;hl=en" /></head><body><script type="text/javascript" language="javascript"><!--

After decoding the URL and pasting it in the address field I logged out successfully.

Very annoying.
Feb 13, 2013
Here is another example that does not wor

	<body onload="document.location.replace('')">
		<form method="get" action="">
Mar 10, 2013
(No comment was entered for this change.)
Labels: -Area-WebKit Cr-Content
Apr 5, 2013
(No comment was entered for this change.)
Labels: -Cr-Content Cr-Blink
Apr 10, 2013
Bulk status change for WebKit-ID-? bugs with ExternalDependency. These are now all Available. Feel free to return the status if the dependency is not on a WebKit contributor, but some other third party.
Status: Available
Oct 9, 2013
The error lies in the parseHTTPRefresh in the HTTPParsers.cpp 

The loop should probably accept spaces as delimiter:

while (pos != len && refresh[pos] != ',' && refresh[pos] != ';' && refresh[pos] != ' ')

Jan 13, 2014
#37 VexenCrabtree
Page: view-source:
Source: <html><head><meta http-equiv="refresh" name="refresh" content="0; URL="></head></html>

Correct semicolon; same as poster #29. I'm using Win8, Google Chrome v. 32.0.1700.72 m.
Jan 22, 2014
Remove the attribute name="refresh" ,it will WORK

<html><head><meta http-equiv="refresh"  content="0; URL="></head></html>
Sign in to add a comment

Powered by Google Project Hosting