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

Issue 1001553004: Fix race condition between attaching and destruction of native IME object. (Closed)

Created:
5 years, 9 months ago by bcwhite
Modified:
5 years, 9 months ago
CC:
chromium-reviews, darin-cc_chromium.org, jam
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix race condition between attaching and destruction of native IME object. There is an issue where a native IME object can be destructed while there is a pending DelayedDismissInput. This change does the attach between the java object and the native object immediately so that, in the case of the latter's destruction, it can properly notify the former and thus cancel the delayed operation. BUG=447287 Committed: https://crrev.com/09f6510f4039c4dad8ead7afc62b1d7eff7dd9f3 Cr-Commit-Position: refs/heads/master@{#321200}

Patch Set 1 #

Patch Set 2 : removed debug aids #

Patch Set 3 : removed unused var name added for debugging #

Total comments: 1

Patch Set 4 : restore previous instant-dismiss behavior for most cases (safer for merge and fixes tests) #

Total comments: 4

Patch Set 5 : addressed review comments by jdduke and fixed some tests #

Total comments: 3

Patch Set 6 : make protected method private #

Total comments: 1

Patch Set 7 : moved clear of any existing delayed-dismiss to more appropriate spot #

Patch Set 8 : cleaned up attach to not create delayed dismissals when they wouldn't do anything #

Patch Set 9 : removed code added for other bug which no longer applies now that delayed-dismiss no longer calls a… #

Patch Set 10 : remove now-usused reference to native IME adapter from DelayedDismissInput #

Total comments: 9

Patch Set 11 : address review comments about separate Dismiss class #

Total comments: 3
Unified diffs Side-by-side diffs Delta from patch set Stats (+39 lines, -52 lines) Patch
M content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java View 1 2 3 4 1 chunk +1 line, -2 lines 0 comments Download
M content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java View 1 2 3 4 5 6 7 8 9 10 8 chunks +38 lines, -50 lines 3 comments Download

Messages

Total messages: 31 (4 generated)
bcwhite
Aurimas, what do you think of this? I haven't encountered any problems playing around on ...
5 years, 9 months ago (2015-03-11 20:23:08 UTC) #2
aurimas (slooooooooow)
lgtm https://codereview.chromium.org/1001553004/diff/40001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java File content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java (right): https://codereview.chromium.org/1001553004/diff/40001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java#newcode253 content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java:253: public void attach(long nativeImeAdapter, int textInputType, int textInputFlags) ...
5 years, 9 months ago (2015-03-11 21:31:18 UTC) #3
bcwhite
On 2015/03/11 21:31:18, aurimas wrote: > lgtm > > https://codereview.chromium.org/1001553004/diff/40001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java > File > content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java > ...
5 years, 9 months ago (2015-03-11 21:53:34 UTC) #4
aurimas (slooooooooow)
It seems like to you need to update the tests.
5 years, 9 months ago (2015-03-11 21:55:30 UTC) #5
bcwhite
So I see. A bit concerning, that. <sigh>
5 years, 9 months ago (2015-03-12 00:11:36 UTC) #6
bcwhite
Seems that tests are checking that the keyboard is being dismissed and of course they're ...
5 years, 9 months ago (2015-03-12 00:46:25 UTC) #7
bcwhite
jdduke for added parameter in method call from ContentViewCore
5 years, 9 months ago (2015-03-12 01:00:43 UTC) #8
jdduke (slow)
No tests? :( https://codereview.chromium.org/1001553004/diff/60001/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java File content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java (right): https://codereview.chromium.org/1001553004/diff/60001/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java#newcode1561 content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java:1561: mImeAdapter.attach(nativeGetNativeImeAdapter(mNativeContentViewCore), Can't we make this: mImeAdapter.attach(nativeGetNativeImeAdapter(mNativeContentViewCore)); ...
5 years, 9 months ago (2015-03-12 03:02:06 UTC) #10
bcwhite
I'm still investigating how to create a test for this crash. https://codereview.chromium.org/1001553004/diff/60001/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java File content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java (right): ...
5 years, 9 months ago (2015-03-12 18:11:05 UTC) #11
jdduke (slow)
ContentViewCore changes lgtm. Would be nice to have a description stating what this does to ...
5 years, 9 months ago (2015-03-12 18:15:40 UTC) #12
bcwhite
https://codereview.chromium.org/1001553004/diff/80001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java File content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java (right): https://codereview.chromium.org/1001553004/diff/80001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java#newcode256 content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java:256: protected void attach(long nativeImeAdapter, int textInputType, int textInputFlags, On ...
5 years, 9 months ago (2015-03-13 13:11:13 UTC) #13
jdduke (slow)
https://codereview.chromium.org/1001553004/diff/80001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java File content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java (right): https://codereview.chromium.org/1001553004/diff/80001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java#newcode256 content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java:256: protected void attach(long nativeImeAdapter, int textInputType, int textInputFlags, On ...
5 years, 9 months ago (2015-03-13 14:06:52 UTC) #14
jdduke (slow)
On 2015/03/13 14:06:52, jdduke wrote: > https://codereview.chromium.org/1001553004/diff/80001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java > File > content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java > (right): > > ...
5 years, 9 months ago (2015-03-16 15:05:40 UTC) #15
bcwhite
On 2015/03/16 15:05:40, jdduke wrote: > On 2015/03/13 14:06:52, jdduke wrote: > > > https://codereview.chromium.org/1001553004/diff/80001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java ...
5 years, 9 months ago (2015-03-16 15:11:22 UTC) #16
jdduke (slow)
+boliu: You mentioned a recently proposed patch that caused the WebView GC test to fail. ...
5 years, 9 months ago (2015-03-16 15:13:15 UTC) #17
jdduke (slow)
https://codereview.chromium.org/1001553004/diff/100001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java File content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java (right): https://codereview.chromium.org/1001553004/diff/100001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java#newcode272 content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java:272: mDismissInput = new DelayedDismissInput(nativeImeAdapter); It would be good to ...
5 years, 9 months ago (2015-03-16 15:19:12 UTC) #18
boliu
On 2015/03/16 15:13:15, jdduke wrote: > +boliu: You mentioned a recently proposed patch that caused ...
5 years, 9 months ago (2015-03-16 16:18:37 UTC) #19
bcwhite
Well after a day of head-banging and 100 or so extra lines of debug code... ...
5 years, 9 months ago (2015-03-17 13:16:53 UTC) #20
jdduke (slow)
Definitely need Aurimas or somebody else more familiar with ImeAdapter to take a look here. ...
5 years, 9 months ago (2015-03-17 15:06:05 UTC) #21
bcwhite
https://codereview.chromium.org/1001553004/diff/180001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java File content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java (right): https://codereview.chromium.org/1001553004/diff/180001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java#newcode86 content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java:86: private class DelayedDismissInput implements Runnable { On 2015/03/17 15:06:05, ...
5 years, 9 months ago (2015-03-17 15:28:17 UTC) #22
bcwhite
Aurimas? Any new comments after the changes?
5 years, 9 months ago (2015-03-18 11:57:38 UTC) #23
aurimas (slooooooooow)
lgtm
5 years, 9 months ago (2015-03-18 19:58:27 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1001553004/200001
5 years, 9 months ago (2015-03-18 20:02:24 UTC) #27
jdduke (slow)
https://codereview.chromium.org/1001553004/diff/200001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java File content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java (left): https://codereview.chromium.org/1001553004/diff/200001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java#oldcode228 content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java:228: mHandler.removeCallbacks(mDismissInput); I'm a little worried about removing this and ...
5 years, 9 months ago (2015-03-18 20:15:03 UTC) #28
bcwhite
https://codereview.chromium.org/1001553004/diff/200001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java File content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java (left): https://codereview.chromium.org/1001553004/diff/200001/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java#oldcode228 content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java:228: mHandler.removeCallbacks(mDismissInput); The dismissal should only be pending if the ...
5 years, 9 months ago (2015-03-18 20:25:29 UTC) #29
commit-bot: I haz the power
Committed patchset #11 (id:200001)
5 years, 9 months ago (2015-03-18 20:51:07 UTC) #30
commit-bot: I haz the power
5 years, 9 months ago (2015-03-18 20:51:52 UTC) #31
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/09f6510f4039c4dad8ead7afc62b1d7eff7dd9f3
Cr-Commit-Position: refs/heads/master@{#321200}

Powered by Google App Engine
This is Rietveld 408576698