diff -r 000000000000 -r 6474c204b198 parser/html/nsHtml5Speculation.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/parser/html/nsHtml5Speculation.h Wed Dec 31 06:09:35 2014 +0100
@@ -0,0 +1,75 @@
+/* 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 nsHtml5Speculation_h
+#define nsHtml5Speculation_h
+
+#include "nsHtml5OwningUTF16Buffer.h"
+#include "nsAHtml5TreeBuilderState.h"
+#include "nsHtml5TreeOperation.h"
+#include "nsAHtml5TreeOpSink.h"
+#include "nsTArray.h"
+#include "nsAutoPtr.h"
+#include "mozilla/Attributes.h"
+
+class nsHtml5Speculation MOZ_FINAL : public nsAHtml5TreeOpSink
+{
+ public:
+ nsHtml5Speculation(nsHtml5OwningUTF16Buffer* aBuffer,
+ int32_t aStart,
+ int32_t aStartLineNumber,
+ nsAHtml5TreeBuilderState* aSnapshot);
+
+ ~nsHtml5Speculation();
+
+ nsHtml5OwningUTF16Buffer* GetBuffer()
+ {
+ return mBuffer;
+ }
+
+ int32_t GetStart()
+ {
+ return mStart;
+ }
+
+ int32_t GetStartLineNumber()
+ {
+ return mStartLineNumber;
+ }
+
+ nsAHtml5TreeBuilderState* GetSnapshot()
+ {
+ return mSnapshot;
+ }
+
+ /**
+ * Flush the operations from the tree operations from the argument
+ * queue unconditionally.
+ */
+ virtual void MoveOpsFrom(nsTArray& aOpQueue);
+
+ void FlushToSink(nsAHtml5TreeOpSink* aSink);
+
+ private:
+ /**
+ * The first buffer in the pending UTF-16 buffer queue
+ */
+ nsRefPtr mBuffer;
+
+ /**
+ * The start index of this speculation in the first buffer
+ */
+ int32_t mStart;
+
+ /**
+ * The current line number at the start of the speculation
+ */
+ int32_t mStartLineNumber;
+
+ nsAutoPtr mSnapshot;
+
+ nsTArray mOpQueue;
+};
+
+#endif // nsHtml5Speculation_h