зеркало из https://github.com/mozilla/gecko-dev.git
Bug 582940 - Make the HTML5 parser URL unescape <a name> until HTML5-compliant fragment navigation is supported. r=bzbarsky, a=blocking2.0-betaN.
--HG-- extra : rebase_source : 0e4cb540161dfe445d58840618877f97cbe8eba0
This commit is contained in:
Родитель
ac49929194
Коммит
e21d71c019
|
@ -60,6 +60,7 @@
|
|||
#include "nsIMutationObserver.h"
|
||||
#include "nsIFormProcessor.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsEscape.h"
|
||||
|
||||
#ifdef MOZ_SVG
|
||||
#include "nsHtml5SVGLoadDispatcher.h"
|
||||
|
@ -458,8 +459,19 @@ nsHtml5TreeOperation::Perform(nsHtml5TreeOpExecutor* aBuilder,
|
|||
// prefix doesn't need regetting. it is always null or a static atom
|
||||
// local name is never null
|
||||
nsCOMPtr<nsIAtom> localName = Reget(attributes->getLocalName(i));
|
||||
newContent->SetAttr(attributes->getURI(i), localName, attributes->getPrefix(i), *(attributes->getValue(i)), PR_FALSE);
|
||||
// XXX what to do with nsresult?
|
||||
if (ns == kNameSpaceID_XHTML &&
|
||||
nsHtml5Atoms::a == name &&
|
||||
nsHtml5Atoms::name == localName) {
|
||||
// This is an HTML5-incompliant Geckoism.
|
||||
// Remove when fixing bug 582361
|
||||
NS_ConvertUTF16toUTF8 cname(*(attributes->getValue(i)));
|
||||
NS_ConvertUTF8toUTF16 uv(nsUnescape(cname.BeginWriting()));
|
||||
newContent->SetAttr(attributes->getURI(i), localName,
|
||||
attributes->getPrefix(i), uv, PR_FALSE);
|
||||
} else {
|
||||
newContent->SetAttr(attributes->getURI(i), localName,
|
||||
attributes->getPrefix(i), *(attributes->getValue(i)), PR_FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
return rv;
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<html class=reftest-wait>
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<title>Fragment nav</title>
|
||||
<script>
|
||||
function loaded() {
|
||||
document.documentElement.removeAttribute("class");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload='setTimeout(loaded, 10);'>
|
||||
<iframe src="frame582940-ref.html#ref"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<html class=reftest-wait>
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<title>Fragment nav</title>
|
||||
<script>
|
||||
function loaded() {
|
||||
document.documentElement.removeAttribute("class");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload='setTimeout(loaded, 10);'>
|
||||
<iframe src="frame582940.html#ref%20ref"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<title>Fragment nav</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p><a name='ref'>Ref!</a></p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<title>Fragment nav</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p><a name='ref%20ref'>Ref!</a></p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
<p>Filler</p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,2 +1,3 @@
|
|||
== bug566280-1.html bug566280-1-ref.html
|
||||
== bug582788-1.html bug582788-1-ref.html
|
||||
== bug582940-1.html bug582940-1-ref.html
|
||||
|
|
Загрузка…
Ссылка в новой задаче