summaryrefslogtreecommitdiffstats
path: root/parser/html/nsAHtml5TreeOpSink.h
blob: a09971a2e88e8da8af2610b86f6745049108f473 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef nsAHtml5TreeOpSink_h
#define nsAHtml5TreeOpSink_h

#include "nsTArrayForwardDeclare.h"

class nsHtml5TreeOperation;

/**
 * The purpose of this interface is to connect a tree op executor
 * (main-thread case), a tree op stage (non-speculative off-the-main-thread
 * case) or a speculation (speculative case).
 */
class nsAHtml5TreeOpSink {
 public:
  /**
   * Flush the operations from the tree operations from the argument
   * queue into this sink unconditionally.
   *
   * Returns `true` on success and `false` on OOM.
   */
  [[nodiscard]] virtual bool MoveOpsFrom(
      nsTArray<nsHtml5TreeOperation>& aOpQueue) = 0;
};

#endif /* nsAHtml5TreeOpSink_h */