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

Issue 2643033005: Make FrameCaret to utilize SynchronousMutationObserver (Closed)

Created:
3 years, 11 months ago by yosin_UTC9
Modified:
3 years, 11 months ago
Reviewers:
yoichio, Xiaocheng
CC:
blink-reviews, chromium-reviews
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Make FrameCaret to utilize SynchronousMutationObserver This patch makes |FrameCaret| to utilize |SynchronousMutationObserver| to simplify DOM mutation by removing call from |FrameSelection| for improving code health and a preparation of [1]. [1] http://crrev.com/2637013002: WIP Make FrameSelection to hold non- canonicalized positions BUG=682878 TEST=n/a; no behavior changes Review-Url: https://codereview.chromium.org/2643033005 Cr-Commit-Position: refs/heads/master@{#445019} Committed: https://chromium.googlesource.com/chromium/src/+/d9ed982647cfc7940ef9f3eee5bf087a894a6133

Patch Set 1 : 2017-01-20T14:30:09 #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+17 lines, -8 lines) Patch
M third_party/WebKit/Source/core/editing/FrameCaret.h View 5 chunks +10 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/editing/FrameCaret.cpp View 2 chunks +6 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/editing/FrameSelection.cpp View 3 chunks +1 line, -3 lines 4 comments Download

Messages

Total messages: 17 (9 generated)
yosin_UTC9
PTAL
3 years, 11 months ago (2017-01-20 06:27:44 UTC) #5
Xiaocheng
lgtm TIL SynchronousMutationObserver.
3 years, 11 months ago (2017-01-20 08:41:26 UTC) #8
yoichio
https://codereview.chromium.org/2643033005/diff/1/third_party/WebKit/Source/core/editing/FrameSelection.cpp File third_party/WebKit/Source/core/editing/FrameSelection.cpp (left): https://codereview.chromium.org/2643033005/diff/1/third_party/WebKit/Source/core/editing/FrameSelection.cpp#oldcode407 third_party/WebKit/Source/core/editing/FrameSelection.cpp:407: m_frameCaret->nodeWillBeRemoved(node); I'm afraid if there is race condition between ...
3 years, 11 months ago (2017-01-20 08:44:01 UTC) #9
yosin_UTC9
Thanks for review! https://codereview.chromium.org/2643033005/diff/1/third_party/WebKit/Source/core/editing/FrameSelection.cpp File third_party/WebKit/Source/core/editing/FrameSelection.cpp (left): https://codereview.chromium.org/2643033005/diff/1/third_party/WebKit/Source/core/editing/FrameSelection.cpp#oldcode407 third_party/WebKit/Source/core/editing/FrameSelection.cpp:407: m_frameCaret->nodeWillBeRemoved(node); On 2017/01/20 at 08:44:00, yoichio ...
3 years, 11 months ago (2017-01-20 08:49:14 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2643033005/1
3 years, 11 months ago (2017-01-20 08:49:30 UTC) #12
commit-bot: I haz the power
Committed patchset #1 (id:1) as https://chromium.googlesource.com/chromium/src/+/d9ed982647cfc7940ef9f3eee5bf087a894a6133
3 years, 11 months ago (2017-01-20 08:53:40 UTC) #15
Xiaocheng
https://codereview.chromium.org/2643033005/diff/1/third_party/WebKit/Source/core/editing/FrameSelection.cpp File third_party/WebKit/Source/core/editing/FrameSelection.cpp (right): https://codereview.chromium.org/2643033005/diff/1/third_party/WebKit/Source/core/editing/FrameSelection.cpp#newcode470 third_party/WebKit/Source/core/editing/FrameSelection.cpp:470: // TODO(yosin): We should move to call |TypingCommand::closeTyping()| to ...
3 years, 11 months ago (2017-01-20 08:56:53 UTC) #16
yosin_UTC9
3 years, 11 months ago (2017-01-20 09:09:39 UTC) #17
Message was sent while issue was closed.
https://codereview.chromium.org/2643033005/diff/1/third_party/WebKit/Source/c...
File third_party/WebKit/Source/core/editing/FrameSelection.cpp (right):

https://codereview.chromium.org/2643033005/diff/1/third_party/WebKit/Source/c...
third_party/WebKit/Source/core/editing/FrameSelection.cpp:470: // TODO(yosin):
We should move to call |TypingCommand::closeTyping()| to
On 2017/01/20 at 08:56:53, Xiaocheng wrote:
> Is this OK?
Multiple calls of FrameCaret::setCaretRectNeedsUpdate() is OK.

void FrameCaret::setCaretRectNeedsUpdate() {
  if (m_caretRectDirty)
    return;
  m_caretRectDirty = true;
...
}

If you mention about |TypingCommand::closeTyping()|, it updates
|FrameSelection|'s state and is not related to FrameCaret.



> Do we need to cleanup the access from FrameSelection to FrameCaret in
FrameSelections's mutation listeners, and move them to FrameCaret's own
listeners?

[1] make FrameSelection to utiulize SMO

[1] http://crrev.com/2638423005: Make FrameSelection to utilize
SynchronousMutationObserver

Powered by Google App Engine
This is Rietveld 408576698