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

Issue 457913002: Android WebView: flush input events during onVSync (Closed)

Created:
6 years, 4 months ago by hush (inactive)
Modified:
6 years, 4 months ago
CC:
chromium-reviews, yusukes+watch_chromium.org, yukishiino+watch_chromium.org, jam, penghuang+watch_chromium.org, nona+watch_chromium.org, darin-cc_chromium.org, James Su, miu+watch_chromium.org, jdduke (slow)
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Android WebView: flush input events during onVSync BUG=394604

Patch Set 1 #

Total comments: 2

Patch Set 2 : flush but no new frame #

Patch Set 3 : register observer only for synthetic gestures #

Total comments: 9

Patch Set 4 : subscriberTypes + postInvalidate during VSync #

Total comments: 18

Patch Set 5 : comments #

Total comments: 2

Patch Set 6 : jdduke@ comments #

Patch Set 7 : minor fixups #

Total comments: 12

Patch Set 8 : revert to PS3 #

Total comments: 2

Patch Set 9 : Bo's comments #

Total comments: 2

Patch Set 10 : #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+48 lines, -9 lines) Patch
M android_webview/java/src/org/chromium/android_webview/AwContents.java View 1 2 3 4 5 6 7 8 9 4 chunks +11 lines, -7 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_android.cc View 1 2 3 4 5 6 7 8 2 chunks +9 lines, -0 lines 4 comments Download
M ui/android/java/src/org/chromium/ui/VSyncMonitor.java View 1 2 3 4 5 6 7 2 chunks +20 lines, -2 lines 0 comments Download
M ui/android/java/src/org/chromium/ui/base/WindowAndroid.java View 1 2 3 4 1 chunk +8 lines, -0 lines 0 comments Download

Messages

Total messages: 52 (0 generated)
hush (inactive)
Haven't looked into what happens if content_view_core_->GetWindowAndroid()->RequestVSyncUpdate() in Android WebView yet. But at least chrome.gpuBenchmarking ...
6 years, 4 months ago (2014-08-09 03:26:46 UTC) #1
hush (inactive)
https://codereview.chromium.org/457913002/diff/1/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/1/content/browser/renderer_host/render_widget_host_view_android.cc#newcode261 content/browser/renderer_host/render_widget_host_view_android.cc:261: if (content_view_core_) { btw, WasShown() is not called when ...
6 years, 4 months ago (2014-08-09 03:28:12 UTC) #2
boliu
I would suggest implement everything separately in SynchronousCompositor first to avoid running any code webview ...
6 years, 4 months ago (2014-08-11 15:57:48 UTC) #3
hush (inactive)
Do you mean making SynchronousCompositor inherit from ui::WindowAndroidObserver and overriding OnVSync? On 2014/08/11 15:57:48, boliu ...
6 years, 4 months ago (2014-08-11 19:49:56 UTC) #4
boliu
On 2014/08/11 19:49:56, hush wrote: > Do you mean making SynchronousCompositor inherit from ui::WindowAndroidObserver > ...
6 years, 4 months ago (2014-08-11 19:57:04 UTC) #5
hush (inactive)
On 2014/08/11 19:57:04, boliu wrote: > On 2014/08/11 19:49:56, hush wrote: > > Do you ...
6 years, 4 months ago (2014-08-12 21:37:54 UTC) #6
hush (inactive)
(for the benefit of myself) things to investigate: 1. is the compositor_ in window_android null ...
6 years, 4 months ago (2014-08-13 01:51:07 UTC) #7
hush (inactive)
On 2014/08/13 01:51:07, hush wrote: > (for the benefit of myself) things to investigate: > ...
6 years, 4 months ago (2014-08-16 00:42:08 UTC) #8
boliu
cc +jdduke,sievers I think next step in this CL is to guarantee no behavior change ...
6 years, 4 months ago (2014-08-16 00:52:16 UTC) #9
no sievers
On 2014/08/16 00:52:16, boliu wrote: > cc +jdduke,sievers > > I think next step in ...
6 years, 4 months ago (2014-08-18 18:28:27 UTC) #10
boliu
On 2014/08/18 18:28:27, sievers_OOOuntil8_15 wrote: > On 2014/08/16 00:52:16, boliu wrote: > > cc +jdduke,sievers ...
6 years, 4 months ago (2014-08-18 18:34:19 UTC) #11
hush (inactive)
On 2014/08/18 18:34:19, boliu wrote: > On 2014/08/18 18:28:27, sievers_OOOuntil8_15 wrote: > > On 2014/08/16 ...
6 years, 4 months ago (2014-08-18 20:23:03 UTC) #12
boliu
On 2014/08/18 20:23:03, hush wrote: > On 2014/08/18 18:34:19, boliu wrote: > > On 2014/08/18 ...
6 years, 4 months ago (2014-08-18 21:14:13 UTC) #13
hush (inactive)
> """ > I think next step in this CL is to guarantee no behavior ...
6 years, 4 months ago (2014-08-19 02:09:27 UTC) #14
boliu
On 2014/08/19 02:09:27, hush wrote: > > """ > > I think next step in ...
6 years, 4 months ago (2014-08-19 02:19:47 UTC) #15
hush (inactive)
Patch Set 3: Only add window android observer if CreateSyntheticGestureTarget is called, that is, when ...
6 years, 4 months ago (2014-08-19 22:52:11 UTC) #16
hush (inactive)
So how about WebView only registering the observer when there is synthetic events? > RWHVA ...
6 years, 4 months ago (2014-08-19 22:53:16 UTC) #17
boliu
https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode815 content/browser/renderer_host/render_widget_host_view_android.cc:815: if (using_synchronous_compositor_) { && !observing_root_window_ https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1538 content/browser/renderer_host/render_widget_host_view_android.cc:1538: if (using_synchronous_compositor_) ...
6 years, 4 months ago (2014-08-19 22:54:40 UTC) #18
hush (inactive)
https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode815 content/browser/renderer_host/render_widget_host_view_android.cc:815: if (using_synchronous_compositor_) { On 2014/08/19 22:54:39, boliu wrote: > ...
6 years, 4 months ago (2014-08-19 23:24:36 UTC) #19
jdduke (slow)
https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1538 content/browser/renderer_host/render_widget_host_view_android.cc:1538: if (using_synchronous_compositor_) On 2014/08/19 22:54:39, boliu wrote: > Can ...
6 years, 4 months ago (2014-08-19 23:30:38 UTC) #20
boliu
https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1538 content/browser/renderer_host/render_widget_host_view_android.cc:1538: if (using_synchronous_compositor_) On 2014/08/19 23:30:38, jdduke wrote: > On ...
6 years, 4 months ago (2014-08-19 23:37:47 UTC) #21
jdduke (slow)
https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1538 content/browser/renderer_host/render_widget_host_view_android.cc:1538: if (using_synchronous_compositor_) On 2014/08/19 23:37:47, boliu wrote: > What's ...
6 years, 4 months ago (2014-08-19 23:41:33 UTC) #22
hush (inactive)
https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1538 content/browser/renderer_host/render_widget_host_view_android.cc:1538: if (using_synchronous_compositor_) So there are 3 VSync Subscriber Types: ...
6 years, 4 months ago (2014-08-20 00:16:14 UTC) #23
jdduke (slow)
https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/60001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1538 content/browser/renderer_host/render_widget_host_view_android.cc:1538: if (using_synchronous_compositor_) On 2014/08/20 00:16:14, hush wrote: > So ...
6 years, 4 months ago (2014-08-20 00:21:33 UTC) #24
hush (inactive)
PS4: Chatted with Jared. We will just have 2 VSyncsubscriber types for now: INPUT and ...
6 years, 4 months ago (2014-08-20 02:29:39 UTC) #25
boliu
https://codereview.chromium.org/457913002/diff/80001/android_webview/java/src/org/chromium/android_webview/AwContents.java File android_webview/java/src/org/chromium/android_webview/AwContents.java (right): https://codereview.chromium.org/457913002/diff/80001/android_webview/java/src/org/chromium/android_webview/AwContents.java#newcode2047 android_webview/java/src/org/chromium/android_webview/AwContents.java:2047: if (SUPPORTS_ON_ANIMATION && mWindowAndroid != null && !mWindowAndroid.isInsideVSync()) { ...
6 years, 4 months ago (2014-08-20 02:54:17 UTC) #26
hush (inactive)
https://codereview.chromium.org/457913002/diff/80001/android_webview/java/src/org/chromium/android_webview/AwContents.java File android_webview/java/src/org/chromium/android_webview/AwContents.java (right): https://codereview.chromium.org/457913002/diff/80001/android_webview/java/src/org/chromium/android_webview/AwContents.java#newcode2047 android_webview/java/src/org/chromium/android_webview/AwContents.java:2047: if (SUPPORTS_ON_ANIMATION && mWindowAndroid != null && !mWindowAndroid.isInsideVSync()) { ...
6 years, 4 months ago (2014-08-20 03:47:21 UTC) #27
jdduke (slow)
https://codereview.chromium.org/457913002/diff/100001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/100001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode279 content/browser/renderer_host/render_widget_host_view_android.cc:279: UnsubscribeToVSync(INPUT | BEGIN_FRAME); Hmm, this isn't quite what I ...
6 years, 4 months ago (2014-08-20 04:11:53 UTC) #28
hush (inactive)
https://codereview.chromium.org/457913002/diff/100001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/100001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode279 content/browser/renderer_host/render_widget_host_view_android.cc:279: UnsubscribeToVSync(INPUT | BEGIN_FRAME); I see. I will remove |flush_input_requested_| ...
6 years, 4 months ago (2014-08-20 18:06:51 UTC) #29
hush (inactive)
PTAL
6 years, 4 months ago (2014-08-20 19:52:05 UTC) #30
boliu
I think subscribe/unsubscribe is kinda messy because it's missing a piece. You also want to ...
6 years, 4 months ago (2014-08-20 20:30:00 UTC) #31
hush (inactive)
PTAL https://codereview.chromium.org/457913002/diff/140001/android_webview/java/src/org/chromium/android_webview/AwContents.java File android_webview/java/src/org/chromium/android_webview/AwContents.java (right): https://codereview.chromium.org/457913002/diff/140001/android_webview/java/src/org/chromium/android_webview/AwContents.java#newcode762 android_webview/java/src/org/chromium/android_webview/AwContents.java:762: new WindowAndroid(mContext.getApplicationContext()); createAndInitializeContentViewCore is a static method. And ...
6 years, 4 months ago (2014-08-20 21:01:10 UTC) #32
hush (inactive)
Daniel, can you look at ui/ part? Thanks!
6 years, 4 months ago (2014-08-20 21:02:10 UTC) #33
no sievers
On 2014/08/20 21:02:10, hush wrote: > Daniel, > can you look at ui/ part? Thanks! ...
6 years, 4 months ago (2014-08-20 21:37:16 UTC) #34
boliu
https://codereview.chromium.org/457913002/diff/160001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/160001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode815 content/browser/renderer_host/render_widget_host_view_android.cc:815: if (using_synchronous_compositor_) { && !observing_root_window_ I think this should ...
6 years, 4 months ago (2014-08-20 21:41:53 UTC) #35
hush (inactive)
https://codereview.chromium.org/457913002/diff/160001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/160001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode815 content/browser/renderer_host/render_widget_host_view_android.cc:815: if (using_synchronous_compositor_) { I used to think doing this ...
6 years, 4 months ago (2014-08-20 22:07:32 UTC) #36
boliu
lgtm assuming you tested it actually works :)
6 years, 4 months ago (2014-08-21 02:53:34 UTC) #37
boliu
had a nit comment.. https://codereview.chromium.org/457913002/diff/180001/android_webview/java/src/org/chromium/android_webview/AwContents.java File android_webview/java/src/org/chromium/android_webview/AwContents.java (right): https://codereview.chromium.org/457913002/diff/180001/android_webview/java/src/org/chromium/android_webview/AwContents.java#newcode90 android_webview/java/src/org/chromium/android_webview/AwContents.java:90: private WindowAndroid mWindowAndroid; nit: move ...
6 years, 4 months ago (2014-08-21 02:53:47 UTC) #38
hush (inactive)
https://codereview.chromium.org/457913002/diff/180001/android_webview/java/src/org/chromium/android_webview/AwContents.java File android_webview/java/src/org/chromium/android_webview/AwContents.java (right): https://codereview.chromium.org/457913002/diff/180001/android_webview/java/src/org/chromium/android_webview/AwContents.java#newcode90 android_webview/java/src/org/chromium/android_webview/AwContents.java:90: private WindowAndroid mWindowAndroid; On 2014/08/21 02:53:47, boliu wrote: > ...
6 years, 4 months ago (2014-08-21 17:31:56 UTC) #39
hush (inactive)
https://codereview.chromium.org/457913002/diff/180001/android_webview/java/src/org/chromium/android_webview/AwContents.java File android_webview/java/src/org/chromium/android_webview/AwContents.java (right): https://codereview.chromium.org/457913002/diff/180001/android_webview/java/src/org/chromium/android_webview/AwContents.java#newcode90 android_webview/java/src/org/chromium/android_webview/AwContents.java:90: private WindowAndroid mWindowAndroid; On 2014/08/21 02:53:47, boliu wrote: > ...
6 years, 4 months ago (2014-08-21 17:31:57 UTC) #40
hush (inactive)
The CQ bit was checked by hush@chromium.org
6 years, 4 months ago (2014-08-21 17:41:21 UTC) #41
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/hush@chromium.org/457913002/200001
6 years, 4 months ago (2014-08-21 17:43:35 UTC) #42
boliu
The CQ bit was unchecked by boliu@chromium.org
6 years, 4 months ago (2014-08-21 17:45:33 UTC) #43
boliu
-cq No owner reviewed render_widget_host_view_android.cc yet
6 years, 4 months ago (2014-08-21 17:45:59 UTC) #44
no sievers
On 2014/08/21 17:45:59, boliu wrote: > -cq > > No owner reviewed render_widget_host_view_android.cc yet I ...
6 years, 4 months ago (2014-08-21 17:58:41 UTC) #45
no sievers
https://codereview.chromium.org/457913002/diff/200001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/200001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1309 content/browser/renderer_host/render_widget_host_view_android.cc:1309: content_view_core_->GetWindowAndroid()->AddObserver(this); Actually I'm not sure if this is a ...
6 years, 4 months ago (2014-08-21 18:01:23 UTC) #46
boliu
On 2014/08/21 17:58:41, sievers wrote: > On 2014/08/21 17:45:59, boliu wrote: > > -cq > ...
6 years, 4 months ago (2014-08-21 18:02:16 UTC) #47
boliu
https://codereview.chromium.org/457913002/diff/200001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/200001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1309 content/browser/renderer_host/render_widget_host_view_android.cc:1309: content_view_core_->GetWindowAndroid()->AddObserver(this); On 2014/08/21 18:01:22, sievers wrote: > Actually I'm ...
6 years, 4 months ago (2014-08-21 18:04:56 UTC) #48
no sievers
https://codereview.chromium.org/457913002/diff/200001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/200001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1309 content/browser/renderer_host/render_widget_host_view_android.cc:1309: content_view_core_->GetWindowAndroid()->AddObserver(this); On 2014/08/21 18:04:56, boliu wrote: > On 2014/08/21 ...
6 years, 4 months ago (2014-08-21 18:11:00 UTC) #49
boliu
https://codereview.chromium.org/457913002/diff/200001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/457913002/diff/200001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1309 content/browser/renderer_host/render_widget_host_view_android.cc:1309: content_view_core_->GetWindowAndroid()->AddObserver(this); On 2014/08/21 18:11:00, sievers wrote: > What if ...
6 years, 4 months ago (2014-08-21 18:22:52 UTC) #50
no sievers
On 2014/08/21 18:22:52, boliu wrote: > https://codereview.chromium.org/457913002/diff/200001/content/browser/renderer_host/render_widget_host_view_android.cc > File content/browser/renderer_host/render_widget_host_view_android.cc (right): > > https://codereview.chromium.org/457913002/diff/200001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1309 > ...
6 years, 4 months ago (2014-08-21 18:35:20 UTC) #51
hush (inactive)
6 years, 4 months ago (2014-08-21 21:57:51 UTC) #52
abandon this CL in favor of https://codereview.chromium.org/492923002/

The "isInsideVSync" bit is pulled out separately here:
https://codereview.chromium.org/470523006/

Powered by Google App Engine
This is Rietveld 408576698