#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_SERIALIZERS_SERIALIZATION_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_SERIALIZERS_SERIALIZATION_H_
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/css/css_property_names.h"
#include "third_party/blink/renderer/core/dom/parser_content_policy.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
#include "third_party/blink/renderer/core/editing/forward.h"
#include "third_party/blink/renderer/core/editing/serializers/create_markup_options.h"
#include "third_party/blink/renderer/core/editing/serializers/html_interchange.h"
#include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_set.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/wtf/forward.h"
namespace blink {
class ContainerNode;
class Document;
class DocumentFragment;
class Element;
class ExceptionState;
class Node;
class CSSPropertyValueSet;
enum ChildrenOnly { … };
ShadowRootSet;
struct ShadowRootInclusion final { … };
DocumentFragment* CreateFragmentFromText(const EphemeralRange& context,
const String& text);
DocumentFragment* CreateFragmentFromMarkup(
Document&,
const String& markup,
const String& base_url,
ParserContentPolicy = kAllowScriptingContent);
DocumentFragment* CreateFragmentFromMarkupWithContext(Document&,
const String& markup,
unsigned fragment_start,
unsigned fragment_end,
const String& base_url,
ParserContentPolicy);
DocumentFragment* CreateFragmentForInnerOuterHTML(
const String&,
Element*,
ParserContentPolicy,
Element::ParseDeclarativeShadowRoots parse_declarative_shadows,
Element::ForceHtml force_html,
ExceptionState&);
DocumentFragment* CreateFragmentForTransformToFragment(
const String&,
const String& source_mime_type,
Document& output_doc);
DocumentFragment* CreateContextualFragment(const String&,
Element*,
ParserContentPolicy,
ExceptionState&);
bool IsPlainTextMarkup(Node*);
void ReplaceChildrenWithFragment(ContainerNode*,
DocumentFragment*,
ExceptionState&);
void ReplaceChildrenWithText(ContainerNode*, const String&, ExceptionState&);
CORE_EXPORT String
CreateMarkup(const Node*,
ChildrenOnly = kIncludeNode,
AbsoluteURLs = kDoNotResolveURLs,
const ShadowRootInclusion& = ShadowRootInclusion());
CORE_EXPORT String
CreateMarkup(const Position& start,
const Position& end,
const CreateMarkupOptions& options = CreateMarkupOptions());
CORE_EXPORT String
CreateMarkup(const PositionInFlatTree& start,
const PositionInFlatTree& end,
const CreateMarkupOptions& options = CreateMarkupOptions());
CORE_EXPORT DocumentFragment*
CreateStrictlyProcessedFragmentFromMarkupWithContext(Document&,
const String& raw_markup,
unsigned fragment_start,
unsigned fragment_end,
const String& base_url);
CORE_EXPORT String CreateStrictlyProcessedMarkupWithContext(
Document&,
const String& raw_markup,
unsigned fragment_start,
unsigned fragment_end,
const String& base_url,
ChildrenOnly = kIncludeNode,
AbsoluteURLs = kDoNotResolveURLs,
const ShadowRootInclusion& = ShadowRootInclusion());
void MergeWithNextTextNode(Text*, ExceptionState&);
bool PropertyMissingOrEqualToNone(CSSPropertyValueSet*, CSSPropertyID);
}
#endif