summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.h')
-rw-r--r--chromium/third_party/blink/renderer/core/xml/parser/xml_document_parser.h21
1 files changed, 20 insertions, 1 deletions
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 823977256d3..e832a3e7657 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(blink::Visitor*) override;
+ void Trace(Visitor*) override;
// Exposed for callbacks:
void HandleError(XMLErrors::ErrorType, const char* message, TextPosition);
@@ -108,6 +108,17 @@ class XMLDocumentParser final : public ScriptableDocumentParser,
public:
virtual ~PendingCallback() = default;
virtual void Call(XMLDocumentParser*) = 0;
+
+ TextPosition GetTextPosition() const { return text_position_; }
+ OrdinalNumber LineNumber() const { return text_position_.line_; }
+ OrdinalNumber ColumnNumber() const { return text_position_.column_; }
+
+ protected:
+ PendingCallback(TextPosition text_position)
+ : text_position_(text_position) {}
+
+ private:
+ TextPosition text_position_;
};
void SetScriptStartPosition(TextPosition);
@@ -117,11 +128,14 @@ class XMLDocumentParser final : public ScriptableDocumentParser,
void insert(const String&) override { NOTREACHED(); }
void Append(const String&) override;
void Finish() override;
+ void ExecuteScriptsWaitingForResources() final;
bool IsWaitingForScripts() const override;
void StopParsing() override;
void Detach() override;
OrdinalNumber LineNumber() const override;
OrdinalNumber ColumnNumber() const;
+ void DidAddPendingParserBlockingStylesheet() final;
+ void DidLoadAllPendingParserBlockingStylesheets() final;
// XMLParserScriptRunnerHost
void NotifyScriptExecuted() override;
@@ -173,6 +187,8 @@ class XMLDocumentParser final : public ScriptableDocumentParser,
void DoWrite(const String&);
void DoEnd();
+ void CheckIfBlockingStyleSheetAdded();
+
SegmentedString original_source_for_transform_;
xmlParserCtxtPtr Context() const {
@@ -180,6 +196,7 @@ class XMLDocumentParser final : public ScriptableDocumentParser,
}
scoped_refptr<XMLParserContext> context_;
Deque<std::unique_ptr<PendingCallback>> pending_callbacks_;
+ std::unique_ptr<PendingCallback> callback_;
Vector<xmlChar> buffered_text_;
Member<ContainerNode> current_node_;
@@ -196,6 +213,8 @@ class XMLDocumentParser final : public ScriptableDocumentParser,
bool parser_paused_;
bool requesting_script_;
bool finish_called_;
+ bool waiting_for_stylesheets_ = false;
+ bool added_pending_parser_blocking_stylesheet_ = false;
XMLErrors xml_errors_;