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

Issue 1301173002: Avoid sync IPCs for firstRectForCharacterRange/attributedSubstringForProposedRange. (Closed)

Created:
5 years, 4 months ago by Shu Chen
Modified:
5 years, 3 months ago
CC:
chromium-reviews, yusukes+watch_chromium.org, shuchen+watch_chromium.org, jam, nona+watch_chromium.org, darin-cc_chromium.org, James Su
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Avoid sync IPCs for firstRectForCharacterRange/attributedSubstringForProposedRange. For firstRectForCharacterRange, always uses the cached rect. And it will make IME get the wrong/old rect to position its suggestion window. For attributedSubstringForProposedRange, always uses composition or selection text. And it will drop the string format (fonts/color/etc.) information. This cl is a trade-off between making IME behave properly and avoid freezing UI. I try to make this change as small as possible so that it can be easily rolled back for potential regressions. The changes of cleanning up the IPC defitions and code in TextInputClientMac will be done in a separated cl. BUG=121917, 473850 TEST=Verified bug not repro on local build. Committed: https://crrev.com/bc6b777b385ff691d69479691cd259215cb32e4f Cr-Commit-Position: refs/heads/master@{#345828}

Patch Set 1 #

Total comments: 6

Patch Set 2 : addressed yukawa@'s comments. #

Total comments: 12

Patch Set 3 : addressed comments. #

Patch Set 4 : no need to convert to UTF32 for string truncation. #

Total comments: 2

Patch Set 5 : nits. #

Total comments: 4

Patch Set 6 : avoid leak. #

Total comments: 1

Patch Set 7 : avoid string copies. #

Total comments: 6

Patch Set 8 : nits. #

Patch Set 9 : fixed test failures #

Unified diffs Side-by-side diffs Delta from patch set Stats (+51 lines, -9 lines) Patch
M content/browser/renderer_host/render_widget_host_view_mac.h View 1 2 chunks +6 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_mac.mm View 1 2 3 4 5 6 7 8 3 chunks +42 lines, -6 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_mac_unittest.mm View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -3 lines 0 comments Download

Messages

Total messages: 46 (8 generated)
Shu Chen
asvitkine@/yukawa@, can you please review this cl? Thanks
5 years, 4 months ago (2015-08-20 08:15:32 UTC) #2
yukawa
I think firstRectForCharacterRange part is OK. As for attributedSubstringForProposedRange, I have no idea if dropping ...
5 years, 4 months ago (2015-08-20 08:34:31 UTC) #3
Shu Chen
On 2015/08/20 08:34:31, yukawa wrote: > I think firstRectForCharacterRange part is OK. As for > ...
5 years, 4 months ago (2015-08-20 08:36:36 UTC) #4
yukawa
https://codereview.chromium.org/1301173002/diff/1/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/1/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode1196 content/browser/renderer_host/render_widget_host_view_mac.mm:1196: void RenderWidgetHostViewMac::SelectionChanged(const base::string16& text, Just out of curiosity, if ...
5 years, 4 months ago (2015-08-20 09:14:49 UTC) #5
Shu Chen
https://codereview.chromium.org/1301173002/diff/1/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/1/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode1196 content/browser/renderer_host/render_widget_host_view_mac.mm:1196: void RenderWidgetHostViewMac::SelectionChanged(const base::string16& text, On 2015/08/20 09:14:49, yukawa wrote: ...
5 years, 4 months ago (2015-08-21 03:13:11 UTC) #6
yukawa
https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2897 content/browser/renderer_host/render_widget_host_view_mac.mm:2897: gfx::Range expected_range; How about making sure if |range| is ...
5 years, 4 months ago (2015-08-21 03:46:13 UTC) #7
yukawa
https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2910 content/browser/renderer_host/render_widget_host_view_mac.mm:2910: if (expected_range.start() > range.location || On 2015/08/21 03:46:13, yukawa ...
5 years, 4 months ago (2015-08-21 03:49:36 UTC) #8
Shu Chen
https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2897 content/browser/renderer_host/render_widget_host_view_mac.mm:2897: gfx::Range expected_range; On 2015/08/21 03:46:13, yukawa wrote: > How ...
5 years, 4 months ago (2015-08-21 05:17:04 UTC) #9
yukawa
lgtm with one minor suggestion that is basically up to you. https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): ...
5 years, 4 months ago (2015-08-21 05:45:24 UTC) #10
Shu Chen
https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2899 content/browser/renderer_host/render_widget_host_view_mac.mm:2899: const base::string16* expected_text; On 2015/08/21 05:45:24, yukawa wrote: > ...
5 years, 4 months ago (2015-08-21 05:59:49 UTC) #11
yukawa
https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2899 content/browser/renderer_host/render_widget_host_view_mac.mm:2899: const base::string16* expected_text; On 2015/08/21 05:59:49, Shu Chen wrote: ...
5 years, 4 months ago (2015-08-21 06:19:26 UTC) #12
yukawa
https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2899 content/browser/renderer_host/render_widget_host_view_mac.mm:2899: const base::string16* expected_text; On 2015/08/21 06:19:26, yukawa wrote: > ...
5 years, 4 months ago (2015-08-21 06:25:00 UTC) #13
Shu Chen
https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/20001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2899 content/browser/renderer_host/render_widget_host_view_mac.mm:2899: const base::string16* expected_text; On 2015/08/21 06:19:26, yukawa wrote: > ...
5 years, 4 months ago (2015-08-21 06:36:49 UTC) #14
yukawa
lgtm https://codereview.chromium.org/1301173002/diff/60001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/60001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2918 content/browser/renderer_host/render_widget_host_view_mac.mm:2918: if (!base::UTF16ToUTF8( (optional) Perhaps we can use something ...
5 years, 4 months ago (2015-08-21 06:54:50 UTC) #15
Shu Chen
https://codereview.chromium.org/1301173002/diff/60001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/60001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2918 content/browser/renderer_host/render_widget_host_view_mac.mm:2918: if (!base::UTF16ToUTF8( On 2015/08/21 06:54:50, yukawa wrote: > (optional) ...
5 years, 4 months ago (2015-08-21 07:11:54 UTC) #16
yukawa
lgtm
5 years, 4 months ago (2015-08-21 07:16:02 UTC) #17
Alexei Svitkine (slow)
https://codereview.chromium.org/1301173002/diff/80001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/80001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2921 content/browser/renderer_host/render_widget_host_view_mac.mm:2921: return [[NSAttributedString alloc] initWithString: You need to autorelease this ...
5 years, 4 months ago (2015-08-24 15:34:44 UTC) #18
Shu Chen
https://codereview.chromium.org/1301173002/diff/80001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/80001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2921 content/browser/renderer_host/render_widget_host_view_mac.mm:2921: return [[NSAttributedString alloc] initWithString: On 2015/08/24 15:34:43, Alexei Svitkine ...
5 years, 4 months ago (2015-08-25 03:43:10 UTC) #19
Alexei Svitkine (slow)
https://codereview.chromium.org/1301173002/diff/100001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/100001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2922 content/browser/renderer_host/render_widget_host_view_mac.mm:2922: base::SysUTF16ToNSString(expected_text)] autorelease]; I think you can avoid a couple ...
5 years, 4 months ago (2015-08-25 14:55:39 UTC) #20
Shu Chen
On 2015/08/25 14:55:39, Alexei Svitkine (OOO Aug15-24) wrote: > https://codereview.chromium.org/1301173002/diff/100001/content/browser/renderer_host/render_widget_host_view_mac.mm > File content/browser/renderer_host/render_widget_host_view_mac.mm (right): > ...
5 years, 4 months ago (2015-08-25 15:00:36 UTC) #21
Alexei Svitkine (slow)
I don't agree with the concerns in comment 12. Specifically, I don't think selection_text would ...
5 years, 4 months ago (2015-08-25 15:04:48 UTC) #22
Shu Chen
On 2015/08/25 15:04:48, Alexei Svitkine (OOO Aug15-24) wrote: > I don't agree with the concerns ...
5 years, 4 months ago (2015-08-26 01:38:17 UTC) #23
Alexei Svitkine (slow)
On 2015/08/26 01:38:17, Shu Chen wrote: > On 2015/08/25 15:04:48, Alexei Svitkine (OOO Aug15-24) wrote: ...
5 years, 3 months ago (2015-08-26 14:27:49 UTC) #24
Shu Chen
On 2015/08/26 14:27:49, Alexei Svitkine (OOO Aug15-24) wrote: > On 2015/08/26 01:38:17, Shu Chen wrote: ...
5 years, 3 months ago (2015-08-26 15:04:56 UTC) #25
Alexei Svitkine (slow)
lgtm https://codereview.chromium.org/1301173002/diff/120001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/120001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2909 content/browser/renderer_host/render_widget_host_view_mac.mm:2909: expected_text = &(renderWidgetHostView_->selection_text()); Nit: I'm not sure the ...
5 years, 3 months ago (2015-08-26 15:09:22 UTC) #26
Shu Chen
https://codereview.chromium.org/1301173002/diff/120001/content/browser/renderer_host/render_widget_host_view_mac.mm File content/browser/renderer_host/render_widget_host_view_mac.mm (right): https://codereview.chromium.org/1301173002/diff/120001/content/browser/renderer_host/render_widget_host_view_mac.mm#newcode2909 content/browser/renderer_host/render_widget_host_view_mac.mm:2909: expected_text = &(renderWidgetHostView_->selection_text()); On 2015/08/26 15:09:22, Alexei Svitkine (OOO ...
5 years, 3 months ago (2015-08-26 15:21:02 UTC) #27
yukawa
lgtm if Alexei's comments are addressed. nit: How about mentioning to Issue 121917 as well ...
5 years, 3 months ago (2015-08-26 15:22:08 UTC) #28
Shu Chen
On 2015/08/26 15:22:08, yukawa wrote: > lgtm if Alexei's comments are addressed. > > nit: ...
5 years, 3 months ago (2015-08-26 15:24:17 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1301173002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1301173002/140001
5 years, 3 months ago (2015-08-26 15:25:16 UTC) #32
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/104662)
5 years, 3 months ago (2015-08-26 15:46:35 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1301173002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1301173002/140001
5 years, 3 months ago (2015-08-27 00:39:16 UTC) #36
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/105146)
5 years, 3 months ago (2015-08-27 01:44:52 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1301173002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1301173002/160001
5 years, 3 months ago (2015-08-27 08:38:05 UTC) #41
commit-bot: I haz the power
Committed patchset #9 (id:160001)
5 years, 3 months ago (2015-08-27 09:27:37 UTC) #42
commit-bot: I haz the power
Patchset 9 (id:??) landed as https://crrev.com/bc6b777b385ff691d69479691cd259215cb32e4f Cr-Commit-Position: refs/heads/master@{#345828}
5 years, 3 months ago (2015-08-27 09:28:37 UTC) #43
jabdelmalek
Great, thank you for working on this. there are still other calls to TextInputClientMac::GetInstance in ...
5 years, 3 months ago (2015-08-27 14:28:07 UTC) #44
Shu Chen
On 2015/08/27 14:28:07, jabdelmalek wrote: > Great, thank you for working on this. > > ...
5 years, 3 months ago (2015-08-27 15:49:04 UTC) #45
Shu Chen
5 years, 3 months ago (2015-08-31 15:09:18 UTC) #46
Message was sent while issue was closed.
A revert of this CL (patchset #9 id:160001) has been created in
https://codereview.chromium.org/1321983003/ by shuchen@chromium.org.

The reason for reverting is: Caused regression: crbug.com/526611.

Need to support asynchronous "Look Up in Dictionary" with attributed string by
context menu.
.

Powered by Google App Engine
This is Rietveld 408576698