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

Issue 2036563002: Delete OnscreenDisplayClient and TopLevelDisplayClient. (Closed)

Created:
4 years, 6 months ago by danakj
Modified:
4 years, 6 months ago
CC:
chromium-reviews, rjkroege, Ian Vollick, jam, sievers+watch_chromium.org, jbauman+watch_chromium.org, darin-cc_chromium.org, kalyank, piman+watch_chromium.org, cc-bugs_chromium.org, danakj+watch_chromium.org, Fady Samuel, piman, sadrul
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Delete OnscreenDisplayClient and TopLevelDisplayClient. These classes just own Display and forward along the client calls to the owner of themselves. Instead, have code own a cc::Display directly. Part of this reworks how OutputSurface gets to the Display. Previously the OnscreenDisplayClient would hold the OutputSurface created during creation of the delegated OutputSurface to be given to the compositor. But it wouldn't be given to the Display until the compositor bound the delegated OutputSurface from LayerTreeHostImpl. Now, we give the display's OutputSurface to it at construction time of the Display. The Display will continue to bind it when it is Initialize()'d by the delegated output surface in the compositor being bound. However, now the DisplayClient (the delegated OutputSurface) is created after the Display is, since it wants to have a pointer to the Display. So we give the DisplayClient to the Display at the time of Initialize(). Lastly, SurfaceDisplayOutputSurface was doing some shady things to avoid binding the lost context callback on the shared context provider (shared between the compositor's delegated and the display's OutputSurface) more that once. It would avoid calling OutputSurface::BindToClient() and implemented it partially itself. I changed this to call the parent but just unset the callback with a comment explaining that we want it to go to the Display (via its own OutputSurface) first, so we have it set up the callback (which happens in Initialize). The point of this whole thing was to work on merging the two delegated- to-a-display output surface implementations: SurfaceDisplayOutputSurface and PixelTestDelegatingOutputSurface. In the end this doesn't appear feasible since the PixelTestDelegatingOutputSurface is meant for the renderer, which can have a threaded compositor. In that case, the Display, SurfaceManager, etc should be created, used and destroyed on the compositor thread since they are not threadsafe. At least hopefully this makes ownership more clear. R=enne@chromium.org, fsamuel@chromium.org, jbauman@chromium.org, sievers@chromium.org BUG=487471 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Committed: https://crrev.com/324faea6be5251efbffb7438876478500b5532cf Cr-Commit-Position: refs/heads/master@{#399348}

Patch Set 1 #

Patch Set 2 : onscreendisplayclient: fix-cc-unittests-build #

Patch Set 3 : onscreendisplayclient: webview #

Patch Set 4 : onscreendisplayclient: webviewforthereals #

Patch Set 5 : onscreendisplayclient: fix-software-compositing #

Patch Set 6 : onscreendisplayclient: rebase #

Patch Set 7 : onscreendisplayclient: exportedbase #

Patch Set 8 : onscreendisplayclient: rebase #

Patch Set 9 : onscreendisplayclient: webview-scoped-allow-gl-for-hardwarerenderer-constructor #

Unified diffs Side-by-side diffs Delta from patch set Stats (+376 lines, -593 lines) Patch
M android_webview/browser/hardware_renderer.h View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M android_webview/browser/hardware_renderer.cc View 1 2 3 2 chunks +11 lines, -12 lines 0 comments Download
M android_webview/browser/render_thread_manager.cc View 1 2 3 4 5 6 7 8 1 chunk +7 lines, -5 lines 0 comments Download
M cc/cc.gyp View 1 2 3 4 5 6 7 1 chunk +0 lines, -2 lines 0 comments Download
M cc/surfaces/BUILD.gn View 1 2 3 4 5 6 7 1 chunk +0 lines, -2 lines 0 comments Download
M cc/surfaces/display.h View 4 chunks +17 lines, -13 lines 0 comments Download
M cc/surfaces/display.cc View 1 2 3 4 5 6 7 8 chunks +21 lines, -30 lines 0 comments Download
M cc/surfaces/display_client.h View 1 chunk +2 lines, -10 lines 0 comments Download
M cc/surfaces/display_unittest.cc View 4 chunks +28 lines, -23 lines 0 comments Download
D cc/surfaces/onscreen_display_client.h View 1 chunk +0 lines, -69 lines 0 comments Download
D cc/surfaces/onscreen_display_client.cc View 1 chunk +0 lines, -52 lines 0 comments Download
M cc/surfaces/surface_display_output_surface.h View 1 2 3 4 5 6 3 chunks +20 lines, -12 lines 0 comments Download
M cc/surfaces/surface_display_output_surface.cc View 1 2 3 4 2 chunks +64 lines, -35 lines 0 comments Download
M cc/surfaces/surface_display_output_surface_unittest.cc View 1 4 chunks +47 lines, -80 lines 0 comments Download
M cc/test/pixel_test_delegating_output_surface.h View 1 chunk +7 lines, -3 lines 0 comments Download
M cc/test/pixel_test_delegating_output_surface.cc View 4 chunks +16 lines, -14 lines 0 comments Download
M components/mus/surfaces/BUILD.gn View 1 2 3 4 5 6 7 1 chunk +0 lines, -2 lines 0 comments Download
M components/mus/surfaces/display_compositor.h View 4 chunks +12 lines, -4 lines 0 comments Download
M components/mus/surfaces/display_compositor.cc View 4 chunks +23 lines, -13 lines 0 comments Download
D components/mus/surfaces/top_level_display_client.h View 1 chunk +0 lines, -56 lines 0 comments Download
D components/mus/surfaces/top_level_display_client.cc View 1 chunk +0 lines, -47 lines 0 comments Download
M content/browser/compositor/gpu_process_transport_factory.cc View 1 2 3 4 5 11 chunks +58 lines, -60 lines 0 comments Download
M content/browser/renderer_host/compositor_impl_android.h View 2 chunks +2 lines, -2 lines 0 comments Download
M content/browser/renderer_host/compositor_impl_android.cc View 1 2 3 4 5 6 7 7 chunks +23 lines, -25 lines 0 comments Download
M ui/compositor/test/in_process_context_factory.h View 3 chunks +4 lines, -2 lines 0 comments Download
M ui/compositor/test/in_process_context_factory.cc View 4 chunks +12 lines, -18 lines 0 comments Download

Messages

Total messages: 65 (29 generated)
danakj
4 years, 6 months ago (2016-06-01 23:57:48 UTC) #4
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036563002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/2036563002/1
4 years, 6 months ago (2016-06-01 23:58:32 UTC) #5
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: mac_chromium_compile_dbg_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_compile_dbg_ng/builds/212703) mac_chromium_rel_ng on ...
4 years, 6 months ago (2016-06-02 00:12:36 UTC) #7
Fady Samuel
mus lgtm
4 years, 6 months ago (2016-06-02 00:24:57 UTC) #8
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036563002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/2036563002/20001
4 years, 6 months ago (2016-06-02 00:37:37 UTC) #11
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: android_arm64_dbg_recipe on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_arm64_dbg_recipe/builds/75120) linux_android_rel_ng on ...
4 years, 6 months ago (2016-06-02 00:51:03 UTC) #13
danakj
+boliu for webview (will TBR, just renaming the interface)
4 years, 6 months ago (2016-06-02 00:56:03 UTC) #16
enne (OOO)
lgtm, this is really good cleanup. I really like "display output surface" vs "compositor output ...
4 years, 6 months ago (2016-06-02 00:56:53 UTC) #17
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036563002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/2036563002/40001
4 years, 6 months ago (2016-06-02 00:57:28 UTC) #18
jbauman
lgtm
4 years, 6 months ago (2016-06-02 01:01:09 UTC) #19
boliu
On 2016/06/02 00:56:03, danakj wrote: > +boliu for webview (will TBR, just renaming the interface) ...
4 years, 6 months ago (2016-06-02 01:04:52 UTC) #20
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: android_arm64_dbg_recipe on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_arm64_dbg_recipe/builds/75129) android_compile_dbg on ...
4 years, 6 months ago (2016-06-02 01:10:39 UTC) #22
danakj
Now with a webview that compiles. Had to fix how/where the Display is constructed and ...
4 years, 6 months ago (2016-06-02 01:47:32 UTC) #23
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036563002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/2036563002/60001
4 years, 6 months ago (2016-06-02 01:49:16 UTC) #25
boliu
On 2016/06/02 01:47:32, danakj wrote: > Now with a webview that compiles. Had to fix ...
4 years, 6 months ago (2016-06-02 01:53:48 UTC) #26
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_blink_rel on tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/86684) linux_android_rel_ng on ...
4 years, 6 months ago (2016-06-02 02:13:09 UTC) #28
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036563002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/2036563002/100001
4 years, 6 months ago (2016-06-02 19:50:53 UTC) #30
no sievers
android lgtm
4 years, 6 months ago (2016-06-02 21:16:42 UTC) #31
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/240193)
4 years, 6 months ago (2016-06-02 21:18:35 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036563002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/2036563002/120001
4 years, 6 months ago (2016-06-02 21:49:07 UTC) #36
commit-bot: I haz the power
Try jobs failed on following builders: linux_android_rel_ng on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_android_rel_ng/builds/81273)
4 years, 6 months ago (2016-06-03 01:49:37 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036563002/120001
4 years, 6 months ago (2016-06-10 00:10:30 UTC) #40
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_compile_dbg_ng on tryserver.chromium.mac (JOB_TIMED_OUT, no build URL) mac_chromium_gn_rel on ...
4 years, 6 months ago (2016-06-10 02:12:19 UTC) #42
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036563002/120001
4 years, 6 months ago (2016-06-10 17:14:32 UTC) #44
commit-bot: I haz the power
Try jobs failed on following builders: linux_android_rel_ng on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_android_rel_ng/builds/85926)
4 years, 6 months ago (2016-06-10 18:56:47 UTC) #46
boliu
ahh, those webview failures are not flakes And my earlier comment on chat that HardwareRenderer ...
4 years, 6 months ago (2016-06-10 23:10:33 UTC) #47
boliu
Not from bots this time. I patched this in, built webview, and noticed all apps ...
4 years, 6 months ago (2016-06-10 23:16:13 UTC) #48
danakj
Added ScopedAllowGL around the HardwareRenderer constructor.
4 years, 6 months ago (2016-06-10 23:20:02 UTC) #51
danakj
On Fri, Jun 10, 2016 at 4:10 PM, <boliu@chromium.org> wrote: > ahh, those webview failures ...
4 years, 6 months ago (2016-06-10 23:20:12 UTC) #52
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036563002/180001
4 years, 6 months ago (2016-06-10 23:20:24 UTC) #53
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036563002/180001
4 years, 6 months ago (2016-06-10 23:21:36 UTC) #57
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_asan_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_asan_rel_ng/builds/176230)
4 years, 6 months ago (2016-06-11 00:35:41 UTC) #59
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036563002/180001
4 years, 6 months ago (2016-06-11 00:41:06 UTC) #61
commit-bot: I haz the power
Committed patchset #9 (id:180001)
4 years, 6 months ago (2016-06-11 01:39:52 UTC) #62
commit-bot: I haz the power
CQ bit was unchecked
4 years, 6 months ago (2016-06-11 01:39:57 UTC) #63
commit-bot: I haz the power
4 years, 6 months ago (2016-06-11 01:41:10 UTC) #65
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/324faea6be5251efbffb7438876478500b5532cf
Cr-Commit-Position: refs/heads/master@{#399348}

Powered by Google App Engine
This is Rietveld 408576698