Index: Source/core/dom/MarkerPseudoElement.h |
diff --git a/Source/core/dom/MarkerPseudoElement.h b/Source/core/dom/MarkerPseudoElement.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1a9cea03927b27a533350d42caef278dc9692654 |
--- /dev/null |
+++ b/Source/core/dom/MarkerPseudoElement.h |
@@ -0,0 +1,44 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef MarkerPseudoElement_h |
+#define MarkerPseudoElement_h |
+ |
+#include "core/dom/PseudoElement.h" |
+ |
+namespace blink { |
+ |
+class RenderBlockFlow; |
+class RenderListMarker; |
+ |
+class MarkerPseudoElement final : public PseudoElement { |
+ WTF_MAKE_NONCOPYABLE(MarkerPseudoElement); |
+public: |
+ static PassRefPtrWillBeRawPtr<MarkerPseudoElement> create(Element* parent) |
+ { |
+ return adoptRefWillBeNoop(new MarkerPseudoElement(parent)); |
+ } |
+ |
+ virtual ~MarkerPseudoElement(); |
+ |
+ virtual void attach(const AttachContext& = AttachContext()) override; |
+ virtual RenderObject* createRenderer(RenderStyle* style) override; |
+ |
+ // FIXME: Make these private and file static when old code is removed. |
+ static RenderObject* getParentOfFirstLineBox(RenderBlockFlow* curr, const RenderObject* marker); |
+ static RenderObject* firstNonMarkerChild(RenderObject* parent); |
+ |
+private: |
+ explicit MarkerPseudoElement(Element*); |
+ |
+ virtual void didRecalcStyle(StyleRecalcChange) override; |
+ |
+ void attachListMarkerRenderer(); |
+}; |
+ |
+DEFINE_ELEMENT_TYPE_CASTS(MarkerPseudoElement, isMarkerPseudoElement()); |
+ |
+} // namespace blink |
+ |
+#endif // MarkerPseudoElement_h |