Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/parser/html/nsHtml5Speculation.h
Line
Count
Source (jump to first uncovered line)
1
/* This Source Code Form is subject to the terms of the Mozilla Public
2
 * License, v. 2.0. If a copy of the MPL was not distributed with this
3
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5
#ifndef nsHtml5Speculation_h
6
#define nsHtml5Speculation_h
7
8
#include "nsHtml5OwningUTF16Buffer.h"
9
#include "nsAHtml5TreeBuilderState.h"
10
#include "nsHtml5TreeOperation.h"
11
#include "nsAHtml5TreeOpSink.h"
12
#include "nsTArray.h"
13
#include "nsAutoPtr.h"
14
#include "mozilla/Attributes.h"
15
16
class nsHtml5Speculation final : public nsAHtml5TreeOpSink
17
{
18
public:
19
  nsHtml5Speculation(nsHtml5OwningUTF16Buffer* aBuffer,
20
                     int32_t aStart,
21
                     int32_t aStartLineNumber,
22
                     nsAHtml5TreeBuilderState* aSnapshot);
23
24
  ~nsHtml5Speculation();
25
26
0
  nsHtml5OwningUTF16Buffer* GetBuffer() { return mBuffer; }
27
28
0
  int32_t GetStart() { return mStart; }
29
30
0
  int32_t GetStartLineNumber() { return mStartLineNumber; }
31
32
0
  nsAHtml5TreeBuilderState* GetSnapshot() { return mSnapshot; }
33
34
  /**
35
   * Flush the operations from the tree operations from the argument
36
   * queue unconditionally.
37
   */
38
  virtual void MoveOpsFrom(nsTArray<nsHtml5TreeOperation>& aOpQueue) override;
39
40
  void FlushToSink(nsAHtml5TreeOpSink* aSink);
41
42
private:
43
  /**
44
   * The first buffer in the pending UTF-16 buffer queue
45
   */
46
  RefPtr<nsHtml5OwningUTF16Buffer> mBuffer;
47
48
  /**
49
   * The start index of this speculation in the first buffer
50
   */
51
  int32_t mStart;
52
53
  /**
54
   * The current line number at the start of the speculation
55
   */
56
  int32_t mStartLineNumber;
57
58
  nsAutoPtr<nsAHtml5TreeBuilderState> mSnapshot;
59
60
  nsTArray<nsHtml5TreeOperation> mOpQueue;
61
};
62
63
#endif // nsHtml5Speculation_h