gecko/dom/xml/ProcessingInstruction.cpp
Birunthan Mohanathas f30a0b63c8 Bug 946065 - Part 6: Move content/xml/ to dom/ and flatten subdirectories. r=jst
--HG--
rename : content/xml/content/src/CDATASection.cpp => dom/xml/CDATASection.cpp
rename : content/xml/content/src/CDATASection.h => dom/xml/CDATASection.h
rename : content/xml/content/src/ProcessingInstruction.cpp => dom/xml/ProcessingInstruction.cpp
rename : content/xml/content/src/ProcessingInstruction.h => dom/xml/ProcessingInstruction.h
rename : content/xml/document/src/XMLDocument.cpp => dom/xml/XMLDocument.cpp
rename : content/xml/document/src/XMLDocument.h => dom/xml/XMLDocument.h
rename : content/xml/content/src/XMLStylesheetProcessingInstruction.cpp => dom/xml/XMLStylesheetProcessingInstruction.cpp
rename : content/xml/content/src/XMLStylesheetProcessingInstruction.h => dom/xml/XMLStylesheetProcessingInstruction.h
rename : content/xml/document/crashtests/136896-1.xml => dom/xml/crashtests/136896-1.xml
rename : content/xml/document/crashtests/185285-1.xml => dom/xml/crashtests/185285-1.xml
rename : content/xml/document/crashtests/382636-1.xml => dom/xml/crashtests/382636-1.xml
rename : content/xml/document/crashtests/382636-2.svg => dom/xml/crashtests/382636-2.svg
rename : content/xml/document/crashtests/382636-3.xhtml => dom/xml/crashtests/382636-3.xhtml
rename : content/xml/document/crashtests/382636-4.xul => dom/xml/crashtests/382636-4.xul
rename : content/xml/content/crashtest/420429.xul => dom/xml/crashtests/420429.xul
rename : content/xml/document/crashtests/431703-1.xhtml => dom/xml/crashtests/431703-1.xhtml
rename : content/xml/content/crashtest/453278-frame.xml => dom/xml/crashtests/453278-frame.xml
rename : content/xml/content/crashtest/453278.html => dom/xml/crashtests/453278.html
rename : content/xml/content/crashtest/803586.xhtml => dom/xml/crashtests/803586.xhtml
rename : content/xml/document/crashtests/994740-1.xhtml => dom/xml/crashtests/994740-1.xhtml
rename : content/xml/document/crashtests/crashtests.list => dom/xml/crashtests/crashtests.list
rename : content/xml/document/crashtests/tree.gif => dom/xml/crashtests/tree.gif
rename : content/xml/content/src/htmlmathml-f.ent => dom/xml/htmlmathml-f.ent
rename : content/xml/content/src/moz.build => dom/xml/moz.build
rename : content/xml/document/public/nsIXMLContentSink.h => dom/xml/nsIXMLContentSink.h
rename : content/xml/document/src/nsXMLContentSink.cpp => dom/xml/nsXMLContentSink.cpp
rename : content/xml/document/src/nsXMLContentSink.h => dom/xml/nsXMLContentSink.h
rename : content/xml/content/src/nsXMLElement.cpp => dom/xml/nsXMLElement.cpp
rename : content/xml/content/src/nsXMLElement.h => dom/xml/nsXMLElement.h
rename : content/xml/document/src/nsXMLFragmentContentSink.cpp => dom/xml/nsXMLFragmentContentSink.cpp
rename : content/xml/document/src/nsXMLPrettyPrinter.cpp => dom/xml/nsXMLPrettyPrinter.cpp
rename : content/xml/document/src/nsXMLPrettyPrinter.h => dom/xml/nsXMLPrettyPrinter.h
rename : content/xml/document/resources/XMLMonoPrint.css => dom/xml/resources/XMLMonoPrint.css
rename : content/xml/document/resources/XMLPrettyPrint.css => dom/xml/resources/XMLPrettyPrint.css
rename : content/xml/document/resources/XMLPrettyPrint.xml => dom/xml/resources/XMLPrettyPrint.xml
rename : content/xml/document/resources/XMLPrettyPrint.xsl => dom/xml/resources/XMLPrettyPrint.xsl
rename : content/xml/document/resources/jar.mn => dom/xml/resources/jar.mn
rename : content/xml/document/resources/moz.build => dom/xml/resources/moz.build
rename : content/xml/document/test/file_bug293347.xml => dom/xml/test/file_bug293347.xml
rename : content/xml/document/test/file_bug293347xslt.xml => dom/xml/test/file_bug293347xslt.xml
rename : content/xml/document/test/mochitest.ini => dom/xml/test/mochitest.ini
rename : content/xml/document/test/moz.build => dom/xml/test/moz.build
rename : content/xml/tests/books/bethlehem.gif => dom/xml/test/old/books/bethlehem.gif
rename : content/xml/tests/books/bill.gif => dom/xml/test/old/books/bill.gif
rename : content/xml/tests/books/books.js => dom/xml/test/old/books/books.js
rename : content/xml/tests/books/books.xml => dom/xml/test/old/books/books.xml
rename : content/xml/tests/books/charing.gif => dom/xml/test/old/books/charing.gif
rename : content/xml/tests/books/classic.css => dom/xml/test/old/books/classic.css
rename : content/xml/tests/books/common.css => dom/xml/test/old/books/common.css
rename : content/xml/tests/books/kerouac.gif => dom/xml/test/old/books/kerouac.gif
rename : content/xml/tests/books/list.css => dom/xml/test/old/books/list.css
rename : content/xml/tests/books/road.gif => dom/xml/test/old/books/road.gif
rename : content/xml/tests/books/welville.gif => dom/xml/test/old/books/welville.gif
rename : content/xml/tests/docbook.css => dom/xml/test/old/docbook.css
rename : content/xml/tests/docbooktest.xml => dom/xml/test/old/docbooktest.xml
rename : content/xml/tests/flamer.gif => dom/xml/test/old/flamer.gif
rename : content/xml/tests/load/display.css => dom/xml/test/old/load/display.css
rename : content/xml/tests/load/display.xml => dom/xml/test/old/load/display.xml
rename : content/xml/tests/load/load.html => dom/xml/test/old/load/load.html
rename : content/xml/tests/load/loadauth.html => dom/xml/test/old/load/loadauth.html
rename : content/xml/tests/load/loaddisplay.html => dom/xml/test/old/load/loaddisplay.html
rename : content/xml/tests/load/test.xml => dom/xml/test/old/load/test.xml
rename : content/xml/tests/script.xml => dom/xml/test/old/script.xml
rename : content/xml/tests/simple.xml => dom/xml/test/old/simple.xml
rename : content/xml/tests/toc/book.css => dom/xml/test/old/toc/book.css
rename : content/xml/tests/toc/irslogo.gif => dom/xml/test/old/toc/irslogo.gif
rename : content/xml/tests/toc/minus.gif => dom/xml/test/old/toc/minus.gif
rename : content/xml/tests/toc/plus.gif => dom/xml/test/old/toc/plus.gif
rename : content/xml/tests/toc/rights.xml => dom/xml/test/old/toc/rights.xml
rename : content/xml/tests/toc/toc.css => dom/xml/test/old/toc/toc.css
rename : content/xml/tests/toc/toc.js => dom/xml/test/old/toc/toc.js
rename : content/xml/tests/xlink/auto.xml => dom/xml/test/old/xlink/auto.xml
rename : content/xml/tests/xlink/link.css => dom/xml/test/old/xlink/link.css
rename : content/xml/tests/xlink/manual.xml => dom/xml/test/old/xlink/manual.xml
rename : content/xml/tests/xmlbase/xmlbase.css => dom/xml/test/old/xmlbase/xmlbase.css
rename : content/xml/tests/xmlbase/xmlbase.xml => dom/xml/test/old/xmlbase/xmlbase.xml
rename : content/xml/document/test/test_bug232004.xhtml => dom/xml/test/test_bug232004.xhtml
rename : content/xml/document/test/test_bug293347.html => dom/xml/test/test_bug293347.html
rename : content/xml/document/test/test_bug343870.xhtml => dom/xml/test/test_bug343870.xhtml
rename : content/xml/document/test/test_bug355213.xhtml => dom/xml/test/test_bug355213.xhtml
rename : content/xml/document/test/test_bug392338.html => dom/xml/test/test_bug392338.html
rename : content/xml/document/test/test_bug399502.xhtml => dom/xml/test/test_bug399502.xhtml
rename : content/xml/document/test/test_bug445330.html => dom/xml/test/test_bug445330.html
rename : content/xml/document/test/test_bug691215.html => dom/xml/test/test_bug691215.html
rename : content/xml/document/test/test_viewport.xhtml => dom/xml/test/test_viewport.xhtml
2014-07-25 14:15:35 -07:00

134 lines
3.9 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsGkAtoms.h"
#include "nsUnicharUtils.h"
#include "mozilla/dom/ProcessingInstruction.h"
#include "mozilla/dom/ProcessingInstructionBinding.h"
#include "mozilla/dom/XMLStylesheetProcessingInstruction.h"
#include "mozilla/IntegerPrintfMacros.h"
#include "nsContentUtils.h"
already_AddRefed<mozilla::dom::ProcessingInstruction>
NS_NewXMLProcessingInstruction(nsNodeInfoManager *aNodeInfoManager,
const nsAString& aTarget,
const nsAString& aData)
{
using mozilla::dom::ProcessingInstruction;
using mozilla::dom::XMLStylesheetProcessingInstruction;
NS_PRECONDITION(aNodeInfoManager, "Missing nodeinfo manager");
nsCOMPtr<nsIAtom> target = do_GetAtom(aTarget);
MOZ_ASSERT(target);
if (target == nsGkAtoms::xml_stylesheet) {
nsRefPtr<XMLStylesheetProcessingInstruction> pi =
new XMLStylesheetProcessingInstruction(aNodeInfoManager, aData);
return pi.forget();
}
nsRefPtr<mozilla::dom::NodeInfo> ni;
ni = aNodeInfoManager->GetNodeInfo(nsGkAtoms::processingInstructionTagName,
nullptr, kNameSpaceID_None,
nsIDOMNode::PROCESSING_INSTRUCTION_NODE,
target);
nsRefPtr<ProcessingInstruction> instance =
new ProcessingInstruction(ni.forget(), aData);
return instance.forget();
}
namespace mozilla {
namespace dom {
ProcessingInstruction::ProcessingInstruction(already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
const nsAString& aData)
: nsGenericDOMDataNode(Move(aNodeInfo))
{
NS_ABORT_IF_FALSE(mNodeInfo->NodeType() ==
nsIDOMNode::PROCESSING_INSTRUCTION_NODE,
"Bad NodeType in aNodeInfo");
SetTextInternal(0, mText.GetLength(),
aData.BeginReading(), aData.Length(),
false); // Don't notify (bug 420429).
}
ProcessingInstruction::~ProcessingInstruction()
{
}
NS_IMPL_ISUPPORTS_INHERITED(ProcessingInstruction, nsGenericDOMDataNode,
nsIDOMNode, nsIDOMCharacterData,
nsIDOMProcessingInstruction)
JSObject*
ProcessingInstruction::WrapNode(JSContext *aCx)
{
return ProcessingInstructionBinding::Wrap(aCx, this);
}
NS_IMETHODIMP
ProcessingInstruction::GetTarget(nsAString& aTarget)
{
aTarget = NodeName();
return NS_OK;
}
bool
ProcessingInstruction::GetAttrValue(nsIAtom *aName, nsAString& aValue)
{
nsAutoString data;
GetData(data);
return nsContentUtils::GetPseudoAttributeValue(data, aName, aValue);
}
bool
ProcessingInstruction::IsNodeOfType(uint32_t aFlags) const
{
return !(aFlags & ~(eCONTENT | ePROCESSING_INSTRUCTION | eDATA_NODE));
}
nsGenericDOMDataNode*
ProcessingInstruction::CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
bool aCloneText) const
{
nsAutoString data;
nsGenericDOMDataNode::GetData(data);
nsRefPtr<mozilla::dom::NodeInfo> ni = aNodeInfo;
return new ProcessingInstruction(ni.forget(), data);
}
#ifdef DEBUG
void
ProcessingInstruction::List(FILE* out, int32_t aIndent) const
{
int32_t index;
for (index = aIndent; --index >= 0; ) fputs(" ", out);
fprintf(out, "Processing instruction refcount=%" PRIuPTR "<", mRefCnt.get());
nsAutoString tmp;
ToCString(tmp, 0, mText.GetLength());
tmp.Insert(nsDependentAtomString(NodeInfo()->GetExtraName()).get(), 0);
fputs(NS_LossyConvertUTF16toASCII(tmp).get(), out);
fputs(">\n", out);
}
void
ProcessingInstruction::DumpContent(FILE* out, int32_t aIndent,
bool aDumpAll) const
{
}
#endif
} // namespace dom
} // namespace mozilla