Index: third_party/WebKit/Source/core/editing/VisibleSelection.h |
diff --git a/third_party/WebKit/Source/core/editing/VisibleSelection.h b/third_party/WebKit/Source/core/editing/VisibleSelection.h |
index 2a678279ed7fe7e8c0241e62f86c6ca88c6c70fc..9ece79726d5d6c2095e350c96e878dd7c410c4c4 100644 |
--- a/third_party/WebKit/Source/core/editing/VisibleSelection.h |
+++ b/third_party/WebKit/Source/core/editing/VisibleSelection.h |
@@ -39,6 +39,7 @@ |
namespace blink { |
class LayoutPoint; |
+class SelectionAdjuster; |
// TODO(yosin) We should use capitalized name instead of |SEL_DEFAULT_AFFINITY|. |
const TextAffinity SEL_DEFAULT_AFFINITY = TextAffinity::Downstream; // NOLINT |
@@ -74,8 +75,6 @@ public: |
explicit VisibleSelectionTemplate(const PositionWithAffinityTemplate<Strategy>&, bool isDirectional = false); |
- static VisibleSelectionTemplate<Strategy> createWithoutValidation(const PositionTemplate<Strategy>& base, const PositionTemplate<Strategy>& extent, const PositionTemplate<Strategy>& start, const PositionTemplate<Strategy>& end, TextAffinity, bool isDirectional); |
- |
VisibleSelectionTemplate(const VisibleSelectionTemplate&); |
VisibleSelectionTemplate& operator=(const VisibleSelectionTemplate&); |
@@ -165,7 +164,7 @@ public: |
void setEndRespectingGranularity(TextGranularity, EWordSide = RightWordIfOnBoundary); |
private: |
- VisibleSelectionTemplate(const PositionTemplate<Strategy>& base, const PositionTemplate<Strategy>& extent, const PositionTemplate<Strategy>& start, const PositionTemplate<Strategy>& end, TextAffinity, bool isDirectional); |
+ friend class SelectionAdjuster; |
void validate(TextGranularity = CharacterGranularity); |
@@ -207,6 +206,16 @@ extern template class CORE_EXTERN_TEMPLATE_EXPORT VisibleSelectionTemplate<Editi |
using VisibleSelection = VisibleSelectionTemplate<EditingStrategy>; |
using VisibleSelectionInComposedTree = VisibleSelectionTemplate<EditingInComposedTreeStrategy>; |
+// TODO(yosin): We should move |SelectionAdjuster| to its own file. |
+class SelectionAdjuster final { |
+ STATIC_ONLY(SelectionAdjuster); |
+public: |
+ static void adjustSelectionInComposedTree(VisibleSelectionInComposedTree*, const VisibleSelection&); |
+ static void adjustSelectionInDOMTree(VisibleSelection*, const VisibleSelectionInComposedTree&); |
+ static void adjustSelectionToAvoidCrossingShadowBoundaries(VisibleSelection*); |
+ static void adjustSelectionToAvoidCrossingShadowBoundaries(VisibleSelectionInComposedTree*); |
+}; |
+ |
// TODO(yosin): We should use |operator==()| instead of |
// |equalSelectionsInDOMTree()|. |
bool equalSelectionsInDOMTree(const VisibleSelection&, const VisibleSelection&); |