Bug 1728955: part 3) Add logging to `nsBaseClipboard`. r=masayuki
[gecko.git] / parser / html / nsHtml5Speculation.h
blob3230615213c8ba2778f2cbf89e10fd844f44e402
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/. */
5 #ifndef nsHtml5Speculation_h
6 #define nsHtml5Speculation_h
8 #include "nsHtml5OwningUTF16Buffer.h"
9 #include "nsAHtml5TreeBuilderState.h"
10 #include "nsHtml5TreeOperation.h"
11 #include "nsAHtml5TreeOpSink.h"
12 #include "nsTArray.h"
13 #include "mozilla/Attributes.h"
14 #include "mozilla/UniquePtr.h"
16 class nsHtml5Speculation final : public nsAHtml5TreeOpSink {
17 public:
18 nsHtml5Speculation(nsHtml5OwningUTF16Buffer* aBuffer, int32_t aStart,
19 int32_t aStartLineNumber,
20 nsAHtml5TreeBuilderState* aSnapshot);
22 ~nsHtml5Speculation();
24 nsHtml5OwningUTF16Buffer* GetBuffer() { return mBuffer; }
26 int32_t GetStart() { return mStart; }
28 int32_t GetStartLineNumber() { return mStartLineNumber; }
30 nsAHtml5TreeBuilderState* GetSnapshot() { return mSnapshot.get(); }
32 /**
33 * Flush the operations from the tree operations from the argument
34 * queue unconditionally.
36 virtual void MoveOpsFrom(nsTArray<nsHtml5TreeOperation>& aOpQueue) override;
38 void FlushToSink(nsAHtml5TreeOpSink* aSink);
40 private:
41 /**
42 * The first buffer in the pending UTF-16 buffer queue
44 RefPtr<nsHtml5OwningUTF16Buffer> mBuffer;
46 /**
47 * The start index of this speculation in the first buffer
49 int32_t mStart;
51 /**
52 * The current line number at the start of the speculation
54 int32_t mStartLineNumber;
56 mozilla::UniquePtr<nsAHtml5TreeBuilderState> mSnapshot;
58 nsTArray<nsHtml5TreeOperation> mOpQueue;
61 #endif // nsHtml5Speculation_h