summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/xml
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/third_party/blink/renderer/core/xml
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-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')
-rw-r--r--chromium/third_party/blink/renderer/core/xml/document_xpath_evaluator.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/document_xpath_evaluator.h2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/document_xslt.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/xml/document_xslt.h2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/dom_parser.cc16
-rw-r--r--chromium/third_party/blink/renderer/core/xml/dom_parser.h2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/native_xpath_ns_resolver.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/native_xpath_ns_resolver.h2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc9
-rw-r--r--chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.h3
-rw-r--r--chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser_test.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/parser/xml_errors.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/xml/parser/xml_errors.h2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_expression.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_expression.h2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_expression_node.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_expression_node.h4
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_functions_test.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_node_set.h2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_path.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_path.h6
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_predicate.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_predicate.h6
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_result.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_result.h2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_step.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_step.h4
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_value.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xpath_value.h4
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xsl_style_sheet.h2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xsl_style_sheet_libxslt.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xslt_processor.cc29
-rw-r--r--chromium/third_party/blink/renderer/core/xml/xslt_processor.h2
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_;