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

Issue 1911433002: Refactor BrowserViewRenderer-RenderThreadManager relationship. (Closed)

Created:
4 years, 8 months ago by Tobias Sargeant
Modified:
4 years, 8 months ago
Reviewers:
boliu
CC:
chromium-reviews, android-webview-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Refactor BrowserViewRenderer-RenderThreadManager relationship. Make BrowserViewRenderer a CompositorFrameProducer and RenderThreadManager a CompositorFrameConsumer, that implicitly have a 1:many relationship. Each end can notify the other when it is about to be destroyed, so that the relationship can be cleaned up appropriately. Both BVR and RTM must then cope with not having a valid association with the other. BUG=597167 Committed: https://crrev.com/ba29ba7e5d6dc86a7b316ac706f784072271c45b Cr-Commit-Position: refs/heads/master@{#389147}

Patch Set 1 #

Patch Set 2 : add new files #

Patch Set 3 : Test changes #

Patch Set 4 : Test fixes #

Patch Set 5 : Rebase #

Patch Set 6 : Allow BVR to cope with not having a compositor_frame_consumer_ #

Patch Set 7 : Cope with SetCompositorFrameConsumer(nullptr) #

Total comments: 33

Patch Set 8 : Address most comments #

Total comments: 11

Patch Set 9 : Return resources from old consumer when consumer changes. #

Total comments: 3

Patch Set 10 : test comments; delete hardware renderer immediately when we change compositor_frame_consumer_ #

Total comments: 1

Patch Set 11 : nits #

Patch Set 12 : mark ~RenderThreadManager override #

Unified diffs Side-by-side diffs Delta from patch set Stats (+209 lines, -98 lines) Patch
M android_webview/browser/browser_view_renderer.h View 1 2 3 4 5 6 7 6 chunks +13 lines, -8 lines 0 comments Download
M android_webview/browser/browser_view_renderer.cc View 1 2 3 4 5 6 7 8 9 8 chunks +42 lines, -21 lines 0 comments Download
M android_webview/browser/browser_view_renderer_unittest.cc View 1 2 3 4 5 6 7 8 9 2 chunks +2 lines, -2 lines 0 comments Download
A android_webview/browser/compositor_frame_consumer.h View 1 2 3 4 5 6 7 1 chunk +50 lines, -0 lines 0 comments Download
A android_webview/browser/compositor_frame_producer.h View 1 2 3 4 5 6 7 1 chunk +23 lines, -0 lines 0 comments Download
M android_webview/browser/render_thread_manager.h View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +18 lines, -21 lines 0 comments Download
M android_webview/browser/render_thread_manager.cc View 1 2 3 4 5 6 7 5 chunks +13 lines, -1 line 0 comments Download
M android_webview/browser/render_thread_manager_client.h View 1 2 3 4 1 chunk +0 lines, -2 lines 0 comments Download
M android_webview/browser/test/rendering_test.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +7 lines, -1 line 0 comments Download
M android_webview/browser/test/rendering_test.cc View 1 2 3 4 5 6 7 8 9 3 chunks +35 lines, -6 lines 0 comments Download
M android_webview/native/aw_contents.h View 1 chunk +0 lines, -3 lines 0 comments Download
M android_webview/native/aw_contents.cc View 1 2 2 chunks +3 lines, -11 lines 0 comments Download
M android_webview/native/aw_gl_functor.h View 1 2 3 4 5 6 7 2 chunks +2 lines, -7 lines 0 comments Download
M android_webview/native/aw_gl_functor.cc View 1 2 3 4 3 chunks +1 line, -15 lines 0 comments Download

Messages

Total messages: 26 (10 generated)
Tobias Sargeant
4 years, 8 months ago (2016-04-21 16:31:53 UTC) #2
boliu
didn't look at tests https://codereview.chromium.org/1911433002/diff/120001/android_webview/browser/browser_view_renderer.cc File android_webview/browser/browser_view_renderer.cc (right): https://codereview.chromium.org/1911433002/diff/120001/android_webview/browser/browser_view_renderer.cc#newcode115 android_webview/browser/browser_view_renderer.cc:115: compositor_frame_consumer_->OnCompositorFrameProducerWillDestroy(); This seems redundant. Just ...
4 years, 8 months ago (2016-04-21 17:05:40 UTC) #5
boliu
https://codereview.chromium.org/1911433002/diff/120001/android_webview/browser/browser_view_renderer.cc File android_webview/browser/browser_view_renderer.cc (right): https://codereview.chromium.org/1911433002/diff/120001/android_webview/browser/browser_view_renderer.cc#newcode267 android_webview/browser/browser_view_renderer.cc:267: DCHECK(compositor_frame_consumer_ == compositor_frame_consumer); On 2016/04/21 17:05:39, boliu wrote: > ...
4 years, 8 months ago (2016-04-21 17:07:43 UTC) #6
Tobias Sargeant
https://codereview.chromium.org/1911433002/diff/120001/android_webview/browser/browser_view_renderer.cc File android_webview/browser/browser_view_renderer.cc (right): https://codereview.chromium.org/1911433002/diff/120001/android_webview/browser/browser_view_renderer.cc#newcode115 android_webview/browser/browser_view_renderer.cc:115: compositor_frame_consumer_->OnCompositorFrameProducerWillDestroy(); On 2016/04/21 17:05:39, boliu wrote: > This seems ...
4 years, 8 months ago (2016-04-21 17:21:12 UTC) #7
boliu
https://codereview.chromium.org/1911433002/diff/120001/android_webview/browser/browser_view_renderer.cc File android_webview/browser/browser_view_renderer.cc (right): https://codereview.chromium.org/1911433002/diff/120001/android_webview/browser/browser_view_renderer.cc#newcode203 android_webview/browser/browser_view_renderer.cc:203: if (!compositor_frame_consumer_) { On 2016/04/21 17:21:12, Tobias Sargeant wrote: ...
4 years, 8 months ago (2016-04-21 17:25:47 UTC) #8
Tobias Sargeant
https://codereview.chromium.org/1911433002/diff/120001/android_webview/browser/browser_view_renderer.cc File android_webview/browser/browser_view_renderer.cc (right): https://codereview.chromium.org/1911433002/diff/120001/android_webview/browser/browser_view_renderer.cc#newcode115 android_webview/browser/browser_view_renderer.cc:115: compositor_frame_consumer_->OnCompositorFrameProducerWillDestroy(); On 2016/04/21 17:05:39, boliu wrote: > This seems ...
4 years, 8 months ago (2016-04-21 17:48:27 UTC) #9
boliu
looked at diff https://codereview.chromium.org/1911433002/diff/120001/android_webview/browser/browser_view_renderer.cc File android_webview/browser/browser_view_renderer.cc (right): https://codereview.chromium.org/1911433002/diff/120001/android_webview/browser/browser_view_renderer.cc#newcode203 android_webview/browser/browser_view_renderer.cc:203: if (!compositor_frame_consumer_) { On 2016/04/21 17:25:46, ...
4 years, 8 months ago (2016-04-21 18:01:33 UTC) #10
boliu
https://codereview.chromium.org/1911433002/diff/140001/android_webview/browser/browser_view_renderer_unittest.cc File android_webview/browser/browser_view_renderer_unittest.cc (right): https://codereview.chromium.org/1911433002/diff/140001/android_webview/browser/browser_view_renderer_unittest.cc#newcode11 android_webview/browser/browser_view_renderer_unittest.cc:11: #include "android_webview/browser/render_thread_manager.h" needed? https://codereview.chromium.org/1911433002/diff/140001/android_webview/browser/test/rendering_test.cc File android_webview/browser/test/rendering_test.cc (right): https://codereview.chromium.org/1911433002/diff/140001/android_webview/browser/test/rendering_test.cc#newcode22 android_webview/browser/test/rendering_test.cc:22: ...
4 years, 8 months ago (2016-04-21 18:14:11 UTC) #11
boliu
yeah, should add a unit test that RTM is destroyed first, and all resources are ...
4 years, 8 months ago (2016-04-21 18:16:39 UTC) #12
Tobias Sargeant
https://codereview.chromium.org/1911433002/diff/140001/android_webview/browser/browser_view_renderer_unittest.cc File android_webview/browser/browser_view_renderer_unittest.cc (right): https://codereview.chromium.org/1911433002/diff/140001/android_webview/browser/browser_view_renderer_unittest.cc#newcode11 android_webview/browser/browser_view_renderer_unittest.cc:11: #include "android_webview/browser/render_thread_manager.h" On 2016/04/21 18:14:10, boliu wrote: > needed? ...
4 years, 8 months ago (2016-04-22 11:42:23 UTC) #13
boliu
lgtm % style nit https://codereview.chromium.org/1911433002/diff/160001/android_webview/browser/browser_view_renderer.cc File android_webview/browser/browser_view_renderer.cc (right): https://codereview.chromium.org/1911433002/diff/160001/android_webview/browser/browser_view_renderer.cc#newcode124 android_webview/browser/browser_view_renderer.cc:124: ReturnResourceFromParent(compositor_frame_consumer_); On 2016/04/22 11:42:22, Tobias ...
4 years, 8 months ago (2016-04-22 15:34:37 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1911433002/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1911433002/200001
4 years, 8 months ago (2016-04-22 15:46:41 UTC) #17
commit-bot: I haz the power
Try jobs failed on following builders: android_clang_dbg_recipe on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_clang_dbg_recipe/builds/55189)
4 years, 8 months ago (2016-04-22 16:13:00 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1911433002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1911433002/220001
4 years, 8 months ago (2016-04-22 16:21:04 UTC) #22
commit-bot: I haz the power
Committed patchset #12 (id:220001)
4 years, 8 months ago (2016-04-22 17:06:10 UTC) #24
commit-bot: I haz the power
4 years, 8 months ago (2016-04-22 19:49:07 UTC) #26
Message was sent while issue was closed.
Patchset 12 (id:??) landed as
https://crrev.com/ba29ba7e5d6dc86a7b316ac706f784072271c45b
Cr-Commit-Position: refs/heads/master@{#389147}

Powered by Google App Engine
This is Rietveld 408576698