зеркало из https://github.com/mozilla/pjs.git
chofmann approved. fix for 11461, refresh for some meta refresh urls was happening irregularly.
This commit is contained in:
Родитель
444328db37
Коммит
a935e915a6
|
@ -2904,15 +2904,16 @@ HTMLContentSink::ProcessMETATag(const nsIParserNode& aNode)
|
||||||
if (NS_FAILED(rv)) return rv;
|
if (NS_FAILED(rv)) return rv;
|
||||||
|
|
||||||
// next get any uri provided as an attribute in the tag.
|
// next get any uri provided as an attribute in the tag.
|
||||||
PRInt32 urlLoc = result.Find("url", PR_TRUE);
|
PRInt32 loc = result.Find("url", PR_TRUE);
|
||||||
if (urlLoc > -1) {
|
PRInt32 urlLoc = loc;
|
||||||
|
if (loc > -1) {
|
||||||
// there is a url attribute, let's use it.
|
// there is a url attribute, let's use it.
|
||||||
urlLoc += 3;
|
loc += 3;
|
||||||
// go past the '=' sign
|
// go past the '=' sign
|
||||||
urlLoc = result.Find("=", PR_TRUE, urlLoc);
|
loc = result.Find("=", PR_TRUE, loc);
|
||||||
if (urlLoc > -1) {
|
if (loc > -1) {
|
||||||
urlLoc++; // leading/trailign spaces get trimmed in url creating code.
|
loc++; // leading/trailign spaces get trimmed in url creating code.
|
||||||
result.Mid(uriAttribStr, urlLoc, result.Length() - urlLoc);
|
result.Mid(uriAttribStr, loc, result.Length() - loc);
|
||||||
uriCStr = uriAttribStr.GetUnicode();
|
uriCStr = uriAttribStr.GetUnicode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2924,9 +2925,15 @@ HTMLContentSink::ProcessMETATag(const nsIParserNode& aNode)
|
||||||
|
|
||||||
// the units of the numeric value contained in the result are seconds.
|
// the units of the numeric value contained in the result are seconds.
|
||||||
// we need them in milliseconds before handing off to the refresh interface.
|
// we need them in milliseconds before handing off to the refresh interface.
|
||||||
// NOTE: we're no longer using the urlLoc variable, just stick it in here
|
|
||||||
// as the error argument to ::ToInteger() as an optimization.
|
PRInt32 millis;
|
||||||
PRInt32 millis = result.ToInteger(&urlLoc) * 1000;
|
if (urlLoc > 1) {
|
||||||
|
nsString2 seconds;
|
||||||
|
result.Left(seconds, urlLoc-2);
|
||||||
|
millis = seconds.ToInteger(&loc) * 1000;
|
||||||
|
} else {
|
||||||
|
millis = result.ToInteger(&loc) * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
nsIRefreshURI *reefer = nsnull;
|
nsIRefreshURI *reefer = nsnull;
|
||||||
rv = mWebShell->QueryInterface(nsCOMTypeInfo<nsIRefreshURI>::GetIID(), (void**)&reefer);
|
rv = mWebShell->QueryInterface(nsCOMTypeInfo<nsIRefreshURI>::GetIID(), (void**)&reefer);
|
||||||
|
|
|
@ -2904,15 +2904,16 @@ HTMLContentSink::ProcessMETATag(const nsIParserNode& aNode)
|
||||||
if (NS_FAILED(rv)) return rv;
|
if (NS_FAILED(rv)) return rv;
|
||||||
|
|
||||||
// next get any uri provided as an attribute in the tag.
|
// next get any uri provided as an attribute in the tag.
|
||||||
PRInt32 urlLoc = result.Find("url", PR_TRUE);
|
PRInt32 loc = result.Find("url", PR_TRUE);
|
||||||
if (urlLoc > -1) {
|
PRInt32 urlLoc = loc;
|
||||||
|
if (loc > -1) {
|
||||||
// there is a url attribute, let's use it.
|
// there is a url attribute, let's use it.
|
||||||
urlLoc += 3;
|
loc += 3;
|
||||||
// go past the '=' sign
|
// go past the '=' sign
|
||||||
urlLoc = result.Find("=", PR_TRUE, urlLoc);
|
loc = result.Find("=", PR_TRUE, loc);
|
||||||
if (urlLoc > -1) {
|
if (loc > -1) {
|
||||||
urlLoc++; // leading/trailign spaces get trimmed in url creating code.
|
loc++; // leading/trailign spaces get trimmed in url creating code.
|
||||||
result.Mid(uriAttribStr, urlLoc, result.Length() - urlLoc);
|
result.Mid(uriAttribStr, loc, result.Length() - loc);
|
||||||
uriCStr = uriAttribStr.GetUnicode();
|
uriCStr = uriAttribStr.GetUnicode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2924,9 +2925,15 @@ HTMLContentSink::ProcessMETATag(const nsIParserNode& aNode)
|
||||||
|
|
||||||
// the units of the numeric value contained in the result are seconds.
|
// the units of the numeric value contained in the result are seconds.
|
||||||
// we need them in milliseconds before handing off to the refresh interface.
|
// we need them in milliseconds before handing off to the refresh interface.
|
||||||
// NOTE: we're no longer using the urlLoc variable, just stick it in here
|
|
||||||
// as the error argument to ::ToInteger() as an optimization.
|
PRInt32 millis;
|
||||||
PRInt32 millis = result.ToInteger(&urlLoc) * 1000;
|
if (urlLoc > 1) {
|
||||||
|
nsString2 seconds;
|
||||||
|
result.Left(seconds, urlLoc-2);
|
||||||
|
millis = seconds.ToInteger(&loc) * 1000;
|
||||||
|
} else {
|
||||||
|
millis = result.ToInteger(&loc) * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
nsIRefreshURI *reefer = nsnull;
|
nsIRefreshURI *reefer = nsnull;
|
||||||
rv = mWebShell->QueryInterface(nsCOMTypeInfo<nsIRefreshURI>::GetIID(), (void**)&reefer);
|
rv = mWebShell->QueryInterface(nsCOMTypeInfo<nsIRefreshURI>::GetIID(), (void**)&reefer);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче