Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(647)

Unified Diff: third_party/WebKit/Source/core/editing/VisibleSelection.h

Issue 2374183004: Make non-null VisibleSelections creatable only by createVisibleSelection[Deprecated] (Closed)
Patch Set: Fix mac compile error Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 b6c4cb63fd4be120dd805e2a320931537ac8637b..674d047e0132b72c2283c44f6732c03f4ecb5c03 100644
--- a/third_party/WebKit/Source/core/editing/VisibleSelection.h
+++ b/third_party/WebKit/Source/core/editing/VisibleSelection.h
@@ -49,18 +49,14 @@ class CORE_TEMPLATE_CLASS_EXPORT VisibleSelectionTemplate {
DISALLOW_NEW();
public:
VisibleSelectionTemplate();
- VisibleSelectionTemplate(const PositionTemplate<Strategy>&, TextAffinity, bool isDirectional = false);
- VisibleSelectionTemplate(const PositionTemplate<Strategy>& base, const PositionTemplate<Strategy>& extent, TextAffinity = SelDefaultAffinity, bool isDirectional = false);
- explicit VisibleSelectionTemplate(const EphemeralRangeTemplate<Strategy>&, TextAffinity = SelDefaultAffinity, bool isDirectional = false);
-
- explicit VisibleSelectionTemplate(const VisiblePositionTemplate<Strategy>&, bool isDirectional = false);
- VisibleSelectionTemplate(const VisiblePositionTemplate<Strategy>&, const VisiblePositionTemplate<Strategy>&, bool isDirectional = false);
-
- explicit VisibleSelectionTemplate(const PositionWithAffinityTemplate<Strategy>&, bool isDirectional = false);
-
VisibleSelectionTemplate(const VisibleSelectionTemplate&);
VisibleSelectionTemplate& operator=(const VisibleSelectionTemplate&);
+ // Note: |create()| should be used only by |createVisibleSelection| and
+ // |selectionFromContentsOfNode|.
+ // TODO(xiaochengh): Use enum class instead of boolean parameter.
yosin_UTC9 2016/09/30 01:20:35 Once Selection class introduced, we don't need to
+ static VisibleSelectionTemplate create(const PositionTemplate<Strategy>& base, const PositionTemplate<Strategy>& extent, TextAffinity, bool isDirectional);
+
static VisibleSelectionTemplate selectionFromContentsOfNode(Node*);
SelectionType getSelectionType() const { return m_selectionType; }
@@ -139,6 +135,8 @@ public:
private:
friend class SelectionAdjuster;
+ VisibleSelectionTemplate(const PositionTemplate<Strategy>& base, const PositionTemplate<Strategy>& extent, TextAffinity, bool isDirectional);
+
void validate(TextGranularity = CharacterGranularity);
// Support methods for validate()
@@ -184,6 +182,37 @@ extern template class CORE_EXTERN_TEMPLATE_EXPORT VisibleSelectionTemplate<Editi
using VisibleSelection = VisibleSelectionTemplate<EditingStrategy>;
using VisibleSelectionInFlatTree = VisibleSelectionTemplate<EditingInFlatTreeStrategy>;
+// TODO(xiaochengh): Introduce builder class to get rid of these overloads.
+CORE_EXPORT VisibleSelection createVisibleSelection(const Position&, TextAffinity, bool isDirectional = false);
+CORE_EXPORT VisibleSelection createVisibleSelection(const Position& base, const Position& extent, TextAffinity = SelDefaultAffinity, bool isDirectional = false);
+CORE_EXPORT VisibleSelection createVisibleSelection(const EphemeralRange&, TextAffinity = SelDefaultAffinity, bool isDirectional = false);
+CORE_EXPORT VisibleSelection createVisibleSelection(const VisiblePosition&, bool isDirectional = false);
+CORE_EXPORT VisibleSelection createVisibleSelection(const VisiblePosition&, const VisiblePosition&, bool isDirectional = false);
+CORE_EXPORT VisibleSelection createVisibleSelection(const PositionWithAffinity&, bool isDirectional = false);
+
+CORE_EXPORT VisibleSelectionInFlatTree createVisibleSelection(const PositionInFlatTree&, TextAffinity, bool isDirectional = false);
+CORE_EXPORT VisibleSelectionInFlatTree createVisibleSelection(const PositionInFlatTree& base, const PositionInFlatTree& extent, TextAffinity = SelDefaultAffinity, bool isDirectional = false);
+CORE_EXPORT VisibleSelectionInFlatTree createVisibleSelection(const EphemeralRangeInFlatTree&, TextAffinity = SelDefaultAffinity, bool isDirectional = false);
+CORE_EXPORT VisibleSelectionInFlatTree createVisibleSelection(const VisiblePositionInFlatTree&, bool isDirectional = false);
+CORE_EXPORT VisibleSelectionInFlatTree createVisibleSelection(const VisiblePositionInFlatTree&, const VisiblePositionInFlatTree&, bool isDirectional = false);
+CORE_EXPORT VisibleSelectionInFlatTree createVisibleSelection(const PositionInFlatTreeWithAffinity&, bool isDirectional = false);
+
+// Callers of these functions should ensure clean layout by themselves and then
+// switch to the proper versions (to be introduced).
+CORE_EXPORT VisibleSelection createVisibleSelectionDeprecated(const Position&, TextAffinity, bool isDirectional = false);
+CORE_EXPORT VisibleSelection createVisibleSelectionDeprecated(const Position& base, const Position& extent, TextAffinity = SelDefaultAffinity, bool isDirectional = false);
+CORE_EXPORT VisibleSelection createVisibleSelectionDeprecated(const EphemeralRange&, TextAffinity = SelDefaultAffinity, bool isDirectional = false);
+CORE_EXPORT VisibleSelection createVisibleSelectionDeprecated(const VisiblePosition&, bool isDirectional = false);
+CORE_EXPORT VisibleSelection createVisibleSelectionDeprecated(const VisiblePosition&, const VisiblePosition&, bool isDirectional = false);
+CORE_EXPORT VisibleSelection createVisibleSelectionDeprecated(const PositionWithAffinity&, bool isDirectional = false);
+
+CORE_EXPORT VisibleSelectionInFlatTree createVisibleSelectionDeprecated(const PositionInFlatTree&, TextAffinity, bool isDirectional = false);
+CORE_EXPORT VisibleSelectionInFlatTree createVisibleSelectionDeprecated(const PositionInFlatTree& base, const PositionInFlatTree& extent, TextAffinity = SelDefaultAffinity, bool isDirectional = false);
+CORE_EXPORT VisibleSelectionInFlatTree createVisibleSelectionDeprecated(const EphemeralRangeInFlatTree&, TextAffinity = SelDefaultAffinity, bool isDirectional = false);
+CORE_EXPORT VisibleSelectionInFlatTree createVisibleSelectionDeprecated(const VisiblePositionInFlatTree&, bool isDirectional = false);
+CORE_EXPORT VisibleSelectionInFlatTree createVisibleSelectionDeprecated(const VisiblePositionInFlatTree&, const VisiblePositionInFlatTree&, bool isDirectional = false);
+CORE_EXPORT VisibleSelectionInFlatTree createVisibleSelectionDeprecated(const PositionInFlatTreeWithAffinity&, bool isDirectional = false);
+
// We don't yet support multi-range selections, so we only ever have one range
// to return.
CORE_EXPORT EphemeralRange firstEphemeralRangeOf(const VisibleSelection&);

Powered by Google App Engine
This is Rietveld 408576698