summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/layout/layout_text_fragment.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-05-16 09:59:13 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-05-20 10:28:53 +0000
commit6c11fb357ec39bf087b8b632e2b1e375aef1b38b (patch)
treec8315530db18a8ee566521c39ab8a6af4f72bc03 /chromium/third_party/blink/renderer/core/layout/layout_text_fragment.cc
parent3ffaed019d0772e59d6cdb2d0d32fe4834c31f72 (diff)
downloadqtwebengine-chromium-6c11fb357ec39bf087b8b632e2b1e375aef1b38b.tar.gz
BASELINE: Update Chromium to 74.0.3729.159
Change-Id: I8d2497da544c275415aedd94dd25328d555de811 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/layout/layout_text_fragment.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/layout/layout_text_fragment.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/chromium/third_party/blink/renderer/core/layout/layout_text_fragment.cc b/chromium/third_party/blink/renderer/core/layout/layout_text_fragment.cc
index 54ece45472f..3c629a72c0c 100644
--- a/chromium/third_party/blink/renderer/core/layout/layout_text_fragment.cc
+++ b/chromium/third_party/blink/renderer/core/layout/layout_text_fragment.cc
@@ -42,7 +42,9 @@ LayoutTextFragment::LayoutTextFragment(Node* node,
fragment_length_(length),
is_remaining_text_layout_object_(false),
content_string_(str),
- first_letter_pseudo_element_(nullptr) {}
+ first_letter_pseudo_element_(nullptr) {
+ is_text_fragment_ = true;
+}
LayoutTextFragment::~LayoutTextFragment() {
DCHECK(!first_letter_pseudo_element_);
@@ -202,12 +204,18 @@ void LayoutTextFragment::UpdateHitTestResult(HitTestResult& result,
}
Position LayoutTextFragment::PositionForCaretOffset(unsigned offset) const {
- DCHECK_LE(offset, FragmentLength());
+ // TODO(layout-dev): Make the following DCHECK always enabled after we
+ // properly support 'text-transform' changing text length.
+#if DCHECK_IS_ON()
+ if (StyleRef().TextTransform() == ETextTransform::kNone)
+ DCHECK_LE(offset, FragmentLength());
+#endif
const Text* node = AssociatedTextNode();
if (!node)
return Position();
- // TODO(layout-dev): Support offset change due to text-transform.
- return Position(node, Start() + offset);
+ // TODO(layout-dev): Properly support offset change due to text-transform.
+ const unsigned clamped_offset = std::min(offset, FragmentLength());
+ return Position(node, Start() + clamped_offset);
}
base::Optional<unsigned> LayoutTextFragment::CaretOffsetForPosition(