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

Issue 394113002: Tiling priorities in Android Webview. (Closed)

Created:
6 years, 5 months ago by hush (inactive)
Modified:
6 years, 4 months ago
CC:
android-webview-reviews_chromium.org, cc-bugs_chromium.org, chromium-reviews, danakj, darin-cc_chromium.org, jam
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Tiling priorities in Android Webview. Use the parent compositor's clip and transform for tile priorities in child compositor. When the transform matrix changes in parent compositor (hardware_renderer.cc), it posts the matrix and the clip to the child compositor. (The parent clip is in screen space and the parent matrix transforms from webview space to screen space) Child compositor will use them for tile prioritization. In child compositor during updating tile priority, the clip from parent is transformed from screen space to view space, then from view space to content space. Then the result rect will intersect with content_bounds() and the intersection is used as tile priority input. BUG=372073 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=286731

Patch Set 1 #

Patch Set 2 : #

Total comments: 17

Patch Set 3 : #

Total comments: 12

Patch Set 4 : Address comments #

Total comments: 4

Patch Set 5 : #

Patch Set 6 : call set_needs_update_draw_properties #

Patch Set 7 : Use surface size if WebView is on a hardware layer #

Patch Set 8 : #

Patch Set 9 : #

Total comments: 7

Patch Set 10 : address enne@ comments #

Patch Set 11 : #

Total comments: 4

Patch Set 12 : setExternalDrawConstraints parameter names #

Patch Set 13 : added a unit test for PictureLayerImpl #

Total comments: 37

Patch Set 14 : address Bo's comments #

Patch Set 15 : Less unnecessary postInvalidate #

Patch Set 16 : clean up the APIs in BVR client a little #

Total comments: 6

Patch Set 17 : #

Patch Set 18 : address Bo's comments #

Total comments: 4

Patch Set 19 : #

Patch Set 20 : #

Patch Set 21 : rebase #

Patch Set 22 : fix gpu_rasterization test #

Patch Set 23 : better fix #

Unified diffs Side-by-side diffs Delta from patch set Stats (+475 lines, -76 lines) Patch
M android_webview/android_webview.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +2 lines, -0 lines 0 comments Download
M android_webview/browser/browser_view_renderer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 3 chunks +7 lines, -0 lines 0 comments Download
M android_webview/browser/browser_view_renderer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +28 lines, -5 lines 0 comments Download
M android_webview/browser/browser_view_renderer_client.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +3 lines, -0 lines 0 comments Download
M android_webview/browser/hardware_renderer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 chunks +3 lines, -0 lines 0 comments Download
M android_webview/browser/hardware_renderer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 chunks +15 lines, -3 lines 0 comments Download
A android_webview/browser/parent_compositor_draw_constraints.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +27 lines, -0 lines 0 comments Download
A android_webview/browser/parent_compositor_draw_constraints.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +29 lines, -0 lines 0 comments Download
M android_webview/browser/parent_output_surface.cc View 1 2 3 1 chunk +2 lines, -1 line 0 comments Download
M android_webview/browser/shared_renderer_state.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 4 chunks +7 lines, -0 lines 0 comments Download
M android_webview/browser/shared_renderer_state.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +25 lines, -0 lines 0 comments Download
M android_webview/native/aw_contents.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -0 lines 0 comments Download
M android_webview/native/aw_contents.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +5 lines, -0 lines 0 comments Download
M cc/layers/picture_layer_impl.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -1 line 0 comments Download
M cc/layers/picture_layer_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 +15 lines, -8 lines 0 comments Download
M cc/layers/picture_layer_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 12 chunks +162 lines, -30 lines 0 comments Download
M cc/output/output_surface.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +7 lines, -4 lines 0 comments Download
M cc/output/output_surface.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +8 lines, -2 lines 0 comments Download
M cc/output/output_surface_client.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +7 lines, -4 lines 0 comments Download
M cc/resources/picture_layer_tiling.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +4 lines, -0 lines 0 comments Download
M cc/surfaces/display.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
M cc/test/fake_output_surface_client.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
M cc/test/fake_picture_layer_impl.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -2 lines 0 comments Download
M cc/test/layer_tree_pixel_test.cc View 1 2 3 1 chunk +7 lines, -2 lines 0 comments Download
M cc/trees/layer_tree_host_impl.h View 1 2 3 4 5 6 7 8 9 10 11 22 3 chunks +9 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host_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 3 chunks +26 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +8 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_impl.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +8 lines, -0 lines 0 comments Download
M content/browser/android/in_process/synchronous_compositor_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -1 line 0 comments Download
M content/browser/android/in_process/synchronous_compositor_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +9 lines, -2 lines 0 comments Download
M content/browser/android/in_process/synchronous_compositor_output_surface.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +11 lines, -4 lines 0 comments Download
M content/browser/android/in_process/synchronous_compositor_output_surface.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +25 lines, -5 lines 0 comments Download
M content/public/browser/android/synchronous_compositor.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -1 line 0 comments Download

Messages

Total messages: 49 (0 generated)
hush (inactive)
boliu@ and aelias@ for the first pass
6 years, 5 months ago (2014-07-16 00:08:31 UTC) #1
aelias_OOO_until_Jul13
https://codereview.chromium.org/394113002/diff/20001/android_webview/browser/shared_renderer_state.cc File android_webview/browser/shared_renderer_state.cc (right): https://codereview.chromium.org/394113002/diff/20001/android_webview/browser/shared_renderer_state.cc#newcode58 android_webview/browser/shared_renderer_state.cc:58: if (ui_loop_->BelongsToCurrentThread()) { I don't think this is a ...
6 years, 5 months ago (2014-07-16 00:32:57 UTC) #2
boliu
https://codereview.chromium.org/394113002/diff/40001/android_webview/browser/browser_view_renderer.cc File android_webview/browser/browser_view_renderer.cc (right): https://codereview.chromium.org/394113002/diff/40001/android_webview/browser/browser_view_renderer.cc#newcode266 android_webview/browser/browser_view_renderer.cc:266: if (shared_renderer_state_->IsParentDrawConstraintsDirty()) { Don't bother with dirty. Copying 16 ...
6 years, 5 months ago (2014-07-16 17:25:10 UTC) #3
hush (inactive)
https://codereview.chromium.org/394113002/diff/20001/android_webview/browser/shared_renderer_state.cc File android_webview/browser/shared_renderer_state.cc (right): https://codereview.chromium.org/394113002/diff/20001/android_webview/browser/shared_renderer_state.cc#newcode58 android_webview/browser/shared_renderer_state.cc:58: if (ui_loop_->BelongsToCurrentThread()) { This feels like refatoring. I will ...
6 years, 5 months ago (2014-07-16 20:45:33 UTC) #4
aelias_OOO_until_Jul13
OK, over to danakj@ for initial CC review. Note that hush@ said he will write ...
6 years, 5 months ago (2014-07-16 21:23:32 UTC) #5
aelias_OOO_until_Jul13
https://codereview.chromium.org/394113002/diff/20001/android_webview/browser/shared_renderer_state.cc File android_webview/browser/shared_renderer_state.cc (right): https://codereview.chromium.org/394113002/diff/20001/android_webview/browser/shared_renderer_state.cc#newcode58 android_webview/browser/shared_renderer_state.cc:58: if (ui_loop_->BelongsToCurrentThread()) { On 2014/07/16 21:23:31, aelias wrote: > ...
6 years, 5 months ago (2014-07-16 21:26:34 UTC) #6
hush (inactive)
https://codereview.chromium.org/394113002/diff/20001/android_webview/browser/shared_renderer_state.cc File android_webview/browser/shared_renderer_state.cc (right): https://codereview.chromium.org/394113002/diff/20001/android_webview/browser/shared_renderer_state.cc#newcode58 android_webview/browser/shared_renderer_state.cc:58: if (ui_loop_->BelongsToCurrentThread()) { Yes. I was reacting to Bo's ...
6 years, 5 months ago (2014-07-17 00:05:53 UTC) #7
boliu
https://codereview.chromium.org/394113002/diff/20001/android_webview/browser/shared_renderer_state.cc File android_webview/browser/shared_renderer_state.cc (right): https://codereview.chromium.org/394113002/diff/20001/android_webview/browser/shared_renderer_state.cc#newcode97 android_webview/browser/shared_renderer_state.cc:97: base::AutoLock lock(lock_); On 2014/07/16 20:45:32, hush wrote: > I ...
6 years, 5 months ago (2014-07-17 01:51:58 UTC) #8
hush (inactive)
Patch set 7: when the WebView is on a hardware layer (View.LAYER_TYPE_HARDWARE), the parent transform ...
6 years, 5 months ago (2014-07-19 03:48:21 UTC) #9
aelias_OOO_until_Jul13
+enne for CC review. Note that hush@ said he'll add tests after initial approval of ...
6 years, 5 months ago (2014-07-21 18:35:49 UTC) #10
hush (inactive)
ping?
6 years, 5 months ago (2014-07-24 06:21:06 UTC) #11
enne (OOO)
(Can you also format your change description to wrap at 72 columns?) https://codereview.chromium.org/394113002/diff/160001/cc/layers/picture_layer_impl.cc File cc/layers/picture_layer_impl.cc ...
6 years, 5 months ago (2014-07-24 19:25:20 UTC) #12
hush (inactive)
https://codereview.chromium.org/394113002/diff/160001/cc/layers/picture_layer_impl.cc File cc/layers/picture_layer_impl.cc (right): https://codereview.chromium.org/394113002/diff/160001/cc/layers/picture_layer_impl.cc#newcode201 cc/layers/picture_layer_impl.cc:201: SkColor color; This is just a minor performance improvement. ...
6 years, 5 months ago (2014-07-24 23:29:37 UTC) #13
enne (OOO)
https://codereview.chromium.org/394113002/diff/160001/cc/layers/picture_layer_impl.cc File cc/layers/picture_layer_impl.cc (right): https://codereview.chromium.org/394113002/diff/160001/cc/layers/picture_layer_impl.cc#newcode201 cc/layers/picture_layer_impl.cc:201: SkColor color; On 2014/07/24 23:29:37, hush wrote: > This ...
6 years, 5 months ago (2014-07-24 23:34:29 UTC) #14
hush (inactive)
https://codereview.chromium.org/394113002/diff/160001/cc/layers/picture_layer_impl.cc File cc/layers/picture_layer_impl.cc (right): https://codereview.chromium.org/394113002/diff/160001/cc/layers/picture_layer_impl.cc#newcode201 cc/layers/picture_layer_impl.cc:201: SkColor color; Okay. I will just revert this part. ...
6 years, 5 months ago (2014-07-24 23:48:07 UTC) #15
enne (OOO)
https://codereview.chromium.org/394113002/diff/200001/cc/trees/layer_tree_host_impl.cc File cc/trees/layer_tree_host_impl.cc (right): https://codereview.chromium.org/394113002/diff/200001/cc/trees/layer_tree_host_impl.cc#newcode1350 cc/trees/layer_tree_host_impl.cc:1350: const gfx::Transform& external_tiling_transform, Does cc even need to know ...
6 years, 5 months ago (2014-07-25 18:44:31 UTC) #16
aelias_OOO_until_Jul13
On 2014/07/25 at 18:44:31, enne wrote: > https://codereview.chromium.org/394113002/diff/200001/cc/trees/layer_tree_host_impl.cc > File cc/trees/layer_tree_host_impl.cc (right): > > https://codereview.chromium.org/394113002/diff/200001/cc/trees/layer_tree_host_impl.cc#newcode1350 ...
6 years, 5 months ago (2014-07-25 18:53:35 UTC) #17
enne (OOO)
On 2014/07/25 at 18:53:35, aelias wrote: > On 2014/07/25 at 18:44:31, enne wrote: > > ...
6 years, 5 months ago (2014-07-25 18:56:17 UTC) #18
aelias_OOO_until_Jul13
On 2014/07/25 at 18:56:17, enne wrote: > On 2014/07/25 at 18:53:35, aelias wrote: > > ...
6 years, 5 months ago (2014-07-25 19:04:31 UTC) #19
enne (OOO)
On 2014/07/25 at 19:04:31, aelias wrote: > On 2014/07/25 at 18:56:17, enne wrote: > > ...
6 years, 5 months ago (2014-07-25 19:09:27 UTC) #20
aelias_OOO_until_Jul13
OK, sounds good to leave as is then. hush@, please write some new CC tests ...
6 years, 5 months ago (2014-07-25 19:11:47 UTC) #21
enne (OOO)
https://codereview.chromium.org/394113002/diff/200001/cc/output/output_surface.h File cc/output/output_surface.h (right): https://codereview.chromium.org/394113002/diff/200001/cc/output/output_surface.h#newcode170 cc/output/output_surface.h:170: const gfx::Rect& external_tiling_rect, In general this patch looks fine ...
6 years, 5 months ago (2014-07-25 19:16:55 UTC) #22
hush (inactive)
https://codereview.chromium.org/394113002/diff/200001/cc/output/output_surface.h File cc/output/output_surface.h (right): https://codereview.chromium.org/394113002/diff/200001/cc/output/output_surface.h#newcode170 cc/output/output_surface.h:170: const gfx::Rect& external_tiling_rect, This function name actually suggests all ...
6 years, 4 months ago (2014-07-29 00:55:57 UTC) #23
hush (inactive)
Hi Alex, I wrote unit test for PictureLayerImpl. Can you take a look? Hi Bo, ...
6 years, 4 months ago (2014-07-29 18:28:51 UTC) #24
enne (OOO)
https://codereview.chromium.org/394113002/diff/200001/cc/output/output_surface.h File cc/output/output_surface.h (right): https://codereview.chromium.org/394113002/diff/200001/cc/output/output_surface.h#newcode170 cc/output/output_surface.h:170: const gfx::Rect& external_tiling_rect, On 2014/07/29 00:55:57, hush wrote: > ...
6 years, 4 months ago (2014-07-29 18:39:28 UTC) #25
boliu
https://codereview.chromium.org/394113002/diff/240001/android_webview/browser/browser_view_renderer.cc File android_webview/browser/browser_view_renderer.cc (right): https://codereview.chromium.org/394113002/diff/240001/android_webview/browser/browser_view_renderer.cc#newcode8 android_webview/browser/browser_view_renderer.cc:8: #include "android_webview/browser/parent_compositor_draw_constraints.h" This include should be in browser_view_renderer.h, so ...
6 years, 4 months ago (2014-07-29 19:02:42 UTC) #26
hush (inactive)
https://codereview.chromium.org/394113002/diff/240001/android_webview/browser/browser_view_renderer.cc File android_webview/browser/browser_view_renderer.cc (right): https://codereview.chromium.org/394113002/diff/240001/android_webview/browser/browser_view_renderer.cc#newcode8 android_webview/browser/browser_view_renderer.cc:8: #include "android_webview/browser/parent_compositor_draw_constraints.h" I did compile this successfully, due to ...
6 years, 4 months ago (2014-07-29 21:14:22 UTC) #27
aelias_OOO_until_Jul13
Thanks for the test, and it looks like enne@'s comments were all addressed. lgtm for ...
6 years, 4 months ago (2014-07-29 22:59:45 UTC) #28
enne (OOO)
cc lgtm2, thanks.
6 years, 4 months ago (2014-07-29 23:12:05 UTC) #29
hush (inactive)
+Yaron for content/ reviews
6 years, 4 months ago (2014-07-29 23:15:56 UTC) #30
boliu
https://codereview.chromium.org/394113002/diff/300001/android_webview/browser/browser_view_renderer_client.h File android_webview/browser/browser_view_renderer_client.h (right): https://codereview.chromium.org/394113002/diff/300001/android_webview/browser/browser_view_renderer_client.h#newcode34 android_webview/browser/browser_view_renderer_client.h:34: virtual void InvalidateOnceIfNeeded() = 0; Call this something like ...
6 years, 4 months ago (2014-07-29 23:50:41 UTC) #31
hush (inactive)
https://codereview.chromium.org/394113002/diff/300001/android_webview/browser/browser_view_renderer_client.h File android_webview/browser/browser_view_renderer_client.h (right): https://codereview.chromium.org/394113002/diff/300001/android_webview/browser/browser_view_renderer_client.h#newcode34 android_webview/browser/browser_view_renderer_client.h:34: virtual void InvalidateOnceIfNeeded() = 0; Renamed it to UpdateParentDrawConstraints. ...
6 years, 4 months ago (2014-07-30 00:11:33 UTC) #32
boliu
android webview lgtm % last two comments sync compositor looks good too, although I'm not ...
6 years, 4 months ago (2014-07-30 00:16:37 UTC) #33
hush (inactive)
https://codereview.chromium.org/394113002/diff/340001/android_webview/browser/browser_view_renderer.h File android_webview/browser/browser_view_renderer.h (right): https://codereview.chromium.org/394113002/diff/340001/android_webview/browser/browser_view_renderer.h#newcode151 android_webview/browser/browser_view_renderer.h:151: void SetTotalRootLayerScrollOffset(gfx::Vector2dF new_value_dip); Done On 2014/07/30 00:16:37, boliu wrote: ...
6 years, 4 months ago (2014-07-30 00:34:30 UTC) #34
Yaron
lgtm
6 years, 4 months ago (2014-07-30 17:43:27 UTC) #35
hush (inactive)
The CQ bit was checked by hush@chromium.org
6 years, 4 months ago (2014-07-30 17:52:27 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/hush@chromium.org/394113002/380001
6 years, 4 months ago (2014-07-30 17:53:27 UTC) #37
Ken Russell (switch to Gerrit)
On 2014/07/30 17:53:27, I haz the power (commit-bot) wrote: > CQ is trying da patch. ...
6 years, 4 months ago (2014-07-30 18:30:53 UTC) #38
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: linux_gpu_triggered_tests on tryserver.chromium.gpu ...
6 years, 4 months ago (2014-07-30 19:24:27 UTC) #39
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 4 months ago (2014-07-30 19:45:40 UTC) #40
commit-bot: I haz the power
Try jobs failed on following builders: mac_gpu_retina_triggered_tests on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/mac_gpu_retina_triggered_tests/builds/29962) mac_gpu_triggered_tests on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/mac_gpu_triggered_tests/builds/30014)
6 years, 4 months ago (2014-07-30 19:45:41 UTC) #41
hush (inactive)
On 2014/07/30 19:45:41, I haz the power (commit-bot) wrote: > Try jobs failed on following ...
6 years, 4 months ago (2014-07-30 21:08:25 UTC) #42
hush (inactive)
I just uploaded a patch for fixing gpu_rasterization test. The test passed locally on my ...
6 years, 4 months ago (2014-07-30 21:55:18 UTC) #43
aelias_OOO_until_Jul13
Hmm, sorry, I don't like this new boolean. The irreversible modal nature of it feels ...
6 years, 4 months ago (2014-07-30 22:19:35 UTC) #44
aelias_OOO_until_Jul13
Thanks for removing the boolean. cc/ lgtm again
6 years, 4 months ago (2014-07-30 22:37:57 UTC) #45
hush (inactive)
The CQ bit was checked by hush@chromium.org
6 years, 4 months ago (2014-07-30 22:45:18 UTC) #46
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/hush@chromium.org/394113002/420001
6 years, 4 months ago (2014-07-30 22:48:22 UTC) #47
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: mac_chromium_compile_dbg on tryserver.chromium.mac ...
6 years, 4 months ago (2014-07-31 04:33:36 UTC) #48
commit-bot: I haz the power
6 years, 4 months ago (2014-07-31 09:09:41 UTC) #49
Message was sent while issue was closed.
Change committed as 286731

Powered by Google App Engine
This is Rietveld 408576698