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

Issue 2266863003: blimp: Move BlimpCompositor to use delegated rendering. (Closed)

Created:
4 years, 4 months ago by Khushal
Modified:
4 years, 4 months ago
CC:
chromium-reviews, anandc+watch-blimp_chromium.org, maniscalco+watch-blimp_chromium.org, sriramsr+watch-blimp_chromium.org, gcasto+watch-blimp_chromium.org, nyquist+watch-blimp_chromium.org, marcinjb+watch-blimp_chromium.org, jessicag+watch-blimp_chromium.org, kmarshall+watch-blimp_chromium.org, lethalantidote+watch-blimp_chromium.org, dtrainor+watch-blimp_chromium.org, shaktisahu+watch-blimp_chromium.org, khushalsagar+watch-blimp_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

blimp: Move BlimpCompositor to use delegated rendering. Currently the BlimpCompositor is the compositor that owns the cc::Display and delegated frames from it are directed to the display by the BlimpDelegatingOutputSurface. The lifetime of the display and the surfaces system is tied to the lifetime of the cc::OutputSurface, which is tied to the lifetime of the native widget. This diverges from the behavior expected when Blimp is embedded in Clank, which owns the Surfaces system and holds the UI compositor, which is the parent compositor that will embed content from the BlimpCompositor. This patch adds a BrowserCompositor to the blimp app, which performs the work of the UI compositor in Chrome. This ensures that Blimp always shares its content using a cc::SurfaceLayer, and the embedder is expected to own the cc::Surfaces system and push this content to the cc::Display. BUG=639950 Committed: https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308 Cr-Commit-Position: refs/heads/master@{#414325}

Patch Set 1 #

Total comments: 14

Patch Set 2 : Addressed comments. #

Patch Set 3 : works on linux. #

Patch Set 4 : tests work. #

Total comments: 1

Patch Set 5 : simplify display manager #

Total comments: 8

Patch Set 6 : addressed comments + tests. #

Total comments: 12

Patch Set 7 : addressed comments + final class fix. #

Patch Set 8 : Rebase. #

Patch Set 9 : make gn happy #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1347 lines, -732 lines) Patch
M blimp/BUILD.gn View 1 2 3 4 5 6 7 2 chunks +34 lines, -0 lines 0 comments Download
M blimp/client/BUILD.gn View 1 2 3 4 5 6 7 8 6 chunks +36 lines, -22 lines 0 comments Download
M blimp/client/app/android/blimp_compositor_manager_android.h View 1 chunk +11 lines, -7 lines 0 comments Download
M blimp/client/app/android/blimp_compositor_manager_android.cc View 2 chunks +12 lines, -4 lines 0 comments Download
M blimp/client/app/android/blimp_view.h View 5 chunks +14 lines, -11 lines 0 comments Download
M blimp/client/app/android/blimp_view.cc View 5 chunks +39 lines, -32 lines 0 comments Download
M blimp/client/app/android/java/src/org/chromium/blimp/BlimpView.java View 5 chunks +12 lines, -17 lines 0 comments Download
A blimp/client/app/compositor/browser_compositor.h View 1 1 chunk +103 lines, -0 lines 0 comments Download
A blimp/client/app/compositor/browser_compositor.cc View 1 2 3 4 5 6 1 chunk +225 lines, -0 lines 0 comments Download
M blimp/client/app/linux/blimp_display_manager.h View 1 2 3 4 4 chunks +8 lines, -11 lines 0 comments Download
M blimp/client/app/linux/blimp_display_manager.cc View 1 2 3 4 5 chunks +18 lines, -19 lines 0 comments Download
M blimp/client/core/BUILD.gn View 1 2 3 2 chunks +8 lines, -2 lines 0 comments Download
M blimp/client/core/compositor/BUILD.gn View 1 2 3 4 5 6 2 chunks +5 lines, -0 lines 0 comments Download
A blimp/client/core/compositor/blimp_output_surface.h View 1 2 3 4 5 6 1 chunk +57 lines, -0 lines 0 comments Download
A blimp/client/core/compositor/delegated_output_surface.h View 1 2 3 4 5 6 1 chunk +61 lines, -0 lines 0 comments Download
A blimp/client/core/compositor/delegated_output_surface.cc View 1 2 3 4 5 6 1 chunk +79 lines, -0 lines 0 comments Download
A blimp/client/core/compositor/delegated_output_surface_unittest.cc View 1 2 3 4 5 6 1 chunk +214 lines, -0 lines 0 comments Download
M blimp/client/feature/compositor/blimp_compositor.h View 1 2 3 4 5 6 8 chunks +79 lines, -72 lines 0 comments Download
M blimp/client/feature/compositor/blimp_compositor.cc View 1 2 3 4 5 6 7 chunks +139 lines, -137 lines 0 comments Download
M blimp/client/feature/compositor/blimp_compositor_manager.h View 6 chunks +28 lines, -24 lines 0 comments Download
M blimp/client/feature/compositor/blimp_compositor_manager.cc View 1 2 3 4 5 6 7 8 8 chunks +31 lines, -38 lines 0 comments Download
M blimp/client/feature/compositor/blimp_compositor_manager_unittest.cc View 1 2 3 4 5 6 7 9 chunks +44 lines, -28 lines 0 comments Download
M blimp/client/feature/compositor/blimp_compositor_unittest.cc View 1 2 3 6 chunks +20 lines, -24 lines 0 comments Download
M blimp/client/feature/compositor/blimp_context_provider.h View 1 chunk +2 lines, -3 lines 0 comments Download
D blimp/client/feature/compositor/blimp_delegating_output_surface.h View 1 chunk +0 lines, -71 lines 0 comments Download
D blimp/client/feature/compositor/blimp_delegating_output_surface.cc View 1 chunk +0 lines, -131 lines 0 comments Download
M blimp/client/feature/compositor/blimp_gpu_memory_buffer_manager.cc View 1 2 3 4 5 6 7 3 chunks +3 lines, -5 lines 0 comments Download
D blimp/client/feature/compositor/blimp_output_surface.h View 1 chunk +0 lines, -36 lines 0 comments Download
D blimp/client/feature/compositor/blimp_output_surface.cc View 1 chunk +0 lines, -35 lines 0 comments Download
M blimp/client/public/BUILD.gn View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -1 line 0 comments Download
M blimp/client/test/BUILD.gn View 1 2 3 4 5 6 7 8 1 chunk +5 lines, -1 line 0 comments Download
M blimp/test/BUILD.gn View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M blimp/test/run_all_unittests.cc View 1 2 3 1 chunk +54 lines, -1 line 0 comments Download

Messages

Total messages: 30 (12 generated)
Khushal
Need to update the tests and the linux client. The app works great. PTAL.
4 years, 4 months ago (2016-08-22 20:58:36 UTC) #2
David Trainor- moved to gerrit
small nits. https://codereview.chromium.org/2266863003/diff/1/blimp/client/app/compositor/browser_compositor.cc File blimp/client/app/compositor/browser_compositor.cc (right): https://codereview.chromium.org/2266863003/diff/1/blimp/client/app/compositor/browser_compositor.cc#newcode116 blimp/client/app/compositor/browser_compositor.cc:116: root_layer_->RemoveAllChildren(); Is all of this teardown needed? ...
4 years, 4 months ago (2016-08-22 23:58:10 UTC) #3
Khushal
https://codereview.chromium.org/2266863003/diff/1/blimp/client/app/compositor/browser_compositor.cc File blimp/client/app/compositor/browser_compositor.cc (right): https://codereview.chromium.org/2266863003/diff/1/blimp/client/app/compositor/browser_compositor.cc#newcode116 blimp/client/app/compositor/browser_compositor.cc:116: root_layer_->RemoveAllChildren(); On 2016/08/22 23:58:10, David Trainor wrote: > Is ...
4 years, 4 months ago (2016-08-23 02:53:12 UTC) #4
Khushal
https://codereview.chromium.org/2266863003/diff/60001/blimp/BUILD.gn File blimp/BUILD.gn (right): https://codereview.chromium.org/2266863003/diff/60001/blimp/BUILD.gn#newcode98 blimp/BUILD.gn:98: # which can be used in this file only. ...
4 years, 4 months ago (2016-08-23 05:14:34 UTC) #5
David Trainor- moved to gerrit
re JNI hookup, makes sense to me. We need this to run the blimp net ...
4 years, 4 months ago (2016-08-23 16:43:40 UTC) #6
Khushal
I moved all the threaded complexity within the DelegatedOutputSurface itself, so BlimpCompositor don't need to ...
4 years, 4 months ago (2016-08-24 16:13:43 UTC) #7
Khushal
On 2016/08/23 16:43:40, David Trainor wrote: > re JNI hookup, makes sense to me. We ...
4 years, 4 months ago (2016-08-24 16:14:34 UTC) #8
David Trainor- moved to gerrit
lgtm % nits https://codereview.chromium.org/2266863003/diff/100001/blimp/client/app/compositor/browser_compositor.cc File blimp/client/app/compositor/browser_compositor.cc (right): https://codereview.chromium.org/2266863003/diff/100001/blimp/client/app/compositor/browser_compositor.cc#newcode44 blimp/client/app/compositor/browser_compositor.cc:44: ~DisplayOutputSurface() override {} = default? https://codereview.chromium.org/2266863003/diff/100001/blimp/client/core/compositor/BUILD.gn ...
4 years, 4 months ago (2016-08-24 23:09:34 UTC) #9
Khushal
All done. CQing! :D https://codereview.chromium.org/2266863003/diff/100001/blimp/client/app/compositor/browser_compositor.cc File blimp/client/app/compositor/browser_compositor.cc (right): https://codereview.chromium.org/2266863003/diff/100001/blimp/client/app/compositor/browser_compositor.cc#newcode44 blimp/client/app/compositor/browser_compositor.cc:44: ~DisplayOutputSurface() override {} On 2016/08/24 ...
4 years, 4 months ago (2016-08-25 02:35:39 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2266863003/120001
4 years, 4 months ago (2016-08-25 02:36:37 UTC) #13
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/245660) mac_chromium_compile_dbg_ng on master.tryserver.chromium.mac (JOB_FAILED, ...
4 years, 4 months ago (2016-08-25 02:40:34 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2266863003/140001
4 years, 4 months ago (2016-08-25 03:01:10 UTC) #18
commit-bot: I haz the power
Try jobs failed on following builders: android_arm64_dbg_recipe on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_arm64_dbg_recipe/builds/118232) android_clang_dbg_recipe on master.tryserver.chromium.android (JOB_FAILED, ...
4 years, 4 months ago (2016-08-25 03:06:01 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2266863003/160001
4 years, 4 months ago (2016-08-25 04:13:46 UTC) #23
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/267300)
4 years, 4 months ago (2016-08-25 04:20:58 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2266863003/160001
4 years, 4 months ago (2016-08-25 05:04:22 UTC) #27
commit-bot: I haz the power
Committed patchset #9 (id:160001)
4 years, 4 months ago (2016-08-25 05:37:09 UTC) #28
commit-bot: I haz the power
4 years, 4 months ago (2016-08-25 05:39:56 UTC) #30
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/a498580e603b732faa90ccd61b99bb36271e4308
Cr-Commit-Position: refs/heads/master@{#414325}

Powered by Google App Engine
This is Rietveld 408576698