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..650a7f479050445a27510959f415042a91bde4d3 |
--- /dev/null |
+++ b/Source/core/dom/MarkerPseudoElement.h |
@@ -0,0 +1,50 @@ |
+// 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(); |
+ |
+ void attach(const AttachContext& = AttachContext()) override; |
+ void removeListMarker(); |
+ |
+ RenderObject* createRenderer(RenderStyle*) 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); |
+ |
+ static PassRefPtr<RenderStyle> styleForListMarkerRenderer(RenderObject&, RenderStyle*); |
+ |
+private: |
+ explicit MarkerPseudoElement(Element*); |
+ |
+ PassRefPtr<RenderStyle> customStyleForRenderer(); |
+ |
+ void didRecalcStyle(StyleRecalcChange) override; |
+ |
+ void attachListMarkerRenderer(); |
+}; |
+ |
+DEFINE_ELEMENT_TYPE_CASTS(MarkerPseudoElement, isMarkerPseudoElement()); |
+ |
+} // namespace blink |
+ |
+#endif // MarkerPseudoElement_h |