diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/third_party/blink/renderer/core/xml | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-c30a6232df03e1efbd9f3b226777b07e087a1122.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/xml')
33 files changed, 79 insertions, 66 deletions
diff --git a/chromium/third_party/blink/renderer/core/xml/document_xpath_evaluator.cc b/chromium/third_party/blink/renderer/core/xml/document_xpath_evaluator.cc index 7d520cd9662..c38a7b43be0 100644 --- a/chromium/third_party/blink/renderer/core/xml/document_xpath_evaluator.cc +++ b/chromium/third_party/blink/renderer/core/xml/document_xpath_evaluator.cc @@ -82,7 +82,7 @@ XPathResult* DocumentXPathEvaluator::evaluate(Document& document, expression, context_node, resolver, type, ScriptValue(), exception_state); } -void DocumentXPathEvaluator::Trace(Visitor* visitor) { +void DocumentXPathEvaluator::Trace(Visitor* visitor) const { visitor->Trace(xpath_evaluator_); Supplement<Document>::Trace(visitor); } diff --git a/chromium/third_party/blink/renderer/core/xml/document_xpath_evaluator.h b/chromium/third_party/blink/renderer/core/xml/document_xpath_evaluator.h index 2ec9d4603c4..c08ea5df359 100644 --- a/chromium/third_party/blink/renderer/core/xml/document_xpath_evaluator.h +++ b/chromium/third_party/blink/renderer/core/xml/document_xpath_evaluator.h @@ -60,7 +60,7 @@ class CORE_EXPORT DocumentXPathEvaluator final ExceptionState&); explicit DocumentXPathEvaluator(Document&); - void Trace(Visitor*) override; + void Trace(Visitor*) const override; private: Member<XPathEvaluator> xpath_evaluator_; diff --git a/chromium/third_party/blink/renderer/core/xml/document_xslt.cc b/chromium/third_party/blink/renderer/core/xml/document_xslt.cc index 4ad397ea7a2..8fefbffd43f 100644 --- a/chromium/third_party/blink/renderer/core/xml/document_xslt.cc +++ b/chromium/third_party/blink/renderer/core/xml/document_xslt.cc @@ -55,7 +55,7 @@ class DOMContentLoadedListener final EventListener* ToEventListener() override { return this; } - void Trace(Visitor* visitor) override { + void Trace(Visitor* visitor) const override { visitor->Trace(processing_instruction_); NativeEventListener::Trace(visitor); ProcessingInstruction::DetachableEventListener::Trace(visitor); @@ -165,7 +165,7 @@ DocumentXSLT& DocumentXSLT::From(Document& document) { return *supplement; } -void DocumentXSLT::Trace(Visitor* visitor) { +void DocumentXSLT::Trace(Visitor* visitor) const { visitor->Trace(transform_source_document_); Supplement<Document>::Trace(visitor); } diff --git a/chromium/third_party/blink/renderer/core/xml/document_xslt.h b/chromium/third_party/blink/renderer/core/xml/document_xslt.h index 1b9fe11caf8..4e38f26a4c6 100644 --- a/chromium/third_party/blink/renderer/core/xml/document_xslt.h +++ b/chromium/third_party/blink/renderer/core/xml/document_xslt.h @@ -45,7 +45,7 @@ class DocumentXSLT final : public GarbageCollected<DocumentXSLT>, static bool HasTransformSourceDocument(Document&); explicit DocumentXSLT(Document&); - void Trace(Visitor*) override; + void Trace(Visitor*) const override; private: Member<Document> transform_source_document_; diff --git a/chromium/third_party/blink/renderer/core/xml/dom_parser.cc b/chromium/third_party/blink/renderer/core/xml/dom_parser.cc index e66ec1de7c2..c7e72fde5d4 100644 --- a/chromium/third_party/blink/renderer/core/xml/dom_parser.cc +++ b/chromium/third_party/blink/renderer/core/xml/dom_parser.cc @@ -20,7 +20,6 @@ #include "third_party/blink/renderer/core/xml/dom_parser.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/document_init.h" -#include "third_party/blink/renderer/core/dom/dom_implementation.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/weborigin/security_origin.h" @@ -29,13 +28,12 @@ namespace blink { Document* DOMParser::parseFromString(const String& str, const String& type) { - Document* doc = DOMImplementation::createDocument( - DocumentInit::Create() - .WithURL(GetDocument()->Url()) - .WithTypeFrom(type) - .WithContextDocument(GetDocument()) - .WithOwnerDocument(GetDocument()) - .WithContentSecurityPolicyFromContextDoc()); + Document* doc = DocumentInit::Create() + .WithURL(GetDocument()->Url()) + .WithTypeFrom(type) + .WithExecutionContext(window_) + .WithOwnerDocument(GetDocument()) + .CreateDocument(); doc->SetContent(str); doc->SetMimeType(AtomicString(type)); return doc; @@ -44,7 +42,7 @@ Document* DOMParser::parseFromString(const String& str, const String& type) { DOMParser::DOMParser(ScriptState* script_state) : window_(LocalDOMWindow::From(script_state)) {} -void DOMParser::Trace(Visitor* visitor) { +void DOMParser::Trace(Visitor* visitor) const { visitor->Trace(window_); ScriptWrappable::Trace(visitor); } diff --git a/chromium/third_party/blink/renderer/core/xml/dom_parser.h b/chromium/third_party/blink/renderer/core/xml/dom_parser.h index 9bd336929f3..b4b45c8e866 100644 --- a/chromium/third_party/blink/renderer/core/xml/dom_parser.h +++ b/chromium/third_party/blink/renderer/core/xml/dom_parser.h @@ -42,7 +42,7 @@ class DOMParser final : public ScriptWrappable { Document* parseFromString(const String&, const String& type); - void Trace(Visitor*) override; + void Trace(Visitor*) const override; Document* GetDocument() const; diff --git a/chromium/third_party/blink/renderer/core/xml/native_xpath_ns_resolver.cc b/chromium/third_party/blink/renderer/core/xml/native_xpath_ns_resolver.cc index 3dadcfffe3d..21bc10d815c 100644 --- a/chromium/third_party/blink/renderer/core/xml/native_xpath_ns_resolver.cc +++ b/chromium/third_party/blink/renderer/core/xml/native_xpath_ns_resolver.cc @@ -42,7 +42,7 @@ AtomicString NativeXPathNSResolver::lookupNamespaceURI(const String& prefix) { return node_ ? node_->lookupNamespaceURI(prefix) : g_null_atom; } -void NativeXPathNSResolver::Trace(Visitor* visitor) { +void NativeXPathNSResolver::Trace(Visitor* visitor) const { visitor->Trace(node_); XPathNSResolver::Trace(visitor); } diff --git a/chromium/third_party/blink/renderer/core/xml/native_xpath_ns_resolver.h b/chromium/third_party/blink/renderer/core/xml/native_xpath_ns_resolver.h index 0898d698bd8..1e993921ca0 100644 --- a/chromium/third_party/blink/renderer/core/xml/native_xpath_ns_resolver.h +++ b/chromium/third_party/blink/renderer/core/xml/native_xpath_ns_resolver.h @@ -39,7 +39,7 @@ class NativeXPathNSResolver final : public XPathNSResolver { AtomicString lookupNamespaceURI(const String& prefix) override; - void Trace(Visitor*) override; + void Trace(Visitor*) const override; private: Member<Node> node_; diff --git a/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc b/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc index 5de26fc1d9e..47a0718ed76 100644 --- a/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc +++ b/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc @@ -756,6 +756,7 @@ XMLDocumentParser::XMLDocumentParser(Document& document, requesting_script_(false), finish_called_(false), xml_errors_(&document), + document_(&document), script_runner_(frame_view ? MakeGarbageCollected<XMLParserScriptRunner>(this) : nullptr), // Don't execute scripts for @@ -783,6 +784,7 @@ XMLDocumentParser::XMLDocumentParser(DocumentFragment* fragment, requesting_script_(false), finish_called_(false), xml_errors_(&fragment->GetDocument()), + document_(&fragment->GetDocument()), script_runner_(nullptr), // Don't execute scripts for document fragments. script_start_position_(TextPosition::BelowRangePosition()), parsing_fragment_(true) { @@ -827,11 +829,12 @@ XMLParserContext::~XMLParserContext() { XMLDocumentParser::~XMLDocumentParser() = default; -void XMLDocumentParser::Trace(Visitor* visitor) { +void XMLDocumentParser::Trace(Visitor* visitor) const { visitor->Trace(current_node_); visitor->Trace(current_node_stack_); visitor->Trace(leaf_text_node_); visitor->Trace(xml_errors_); + visitor->Trace(document_); visitor->Trace(script_runner_); ScriptableDocumentParser::Trace(visitor); XMLParserScriptRunnerHost::Trace(visitor); @@ -1011,8 +1014,8 @@ void XMLDocumentParser::StartElementNs(const AtomicString& local_name, q_name = QualifiedName(g_null_atom, prefix + ":" + local_name, g_null_atom); Element* new_element = current_node_->GetDocument().CreateElement( q_name, - parsing_fragment_ ? CreateElementFlags::ByFragmentParser() - : CreateElementFlags::ByParser(), + parsing_fragment_ ? CreateElementFlags::ByFragmentParser(document_) + : CreateElementFlags::ByParser(document_), is); if (!new_element) { StopParsing(); diff --git a/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.h b/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.h index e832a3e7657..df3e98c9851 100644 --- a/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.h +++ b/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.h @@ -77,7 +77,7 @@ class XMLDocumentParser final : public ScriptableDocumentParser, explicit XMLDocumentParser(Document&, LocalFrameView* = nullptr); XMLDocumentParser(DocumentFragment*, Element*, ParserContentPolicy); ~XMLDocumentParser() override; - void Trace(Visitor*) override; + void Trace(Visitor*) const override; // Exposed for callbacks: void HandleError(XMLErrors::ErrorType, const char* message, TextPosition); @@ -218,6 +218,7 @@ class XMLDocumentParser final : public ScriptableDocumentParser, XMLErrors xml_errors_; + Member<Document> document_; Member<XMLParserScriptRunner> script_runner_; TextPosition script_start_position_; diff --git a/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser_test.cc b/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser_test.cc index d23e1f8c451..109ef7220e0 100644 --- a/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser_test.cc +++ b/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser_test.cc @@ -13,7 +13,7 @@ namespace blink { // crbug.com/932380 TEST(XMLDocumentParserTest, NodeNamespaceWithParseError) { - auto& doc = *MakeGarbageCollected<Document>(); + auto& doc = *Document::CreateForTest(); doc.SetContent( "<html xmlns='http://www.w3.org/1999/xhtml'>" "<body><d:foo/></body></html>"); diff --git a/chromium/third_party/blink/renderer/core/xml/parser/xml_errors.cc b/chromium/third_party/blink/renderer/core/xml/parser/xml_errors.cc index 56452f12b27..64a41f47665 100644 --- a/chromium/third_party/blink/renderer/core/xml/parser/xml_errors.cc +++ b/chromium/third_party/blink/renderer/core/xml/parser/xml_errors.cc @@ -45,7 +45,7 @@ XMLErrors::XMLErrors(Document* document) error_count_(0), last_error_position_(TextPosition::BelowRangePosition()) {} -void XMLErrors::Trace(Visitor* visitor) { +void XMLErrors::Trace(Visitor* visitor) const { visitor->Trace(document_); } @@ -95,7 +95,7 @@ void XMLErrors::AppendErrorMessage(const String& type_string, static inline Element* CreateXHTMLParserErrorHeader( Document* doc, const String& error_messages) { - const CreateElementFlags flags = CreateElementFlags::ByParser(); + const CreateElementFlags flags = CreateElementFlags::ByParser(doc); Element* report_element = doc->CreateRawElement( QualifiedName(g_null_atom, "parsererror", html_names::xhtmlNamespaceURI), flags); @@ -135,7 +135,7 @@ void XMLErrors::InsertErrorMessageBlock() { // manually and includes line/col info regarding where the errors are located) // Create elements for display - const CreateElementFlags flags = CreateElementFlags::ByParser(); + const CreateElementFlags flags = CreateElementFlags::ByParser(document_); Element* document_element = document_->documentElement(); if (!document_element) { Element* root_element = diff --git a/chromium/third_party/blink/renderer/core/xml/parser/xml_errors.h b/chromium/third_party/blink/renderer/core/xml/parser/xml_errors.h index 7a0adf16219..8902ef81a0a 100644 --- a/chromium/third_party/blink/renderer/core/xml/parser/xml_errors.h +++ b/chromium/third_party/blink/renderer/core/xml/parser/xml_errors.h @@ -42,7 +42,7 @@ class XMLErrors { public: explicit XMLErrors(Document*); - void Trace(Visitor*); + void Trace(Visitor*) const; // Exposed for callbacks: enum ErrorType { kErrorTypeWarning, kErrorTypeNonFatal, kErrorTypeFatal }; diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_expression.cc b/chromium/third_party/blink/renderer/core/xml/xpath_expression.cc index 0b112519a93..9331f37a15f 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_expression.cc +++ b/chromium/third_party/blink/renderer/core/xml/xpath_expression.cc @@ -53,7 +53,7 @@ XPathExpression* XPathExpression::CreateExpression( return expr; } -void XPathExpression::Trace(Visitor* visitor) { +void XPathExpression::Trace(Visitor* visitor) const { visitor->Trace(top_expression_); ScriptWrappable::Trace(visitor); } diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_expression.h b/chromium/third_party/blink/renderer/core/xml/xpath_expression.h index 76036cfd96d..faf381dbd35 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_expression.h +++ b/chromium/third_party/blink/renderer/core/xml/xpath_expression.h @@ -57,7 +57,7 @@ class XPathExpression : public ScriptWrappable { const ScriptValue&, ExceptionState&); - void Trace(Visitor*) override; + void Trace(Visitor*) const override; private: Member<xpath::Expression> top_expression_; diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_expression_node.cc b/chromium/third_party/blink/renderer/core/xml/xpath_expression_node.cc index 02b43ac7e5b..3e695507b84 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_expression_node.cc +++ b/chromium/third_party/blink/renderer/core/xml/xpath_expression_node.cc @@ -45,7 +45,7 @@ Expression::Expression() Expression::~Expression() = default; -void Expression::Trace(Visitor* visitor) { +void Expression::Trace(Visitor* visitor) const { visitor->Trace(sub_expressions_); ParseNode::Trace(visitor); } diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_expression_node.h b/chromium/third_party/blink/renderer/core/xml/xpath_expression_node.h index e587ea4c224..6c24488c625 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_expression_node.h +++ b/chromium/third_party/blink/renderer/core/xml/xpath_expression_node.h @@ -58,14 +58,14 @@ struct CORE_EXPORT EvaluationContext { class CORE_EXPORT ParseNode : public GarbageCollected<ParseNode> { public: virtual ~ParseNode() = default; - virtual void Trace(Visitor* visitor) {} + virtual void Trace(Visitor* visitor) const {} }; class CORE_EXPORT Expression : public ParseNode { public: Expression(); ~Expression() override; - void Trace(Visitor*) override; + void Trace(Visitor*) const override; virtual Value Evaluate(EvaluationContext&) const = 0; diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_functions_test.cc b/chromium/third_party/blink/renderer/core/xml/xpath_functions_test.cc index dfed2c080b9..794e042b911 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_functions_test.cc +++ b/chromium/third_party/blink/renderer/core/xml/xpath_functions_test.cc @@ -25,7 +25,7 @@ class XPathContext { public: XPathContext() - : document_(MakeGarbageCollected<Document>()), + : document_(Document::CreateForTest()), context_(*document_, had_type_conversion_error_) {} xpath::EvaluationContext& Context() { return context_; } diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_node_set.h b/chromium/third_party/blink/renderer/core/xml/xpath_node_set.h index 7ce4c803945..3cdf9139e62 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_node_set.h +++ b/chromium/third_party/blink/renderer/core/xml/xpath_node_set.h @@ -41,7 +41,7 @@ class NodeSet final : public GarbageCollected<NodeSet> { NodeSet() : is_sorted_(true), subtrees_are_disjoint_(false) {} - void Trace(Visitor* visitor) { visitor->Trace(nodes_); } + void Trace(Visitor* visitor) const { visitor->Trace(nodes_); } wtf_size_t size() const { return nodes_.size(); } bool IsEmpty() const { return !nodes_.size(); } diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_path.cc b/chromium/third_party/blink/renderer/core/xml/xpath_path.cc index a62d43336ea..02c23e16583 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_path.cc +++ b/chromium/third_party/blink/renderer/core/xml/xpath_path.cc @@ -46,7 +46,7 @@ Filter::Filter(Expression* expr, HeapVector<Member<Predicate>>& predicates) Filter::~Filter() = default; -void Filter::Trace(Visitor* visitor) { +void Filter::Trace(Visitor* visitor) const { visitor->Trace(expr_); visitor->Trace(predicates_); Expression::Trace(visitor); @@ -82,7 +82,7 @@ LocationPath::LocationPath() : absolute_(false) { LocationPath::~LocationPath() = default; -void LocationPath::Trace(Visitor* visitor) { +void LocationPath::Trace(Visitor* visitor) const { visitor->Trace(steps_); Expression::Trace(visitor); } @@ -183,7 +183,7 @@ Path::Path(Expression* filter, LocationPath* path) Path::~Path() = default; -void Path::Trace(Visitor* visitor) { +void Path::Trace(Visitor* visitor) const { visitor->Trace(filter_); visitor->Trace(path_); Expression::Trace(visitor); diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_path.h b/chromium/third_party/blink/renderer/core/xml/xpath_path.h index f0c6c089d59..7dc8edc6502 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_path.h +++ b/chromium/third_party/blink/renderer/core/xml/xpath_path.h @@ -41,7 +41,7 @@ class Filter final : public Expression { public: Filter(Expression*, HeapVector<Member<Predicate>>&); ~Filter() override; - void Trace(Visitor*) override; + void Trace(Visitor*) const override; Value Evaluate(EvaluationContext&) const override; @@ -56,7 +56,7 @@ class LocationPath final : public Expression { public: LocationPath(); ~LocationPath() override; - void Trace(Visitor*) override; + void Trace(Visitor*) const override; Value Evaluate(EvaluationContext&) const override; void SetAbsolute(bool value) { @@ -79,7 +79,7 @@ class Path final : public Expression { public: Path(Expression*, LocationPath*); ~Path() override; - void Trace(Visitor*) override; + void Trace(Visitor*) const override; Value Evaluate(EvaluationContext&) const override; diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_predicate.cc b/chromium/third_party/blink/renderer/core/xml/xpath_predicate.cc index 51eb97f7250..e94e6ddded3 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_predicate.cc +++ b/chromium/third_party/blink/renderer/core/xml/xpath_predicate.cc @@ -38,7 +38,7 @@ namespace xpath { Number::Number(double value) : value_(value) {} -void Number::Trace(Visitor* visitor) { +void Number::Trace(Visitor* visitor) const { visitor->Trace(value_); Expression::Trace(visitor); } @@ -49,7 +49,7 @@ Value Number::Evaluate(EvaluationContext&) const { StringExpression::StringExpression(const String& value) : value_(value) {} -void StringExpression::Trace(Visitor* visitor) { +void StringExpression::Trace(Visitor* visitor) const { visitor->Trace(value_); Expression::Trace(visitor); } @@ -262,7 +262,7 @@ Value Union::Evaluate(EvaluationContext& context) const { Predicate::Predicate(Expression* expr) : expr_(expr) {} -void Predicate::Trace(Visitor* visitor) { +void Predicate::Trace(Visitor* visitor) const { visitor->Trace(expr_); } diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_predicate.h b/chromium/third_party/blink/renderer/core/xml/xpath_predicate.h index a9846d6646b..f6b47e8bf4e 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_predicate.h +++ b/chromium/third_party/blink/renderer/core/xml/xpath_predicate.h @@ -39,7 +39,7 @@ namespace xpath { class CORE_EXPORT Number final : public Expression { public: explicit Number(double); - void Trace(Visitor*) override; + void Trace(Visitor*) const override; private: Value Evaluate(EvaluationContext&) const override; @@ -51,7 +51,7 @@ class CORE_EXPORT Number final : public Expression { class CORE_EXPORT StringExpression final : public Expression { public: explicit StringExpression(const String&); - void Trace(Visitor*) override; + void Trace(Visitor*) const override; private: Value Evaluate(EvaluationContext&) const override; @@ -120,7 +120,7 @@ class Union final : public Expression { class Predicate final : public GarbageCollected<Predicate> { public: explicit Predicate(Expression*); - void Trace(Visitor*); + void Trace(Visitor*) const; bool Evaluate(EvaluationContext&) const; bool IsContextPositionSensitive() const { diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_result.cc b/chromium/third_party/blink/renderer/core/xml/xpath_result.cc index 659e8d30604..9c0e7f58f29 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_result.cc +++ b/chromium/third_party/blink/renderer/core/xml/xpath_result.cc @@ -57,7 +57,7 @@ XPathResult::XPathResult(xpath::EvaluationContext& context, NOTREACHED(); } -void XPathResult::Trace(Visitor* visitor) { +void XPathResult::Trace(Visitor* visitor) const { visitor->Trace(value_); visitor->Trace(node_set_); visitor->Trace(document_); diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_result.h b/chromium/third_party/blink/renderer/core/xml/xpath_result.h index 5d8de537cd2..06dd4538f52 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_result.h +++ b/chromium/third_party/blink/renderer/core/xml/xpath_result.h @@ -77,7 +77,7 @@ class XPathResult final : public ScriptWrappable { const xpath::Value& GetValue() const { return value_; } - void Trace(Visitor*) override; + void Trace(Visitor*) const override; private: xpath::NodeSet& GetNodeSet() { return *node_set_; } diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_step.cc b/chromium/third_party/blink/renderer/core/xml/xpath_step.cc index 1c816c3bab0..bf7cc05093d 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_step.cc +++ b/chromium/third_party/blink/renderer/core/xml/xpath_step.cc @@ -51,7 +51,7 @@ Step::Step(Axis axis, Step::~Step() = default; -void Step::Trace(Visitor* visitor) { +void Step::Trace(Visitor* visitor) const { visitor->Trace(node_test_); visitor->Trace(predicates_); ParseNode::Trace(visitor); diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_step.h b/chromium/third_party/blink/renderer/core/xml/xpath_step.h index 44c844188db..5d03a5437bf 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_step.h +++ b/chromium/third_party/blink/renderer/core/xml/xpath_step.h @@ -85,7 +85,7 @@ class Step final : public ParseNode { DCHECK(o.merged_predicates_.IsEmpty()); return *this; } - void Trace(Visitor* visitor) { visitor->Trace(merged_predicates_); } + void Trace(Visitor* visitor) const { visitor->Trace(merged_predicates_); } Kind GetKind() const { return kind_; } const AtomicString& Data() const { return data_; } @@ -110,7 +110,7 @@ class Step final : public ParseNode { Step(Axis, const NodeTest&); Step(Axis, const NodeTest&, HeapVector<Member<Predicate>>&); ~Step() override; - void Trace(Visitor*) override; + void Trace(Visitor*) const override; void Optimize(); diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_value.cc b/chromium/third_party/blink/renderer/core/xml/xpath_value.cc index cafef7929f8..84b3e4dba55 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_value.cc +++ b/chromium/third_party/blink/renderer/core/xml/xpath_value.cc @@ -38,11 +38,11 @@ namespace xpath { const Value::AdoptTag Value::kAdopt = {}; -void ValueData::Trace(Visitor* visitor) { +void ValueData::Trace(Visitor* visitor) const { visitor->Trace(node_set_); } -void Value::Trace(Visitor* visitor) { +void Value::Trace(Visitor* visitor) const { visitor->Trace(data_); } diff --git a/chromium/third_party/blink/renderer/core/xml/xpath_value.h b/chromium/third_party/blink/renderer/core/xml/xpath_value.h index b10c629adce..6a25218cabf 100644 --- a/chromium/third_party/blink/renderer/core/xml/xpath_value.h +++ b/chromium/third_party/blink/renderer/core/xml/xpath_value.h @@ -46,7 +46,7 @@ class ValueData final : public GarbageCollected<ValueData> { explicit ValueData(const String& string) : string_(string), node_set_(NodeSet::Create()) {} - void Trace(Visitor*); + void Trace(Visitor*) const; NodeSet& GetNodeSet() { return *node_set_; } String string_; @@ -89,7 +89,7 @@ class CORE_EXPORT Value { data_(MakeGarbageCollected<ValueData>()) { data_->GetNodeSet().Append(value); } - void Trace(Visitor*); + void Trace(Visitor*) const; // This is needed to safely implement constructing from bool - with normal // function overloading, any pointer type would match. diff --git a/chromium/third_party/blink/renderer/core/xml/xsl_style_sheet.h b/chromium/third_party/blink/renderer/core/xml/xsl_style_sheet.h index 18da053f9c2..de3667e5c3c 100644 --- a/chromium/third_party/blink/renderer/core/xml/xsl_style_sheet.h +++ b/chromium/third_party/blink/renderer/core/xml/xsl_style_sheet.h @@ -82,7 +82,7 @@ class XSLStyleSheet final : public StyleSheet { KURL BaseURL() const override { return final_url_; } bool IsLoading() const override { return false; } - void Trace(Visitor*) override; + void Trace(Visitor*) const override; private: void LoadChildSheets(); diff --git a/chromium/third_party/blink/renderer/core/xml/xsl_style_sheet_libxslt.cc b/chromium/third_party/blink/renderer/core/xml/xsl_style_sheet_libxslt.cc index 23f535941d8..5376241322b 100644 --- a/chromium/third_party/blink/renderer/core/xml/xsl_style_sheet_libxslt.cc +++ b/chromium/third_party/blink/renderer/core/xml/xsl_style_sheet_libxslt.cc @@ -321,7 +321,7 @@ void XSLStyleSheet::MarkAsProcessed() { stylesheet_doc_taken_ = true; } -void XSLStyleSheet::Trace(Visitor* visitor) { +void XSLStyleSheet::Trace(Visitor* visitor) const { visitor->Trace(owner_node_); visitor->Trace(children_); visitor->Trace(parent_style_sheet_); diff --git a/chromium/third_party/blink/renderer/core/xml/xslt_processor.cc b/chromium/third_party/blink/renderer/core/xml/xslt_processor.cc index 49782f0c144..1549d0a44e6 100644 --- a/chromium/third_party/blink/renderer/core/xml/xslt_processor.cc +++ b/chromium/third_party/blink/renderer/core/xml/xslt_processor.cc @@ -25,7 +25,6 @@ #include "third_party/blink/renderer/core/dom/document_encoding_data.h" #include "third_party/blink/renderer/core/dom/document_fragment.h" #include "third_party/blink/renderer/core/dom/document_init.h" -#include "third_party/blink/renderer/core/dom/dom_implementation.h" #include "third_party/blink/renderer/core/dom/ignore_opens_during_unload_count_incrementer.h" #include "third_party/blink/renderer/core/editing/serializers/serialization.h" #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h" @@ -35,6 +34,7 @@ #include "third_party/blink/renderer/core/frame/local_frame_view.h" #include "third_party/blink/renderer/core/html/html_document.h" #include "third_party/blink/renderer/core/html/html_frame_owner_element.h" +#include "third_party/blink/renderer/core/inspector/console_message.h" #include "third_party/blink/renderer/core/xml/document_xslt.h" #include "third_party/blink/renderer/platform/weborigin/security_origin.h" #include "third_party/blink/renderer/platform/wtf/assertions.h" @@ -68,6 +68,9 @@ Document* XSLTProcessor::CreateDocumentFromSource( const String& source_mime_type, Node* source_node, LocalFrame* frame) { + if (!source_node->GetExecutionContext()) + return nullptr; + KURL url = NullURL(); Document* owner_document = &source_node->GetDocument(); if (owner_document == source_node) @@ -100,13 +103,21 @@ Document* XSLTProcessor::CreateDocumentFromSource( DocumentInit::Create() .WithURL(url) .WithTypeFrom(mime_type) - .WithContextDocument(owner_document->ContextDocument()); - Document* document = DOMImplementation::createDocument(init); - DocumentEncodingData data; - data.SetEncoding(source_encoding.IsEmpty() - ? UTF8Encoding() - : WTF::TextEncoding(source_encoding)); - document->SetEncodingData(data); + .WithExecutionContext(owner_document->GetExecutionContext()); + Document* document = init.CreateDocument(); + auto parsed_source_encoding = source_encoding.IsEmpty() + ? UTF8Encoding() + : WTF::TextEncoding(source_encoding); + if (parsed_source_encoding.IsValid()) { + DocumentEncodingData data; + data.SetEncoding(parsed_source_encoding); + document->SetEncodingData(data); + } else { + document_->AddConsoleMessage(MakeGarbageCollected<ConsoleMessage>( + mojom::blink::ConsoleMessageSource::kXml, + mojom::blink::ConsoleMessageLevel::kWarning, + String("Document encoding not valid: ") + source_encoding)); + } document->SetContent(document_source); return document; } @@ -166,7 +177,7 @@ void XSLTProcessor::reset() { parameters_.clear(); } -void XSLTProcessor::Trace(Visitor* visitor) { +void XSLTProcessor::Trace(Visitor* visitor) const { visitor->Trace(stylesheet_); visitor->Trace(stylesheet_root_node_); visitor->Trace(document_); diff --git a/chromium/third_party/blink/renderer/core/xml/xslt_processor.h b/chromium/third_party/blink/renderer/core/xml/xslt_processor.h index 2030e632e54..e501cf17c37 100644 --- a/chromium/third_party/blink/renderer/core/xml/xslt_processor.h +++ b/chromium/third_party/blink/renderer/core/xml/xslt_processor.h @@ -87,7 +87,7 @@ class XSLTProcessor final : public ScriptWrappable { typedef HashMap<String, String> ParameterMap; - void Trace(Visitor*) override; + void Trace(Visitor*) const override; private: Member<XSLStyleSheet> stylesheet_; |