/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* 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/. */
/* * A class for handing out nodeinfos and ensuring sharing of them as needed.
*/
#include"mozilla/Attributes.h"// for final #include"mozilla/dom/NodeInfo.h" #include"mozilla/dom/DOMArena.h" #include"mozilla/MruCache.h" #include"nsCOMPtr.h"// for member #include"nsCycleCollectionParticipant.h"// for NS_DECL_CYCLE_* #include"nsTHashMap.h" #include"nsStringFwd.h"
class nsAtom; class nsIPrincipal; class nsWindowSizes; template <class T> struct already_AddRefed;
namespace mozilla::dom { class Document;
} // namespace mozilla::dom
class nsNodeInfoManager final { private:
~nsNodeInfoManager();
/** * Returns the nodeinfo for text nodes. Can return null if OOM.
*/
already_AddRefed<mozilla::dom::NodeInfo> GetTextNodeInfo();
/** * Returns the nodeinfo for comment nodes. Can return null if OOM.
*/
already_AddRefed<mozilla::dom::NodeInfo> GetCommentNodeInfo();
/** * Returns the nodeinfo for the document node. Can return null if OOM.
*/
already_AddRefed<mozilla::dom::NodeInfo> GetDocumentNodeInfo();
/** * Retrieve a pointer to the document that owns this node info * manager.
*/
mozilla::dom::Document* GetDocument() const { return mDocument; }
/** * Gets the principal of the document this nodeinfo manager belongs to.
*/
nsIPrincipal* DocumentPrincipal() const {
NS_ASSERTION(mPrincipal, "How'd that happen?"); return mPrincipal;
}
/** * Returns true if SVG nodes in this document have real SVG semantics.
*/ bool SVGEnabled() { return mSVGEnabled.valueOrFrom([this] { return InternalSVGEnabled(); });
}
/** * Returns true if MathML nodes in this document have real MathML semantics.
*/ bool MathMLEnabled() { return mMathMLEnabled.valueOrFrom(
[this] { return InternalMathMLEnabled(); });
}
// Note: it's important that mPrincipal is declared before mDefaultPrincipal, // since the latter is initialized to the value of the former in the // constructor's init list:
nsCOMPtr<nsIPrincipal> mPrincipal; // Never null
nsCOMPtr<nsIPrincipal> mDefaultPrincipal; // Never null
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.