diff options
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.h | 21 |
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_; |