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

Issue 1948343002: [reland] Browser Side Text Input State Tracking for OOPIF (Aura Only) (Closed)

Created:
4 years, 7 months ago by EhsanK
Modified:
4 years, 6 months ago
CC:
chromium-reviews, creis+watch_chromium.org, danakj+watch_chromium.org, darin-cc_chromium.org, jam, jbauman+watch_chromium.org, kalyank, nasko+codewatch_chromium.org, nona+watch_chromium.org, piman+watch_chromium.org, shuchen+watch_chromium.org, sievers+watch_chromium.org, site-isolation-reviews_chromium.org, James Su, yusukes+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[reland] Browser Side Text Input State Tracking for OOPIF (Aura Only) This CL relands the original issue https://codereview.chromium.org/1652483002/, with modifications and for aura only (Linux, Windows, etc.). T A TextInputManager is introduced which owned by the RenderWidgetHostDelegate (mostly, WebContentsImpl). Each RWHV will observe the TextInputManager for its destruction and lifetime while the TextInputManager observers all the RWHVs on the tab. The role of the TextInputManager is to bookkeep and store TextInputState from all RWHV and provide the correct TextInputState and the RWHV with active TextInputState at anytime. These information are used by the tab-RWHV in handling IME related tasks. This CL also adds several tests and some utility methods to help testing IME and TextInputState for OOPIF. BUG=578168, 602723 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation Committed: https://crrev.com/add8822927e21f8f2d10e9257e7c3158fd02f223 Cr-Commit-Position: refs/heads/master@{#398559}

Patch Set 1 #

Total comments: 10

Patch Set 2 : Addressing kenrb@ comments (Removing TextInputManager::Observer::OnTextInputManagerDestroyed) #

Total comments: 3

Patch Set 3 : Using the Destruction Observer for RWHVAura #

Total comments: 14

Patch Set 4 : Addressing dcheng@ Comments #

Patch Set 5 : Using 'const ref' for arg of GetFrame() #

Patch Set 6 : #

Patch Set 7 : Directly initializing vector<size_t> before calling GetFrame #

Patch Set 8 : Merged #

Total comments: 23

Patch Set 9 : Merged #

Total comments: 2

Patch Set 10 : Addressing shuchen@ and kenrb@ comments #

Total comments: 3

Patch Set 11 : Fixed a Compile Error #

Patch Set 12 : Addressing kenrb@ Comments #

Total comments: 114

Patch Set 13 : Addressing creis@ Comments #

Patch Set 14 : Added the missing test file #

Total comments: 2

Patch Set 15 : Changed Public Test API Methods to non-const #

Total comments: 93

Patch Set 16 : Addressing creis@ Comments #

Total comments: 5

Patch Set 17 : Rebase (major) #

Patch Set 18 : Fixing Compile Errors #

Patch Set 19 : Rebased #

Patch Set 20 : Rebase #

Total comments: 28

Patch Set 21 : Addressing creis@ comments #

Patch Set 22 : #

Total comments: 5

Patch Set 23 : Addressing sky@ comments #

Total comments: 18

Patch Set 24 : Addressing sky@ comments #

Patch Set 25 : Rebase #

Patch Set 26 : Rebase (Code changed during CQ Dry-run) #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1425 lines, -47 lines) Patch
A chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +557 lines, -0 lines 0 comments Download
M chrome/test/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +4 lines, -0 lines 0 comments Download
M content/browser/frame_host/interstitial_page_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +2 lines, -0 lines 0 comments Download
M content/browser/frame_host/interstitial_page_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 chunks +6 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_child_frame.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +0 lines, -1 line 0 comments Download
M content/browser/frame_host/render_widget_host_view_child_frame.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +0 lines, -5 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_delegate.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 chunks +4 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_delegate.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +4 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_aura.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 6 chunks +8 lines, -9 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_aura.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 7 chunks +41 lines, -28 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_base.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 7 chunks +31 lines, -4 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_base.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5 chunks +41 lines, -0 lines 0 comments Download
A content/browser/renderer_host/text_input_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +100 lines, -0 lines 0 comments Download
A content/browser/renderer_host/text_input_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +115 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 3 chunks +10 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 3 chunks +20 lines, -0 lines 0 comments Download
M content/content_browser.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +2 lines, -0 lines 0 comments Download
M content/content_tests.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +2 lines, -0 lines 0 comments Download
A content/public/test/text_input_test_utils.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +153 lines, -0 lines 0 comments Download
A content/public/test/text_input_test_utils.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +325 lines, -0 lines 0 comments Download

Messages

Total messages: 56 (14 generated)
EhsanK
Hello Charlie, Please take a look at this CL. Meanwhile, I am working on adding ...
4 years, 7 months ago (2016-05-05 14:25:05 UTC) #3
EhsanK
Adding kenrb@. Please, take a look.
4 years, 7 months ago (2016-05-05 17:06:07 UTC) #5
kenrb
I haven't looked closely at the tests but the TextInputManager class certainly makes things a ...
4 years, 7 months ago (2016-05-05 20:26:28 UTC) #6
kenrb
+site-isolation-reviews
4 years, 7 months ago (2016-05-05 20:27:27 UTC) #7
EhsanK
Please, take another look. Thanks! https://codereview.chromium.org/1948343002/diff/1/content/browser/frame_host/interstitial_page_impl.cc File content/browser/frame_host/interstitial_page_impl.cc (right): https://codereview.chromium.org/1948343002/diff/1/content/browser/frame_host/interstitial_page_impl.cc#newcode935 content/browser/frame_host/interstitial_page_impl.cc:935: TextInputManager* InterstitialPageImpl::GetTextInputManager() { On ...
4 years, 7 months ago (2016-05-06 18:23:43 UTC) #8
EhsanK
PTAL. kenrb@: Following our conversation offline offline, I have added a TODO to perhaps change ...
4 years, 7 months ago (2016-05-10 20:22:15 UTC) #9
dcheng
I didn't look over the entire CL, but some C++11 style comments. https://codereview.chromium.org/1948343002/diff/40001/chrome/browser/site_per_process_interactive_browsertest.cc File chrome/browser/site_per_process_interactive_browsertest.cc ...
4 years, 7 months ago (2016-05-10 20:33:41 UTC) #11
EhsanK
Thansk. Please, take another look. @dcheng: I believe the initializer_list was necessary as this patch ...
4 years, 7 months ago (2016-05-11 01:54:03 UTC) #12
dcheng
On 2016/05/11 at 01:54:03, ekaramad wrote: > Thansk. Please, take another look. > > @dcheng: ...
4 years, 7 months ago (2016-05-11 02:26:31 UTC) #13
EhsanK
On 2016/05/11 02:26:31, dcheng wrote: > On 2016/05/11 at 01:54:03, ekaramad wrote: > > Thansk. ...
4 years, 7 months ago (2016-05-11 14:05:50 UTC) #14
EhsanK
On 2016/05/11 14:05:50, ehsaaan wrote: > On 2016/05/11 02:26:31, dcheng wrote: > > On 2016/05/11 ...
4 years, 7 months ago (2016-05-11 14:58:41 UTC) #15
dcheng
On 2016/05/11 at 14:58:41, ekaramad wrote: > On 2016/05/11 14:05:50, ehsaaan wrote: > > On ...
4 years, 7 months ago (2016-05-11 15:32:12 UTC) #16
dcheng
https://codereview.chromium.org/1948343002/diff/40001/chrome/browser/site_per_process_interactive_browsertest.cc File chrome/browser/site_per_process_interactive_browsertest.cc (right): https://codereview.chromium.org/1948343002/diff/40001/chrome/browser/site_per_process_interactive_browsertest.cc#newcode404 chrome/browser/site_per_process_interactive_browsertest.cc:404: for (size_t i = 0; i < indices.size(); ++i) ...
4 years, 7 months ago (2016-05-11 17:12:33 UTC) #17
EhsanK
PTAL. https://codereview.chromium.org/1948343002/diff/40001/chrome/browser/site_per_process_interactive_browsertest.cc File chrome/browser/site_per_process_interactive_browsertest.cc (right): https://codereview.chromium.org/1948343002/diff/40001/chrome/browser/site_per_process_interactive_browsertest.cc#newcode404 chrome/browser/site_per_process_interactive_browsertest.cc:404: for (size_t i = 0; i < indices.size(); ...
4 years, 7 months ago (2016-05-12 00:26:48 UTC) #18
EhsanK
Adding shuchen@ for IME reviews. shuchen@: Please, take a look at the patch.
4 years, 7 months ago (2016-05-12 03:53:29 UTC) #20
kenrb
Most of my comments are questions and nits, but I have one significant concern remaining ...
4 years, 7 months ago (2016-05-12 16:16:37 UTC) #21
Shu Chen
lgtm for the overall text input state updating logic. https://codereview.chromium.org/1948343002/diff/160001/content/browser/renderer_host/render_widget_host_view_aura.cc File content/browser/renderer_host/render_widget_host_view_aura.cc (right): https://codereview.chromium.org/1948343002/diff/160001/content/browser/renderer_host/render_widget_host_view_aura.cc#newcode2879 content/browser/renderer_host/render_widget_host_view_aura.cc:2879: ...
4 years, 7 months ago (2016-05-13 07:20:41 UTC) #22
EhsanK
Please, take another look. https://codereview.chromium.org/1948343002/diff/1/content/browser/frame_host/interstitial_page_impl.cc File content/browser/frame_host/interstitial_page_impl.cc (right): https://codereview.chromium.org/1948343002/diff/1/content/browser/frame_host/interstitial_page_impl.cc#newcode935 content/browser/frame_host/interstitial_page_impl.cc:935: TextInputManager* InterstitialPageImpl::GetTextInputManager() { On 2016/05/12 ...
4 years, 7 months ago (2016-05-13 16:00:56 UTC) #23
kenrb
lgtm (with one remaining nit). It looks like there is still some work to do ...
4 years, 7 months ago (2016-05-13 20:37:42 UTC) #24
Charlie Reis
On 2016/05/13 20:37:42, kenrb wrote: > I think you just need a content owner's review ...
4 years, 7 months ago (2016-05-17 22:52:59 UTC) #25
Charlie Reis
Thanks for moving forward in a smaller chunk (Aura-only), and for including tests! Sorry for ...
4 years, 7 months ago (2016-05-18 20:46:06 UTC) #26
EhsanK
Thank you Charlie for the reviews. The part I am a bit unsure is the ...
4 years, 7 months ago (2016-05-24 20:42:47 UTC) #28
EhsanK
https://codereview.chromium.org/1948343002/diff/260001/content/public/test/text_input_test_utils.h File content/public/test/text_input_test_utils.h (right): https://codereview.chromium.org/1948343002/diff/260001/content/public/test/text_input_test_utils.h#newcode65 content/public/test/text_input_test_utils.h:65: virtual const RenderWidgetHostView* GetUpdatedView() const = 0; I missed ...
4 years, 7 months ago (2016-05-25 16:51:07 UTC) #29
Charlie Reis
Great, thanks. We're getting closer, but sometimes it takes a while to get through very ...
4 years, 7 months ago (2016-05-26 06:22:02 UTC) #30
EhsanK
PTAL. https://codereview.chromium.org/1948343002/diff/280001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc File chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc (right): https://codereview.chromium.org/1948343002/diff/280001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc#newcode27 chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc:27: #ifdef USE_AURA On 2016/05/26 06:22:04, Charlie Reis wrote: ...
4 years, 6 months ago (2016-05-30 15:06:09 UTC) #31
Charlie Reis
Whew! I think we've made it. LGTM with nits. Thanks for pushing through. https://codereview.chromium.org/1948343002/diff/280001/content/browser/renderer_host/render_widget_host_view_base.h File ...
4 years, 6 months ago (2016-06-02 22:03:30 UTC) #32
EhsanK
Thank you Charlie for the detailed reviews. Adding sky@ for owner's LGTM on the "chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc". ...
4 years, 6 months ago (2016-06-03 17:00:34 UTC) #33
EhsanK
sky@chromium.org: Please review changes in + sky@ for owner's LGTM on the test file in ...
4 years, 6 months ago (2016-06-03 21:58:16 UTC) #35
sky
https://codereview.chromium.org/1948343002/diff/420001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc File chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc (right): https://codereview.chromium.org/1948343002/diff/420001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc#newcode30 chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc:30: #ifdef USE_AURA That bug is close to 3 months ...
4 years, 6 months ago (2016-06-03 22:38:49 UTC) #36
Charlie Reis
https://codereview.chromium.org/1948343002/diff/420001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc File chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc (right): https://codereview.chromium.org/1948343002/diff/420001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc#newcode38 chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc:38: // These tests live outside content/ because they rely ...
4 years, 6 months ago (2016-06-03 23:03:35 UTC) #37
sky
On Fri, Jun 3, 2016 at 4:03 PM, <creis@chromium.org> wrote: > > https://codereview.chromium.org/1948343002/diff/420001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc > File ...
4 years, 6 months ago (2016-06-06 13:25:17 UTC) #38
EhsanK
Thanks for the reviews. PTAL. https://codereview.chromium.org/1948343002/diff/420001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc File chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc (right): https://codereview.chromium.org/1948343002/diff/420001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc#newcode30 chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc:30: #ifdef USE_AURA On 2016/06/03 ...
4 years, 6 months ago (2016-06-06 22:35:05 UTC) #39
sky
LGTM https://codereview.chromium.org/1948343002/diff/440001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc File chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc (right): https://codereview.chromium.org/1948343002/diff/440001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc#newcode24 chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc:24: nit: remove newline. https://codereview.chromium.org/1948343002/diff/440001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc#newcode104 chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc:104: std::string expected_value_; nit ...
4 years, 6 months ago (2016-06-07 19:44:45 UTC) #40
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1948343002/480001
4 years, 6 months ago (2016-06-07 21:43:42 UTC) #42
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_gn_chromeos_rel on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_gn_chromeos_rel/builds/199762)
4 years, 6 months ago (2016-06-07 22:22:20 UTC) #44
EhsanK
Thanks for the reviews! https://codereview.chromium.org/1948343002/diff/440001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc File chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc (right): https://codereview.chromium.org/1948343002/diff/440001/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc#newcode24 chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc:24: On 2016/06/07 19:44:45, sky wrote: ...
4 years, 6 months ago (2016-06-08 14:24:28 UTC) #45
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1948343002/500001
4 years, 6 months ago (2016-06-08 14:25:10 UTC) #47
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 6 months ago (2016-06-08 15:03:23 UTC) #49
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1948343002/500001
4 years, 6 months ago (2016-06-08 15:14:31 UTC) #52
commit-bot: I haz the power
Committed patchset #26 (id:500001)
4 years, 6 months ago (2016-06-08 15:23:10 UTC) #53
commit-bot: I haz the power
Patchset 26 (id:??) landed as https://crrev.com/add8822927e21f8f2d10e9257e7c3158fd02f223 Cr-Commit-Position: refs/heads/master@{#398559}
4 years, 6 months ago (2016-06-08 15:24:37 UTC) #55
krasin
4 years, 6 months ago (2016-06-10 21:23:15 UTC) #56
Message was sent while issue was closed.
FYI: this CL broke 'CFI Linux' buildbot, see https://crbug.com/619147 for more
details.

Powered by Google App Engine
This is Rietveld 408576698