--- a/browser/components/feeds/test/test_bug436801.html
+++ b/browser/components/feeds/test/test_bug436801.html
@@ -18,53 +18,53 @@ https://bugzilla.mozilla.org/show_bug.cg
<script class="testbody" type="text/javascript">
SimpleTest.waitForExplicitFinish();
addLoadEvent(function() {
var doc = SpecialPowers.wrap($("testFrame")).contentDocument;
checkNode(doc.getElementById("feedTitleText"), [
- "ELEMENT", "h1", { "xml:base": "http://www.example.com/foo/bar/" }, [
+ "ELEMENT", "h1", [
["TEXT", "Example of a "],
["ELEMENT", "em", [
["TEXT", "special"],
]],
["TEXT", " feed ("],
["ELEMENT", "img", { "src": "baz.png" }],
["TEXT", ")"],
]
]);
checkNode(doc.getElementById("feedSubtitleText"), [
- "ELEMENT", "h2", { "xml:base": "http://www.example.com/foo/bar/" }, [
+ "ELEMENT", "h2", [
["TEXT", "With a "],
["ELEMENT", "em", [
["TEXT", "special"],
]],
["TEXT", " subtitle ("],
["ELEMENT", "img", { "src": "baz.png" }],
["TEXT", ")"],
]
]);
checkNode(doc.querySelector(".entry").firstChild.firstChild.firstChild, [
- "ELEMENT", "span", { "xml:base": "http://www.example.com/foo/bar/" }, [
+ "ELEMENT", "span", [
["TEXT", "Some "],
["ELEMENT", "abbr", { title: "Extensible Hyper-text Mark-up Language" }, [
["TEXT", "XHTML"],
]],
["TEXT", " examples ("],
["ELEMENT", "img", { "src": "baz.png" }],
["TEXT", ")"],
]
]);
checkNode(doc.querySelectorAll(".entry")[1].firstChild.firstChild.firstChild, [
- "ELEMENT", "span", { "xml:base": "http://www.example.com/foo/bar/" }, [
+ "ELEMENT", "span", [
["TEXT", "Some "],
["ELEMENT", "abbr", { title: "Hyper-text Mark-up Language" }, [
["TEXT", "HTML"],
]],
["TEXT", " examples ("],
["ELEMENT", "img", { "src": "baz.png" }],
["TEXT", ")"],
]
--- a/parser/html/nsParserUtils.cpp
+++ b/parser/html/nsParserUtils.cpp
@@ -157,72 +157,35 @@ nsParserUtils::ParseFragment(const nsASt
if (scripts_enabled) {
loader->SetEnabled(false);
}
// Wrap things in a div or body for parsing, but it won't show up in
// the fragment.
nsresult rv = NS_OK;
AutoTArray<nsString, 2> tagStack;
- nsAutoCString base, spec;
+ nsCOMPtr<nsIContent> fragment;
if (aIsXML) {
// XHTML
- if (aBaseURI) {
- base.AppendLiteral(XHTML_DIV_TAG);
- base.AppendLiteral(" xml:base=\"");
- rv = aBaseURI->GetSpec(spec);
- NS_ENSURE_SUCCESS(rv, rv);
- // nsEscapeHTML is good enough, because we only need to get
- // quotes, ampersands, and angle brackets
- char* escapedSpec = nsEscapeHTML(spec.get());
- if (escapedSpec)
- base += escapedSpec;
- free(escapedSpec);
- base.Append('"');
- tagStack.AppendElement(NS_ConvertUTF8toUTF16(base));
- } else {
- tagStack.AppendElement(NS_LITERAL_STRING(XHTML_DIV_TAG));
- }
- }
-
- nsCOMPtr<nsIContent> fragment;
- if (aIsXML) {
+ tagStack.AppendElement(NS_LITERAL_STRING(XHTML_DIV_TAG));
rv = nsContentUtils::ParseFragmentXML(aFragment,
document,
tagStack,
true,
aReturn);
fragment = do_QueryInterface(*aReturn);
} else {
NS_ADDREF(*aReturn = new DocumentFragment(document->NodeInfoManager()));
fragment = do_QueryInterface(*aReturn);
rv = nsContentUtils::ParseFragmentHTML(aFragment,
fragment,
nsGkAtoms::body,
kNameSpaceID_XHTML,
false,
true);
- // Now, set the base URI on all subtree roots.
- if (aBaseURI) {
- nsresult rv2 = aBaseURI->GetSpec(spec);
- NS_ENSURE_SUCCESS(rv2, rv2);
- nsAutoString spec16;
- CopyUTF8toUTF16(spec, spec16);
- nsIContent* node = fragment->GetFirstChild();
- while (node) {
- if (node->IsElement()) {
- node->SetAttr(kNameSpaceID_XML,
- nsGkAtoms::base,
- nsGkAtoms::xml,
- spec16,
- false);
- }
- node = node->GetNextSibling();
- }
- }
}
if (fragment) {
nsTreeSanitizer sanitizer(aFlags);
sanitizer.Sanitize(fragment);
}
if (scripts_enabled) {
loader->SetEnabled(true);