diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /parser/html/nsHtml5StringParser.h | |
parent | Initial commit. (diff) | |
download | firefox-upstream/124.0.1.tar.xz firefox-upstream/124.0.1.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'parser/html/nsHtml5StringParser.h')
-rw-r--r-- | parser/html/nsHtml5StringParser.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/parser/html/nsHtml5StringParser.h b/parser/html/nsHtml5StringParser.h new file mode 100644 index 0000000000..1d41404841 --- /dev/null +++ b/parser/html/nsHtml5StringParser.h @@ -0,0 +1,91 @@ +/* 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/. */ + +#ifndef nsHtml5StringParser_h +#define nsHtml5StringParser_h + +#include "mozilla/UniquePtr.h" +#include "nsHtml5AtomTable.h" +#include "nsParserBase.h" + +class nsHtml5OplessBuilder; +class nsHtml5TreeBuilder; +class nsHtml5Tokenizer; +class nsIContent; +namespace mozilla { +namespace dom { +class Document; +} +} // namespace mozilla + +class nsHtml5StringParser : public nsParserBase { + public: + NS_DECL_ISUPPORTS + + /** + * Constructor for use ONLY by nsContentUtils. Others, please call the + * nsContentUtils statics that wrap this. + */ + nsHtml5StringParser(); + + /** + * Invoke the fragment parsing algorithm (innerHTML). + * DO NOT CALL from outside nsContentUtils.cpp. + * + * @param aSourceBuffer the string being set as innerHTML + * @param aTargetNode the target container + * @param aContextLocalName local name of context node + * @param aContextNamespace namespace of context node + * @param aQuirks true to make <table> not close <p> + * @param aPreventScriptExecution true to prevent scripts from executing; + * don't set to false when parsing into a target node that has been bound + * to tree. + * @param aAllowDeclarativeShadowRoots allow the creation of declarative + * shadow roots. + */ + nsresult ParseFragment(const nsAString& aSourceBuffer, + nsIContent* aTargetNode, nsAtom* aContextLocalName, + int32_t aContextNamespace, bool aQuirks, + bool aPreventScriptExecution, + bool aAllowDeclarativeShadowRoots); + + /** + * Parse an entire HTML document from a source string. + * DO NOT CALL from outside nsContentUtils.cpp. + * + */ + nsresult ParseDocument(const nsAString& aSourceBuffer, + mozilla::dom::Document* aTargetDoc, + bool aScriptingEnabledForNoscriptParsing); + + private: + virtual ~nsHtml5StringParser(); + + nsresult Tokenize(const nsAString& aSourceBuffer, + mozilla::dom::Document* aDocument, + bool aScriptingEnabledForNoscriptParsing, + bool aDeclarativeShadowRootsAllowed); + + /** + * The tree operation executor + */ + RefPtr<nsHtml5OplessBuilder> mBuilder; + + /** + * The HTML5 tree builder + */ + const mozilla::UniquePtr<nsHtml5TreeBuilder> mTreeBuilder; + + /** + * The HTML5 tokenizer + */ + const mozilla::UniquePtr<nsHtml5Tokenizer> mTokenizer; + + /** + * The scoped atom table + */ + nsHtml5AtomTable mAtomTable; +}; + +#endif // nsHtml5StringParser_h |