New issue
Advanced search Search tips

Issue 680384 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task

Blocked on:
issue 682367

Blocking:
issue 625533



Sign in to add a comment

Re-architecture caret implementation

Project Member Reported by yosin@chromium.org, Jan 12 2017

Issue description

FrameCaret and DragCaretController, should be renamed to DragCaret, are implemented with layer violation, both paint/ and layout/ code refer this and they use paint/ and layout/. We should split FrameCaret and DragCaret appropriately to avoid layer violation by defining proper API among them.
 

Comment 1 by yosin@chromium.org, Jan 12 2017

Blocking: 625533
Summary: Re-architecture caret implementation (was: Re-architecture care implementation)
Project Member

Comment 3 by bugdroid1@chromium.org, Jan 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/05fd6942317394a4dbc4aae9fddc5511bb1fe00b

commit 05fd6942317394a4dbc4aae9fddc5511bb1fe00b
Author: yosin <yosin@chromium.org>
Date: Thu Jan 12 11:25:46 2017

Get rid of CaretBase::m_caretLocalRect

This patch gets rid of |CaretBase::m_caretLocalRect| to reduce number of states
in |CaretBase| to simplify class hiarachity for improving code health.

After this patch, |CaretBase| represents |DisplayItemClient| for caret.
Following patch will rename |CaretBase| to |DisplayCaretItemClient| and
|DragCaretController|, which should rename to |DragCaret| is derived from
|DisplayCaretItemClient| and makes |DisplayCaretItemClient| had no public
member except for destructor.

This patch is a preparation of [1]

[1] http://crrev.com/1958093002 On-demand visible selection canonicalizataion

BUG=680384
TEST=n/a; no behavior changes

Review-Url: https://codereview.chromium.org/2623053006
Cr-Commit-Position: refs/heads/master@{#443207}

[modify] https://crrev.com/05fd6942317394a4dbc4aae9fddc5511bb1fe00b/third_party/WebKit/Source/core/editing/CaretBase.cpp
[modify] https://crrev.com/05fd6942317394a4dbc4aae9fddc5511bb1fe00b/third_party/WebKit/Source/core/editing/CaretBase.h
[modify] https://crrev.com/05fd6942317394a4dbc4aae9fddc5511bb1fe00b/third_party/WebKit/Source/core/editing/DragCaretController.cpp
[modify] https://crrev.com/05fd6942317394a4dbc4aae9fddc5511bb1fe00b/third_party/WebKit/Source/core/editing/DragCaretController.h
[modify] https://crrev.com/05fd6942317394a4dbc4aae9fddc5511bb1fe00b/third_party/WebKit/Source/core/editing/FrameCaret.cpp

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/716fc5a4985347e1b2148b481278d0d37d2bb3d3

commit 716fc5a4985347e1b2148b481278d0d37d2bb3d3
Author: yosin <yosin@chromium.org>
Date: Mon Jan 16 09:22:16 2017

Make FrameCaret to contain CaretBase

This patch makes |FrameCaret| to contain |CaretBase| rather than to be derived
it as similar as |DragCaretController| for improving code health.

This patch also makes |CaretBase| not to be a garbage collected object since
it doesn't hold garbage collected objects since [1].

This is a follow-up patch of [2] and suggested by [3].

[1] http://crrev.com/2623053006 Get rid of CaretBase::m_caretLocalRect
[2] http://crrev.com/2623053006 Get rid of CaretBase::m_caretLocalRect
[3] http://crrev.com/2635433003 Make DragCaretController to be derived from
CaretBase

BUG=680384
TEST=n/a; no behavior changes

Review-Url: https://codereview.chromium.org/2627423002
Cr-Commit-Position: refs/heads/master@{#443860}

[modify] https://crrev.com/716fc5a4985347e1b2148b481278d0d37d2bb3d3/third_party/WebKit/Source/core/editing/CaretBase.cpp
[modify] https://crrev.com/716fc5a4985347e1b2148b481278d0d37d2bb3d3/third_party/WebKit/Source/core/editing/CaretBase.h
[modify] https://crrev.com/716fc5a4985347e1b2148b481278d0d37d2bb3d3/third_party/WebKit/Source/core/editing/DragCaretController.cpp
[modify] https://crrev.com/716fc5a4985347e1b2148b481278d0d37d2bb3d3/third_party/WebKit/Source/core/editing/DragCaretController.h
[modify] https://crrev.com/716fc5a4985347e1b2148b481278d0d37d2bb3d3/third_party/WebKit/Source/core/editing/FrameCaret.cpp
[modify] https://crrev.com/716fc5a4985347e1b2148b481278d0d37d2bb3d3/third_party/WebKit/Source/core/editing/FrameCaret.h
[modify] https://crrev.com/716fc5a4985347e1b2148b481278d0d37d2bb3d3/third_party/WebKit/Source/core/editing/FrameSelection.cpp

Project Member

Comment 5 by bugdroid1@chromium.org, Jan 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b9cad72bb3e704665776d2a0b484beab55a50d39

commit b9cad72bb3e704665776d2a0b484beab55a50d39
Author: yosin <yosin@chromium.org>
Date: Mon Jan 23 09:39:33 2017

Move CaretBase::invalidateCaretRect() to DragCaretController

This patch moves |CaretBase::invalidateCaretRect()| to |DragCaretController|
class since this member function is only called in |DragCaretController|
to reduce public members from |CareBase| class for improving code health.

BUG=680384
TEST=n/a; no behavior changes

Review-Url: https://codereview.chromium.org/2650633002
Cr-Commit-Position: refs/heads/master@{#445344}

[modify] https://crrev.com/b9cad72bb3e704665776d2a0b484beab55a50d39/third_party/WebKit/Source/core/editing/CaretBase.cpp
[modify] https://crrev.com/b9cad72bb3e704665776d2a0b484beab55a50d39/third_party/WebKit/Source/core/editing/CaretBase.h
[modify] https://crrev.com/b9cad72bb3e704665776d2a0b484beab55a50d39/third_party/WebKit/Source/core/editing/DragCaretController.cpp
[modify] https://crrev.com/b9cad72bb3e704665776d2a0b484beab55a50d39/third_party/WebKit/Source/core/editing/DragCaretController.h

Comment 6 by yosin@chromium.org, Jan 30 2017

Blockedon: 682367

Comment 7 by yosin@chromium.org, Mar 25 2017

Labels: Type-Task

Comment 8 by yosin@chromium.org, May 19 2017

Status: Fixed (was: Started)

Comment 9 by yosin@chromium.org, May 19 2017

Owner: ----
Status: Available (was: Fixed)
Keep "Available" until we remove VisiblePosition usage in FrameCaret and DragCaret
Project Member

Comment 10 by sheriffbot@chromium.org, May 21 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 11 by yosin@chromium.org, May 28 2018

Status: Available (was: Untriaged)

Sign in to add a comment