New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 670162 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

SharedBitmapManagers need to be factored out of content/

Project Member Reported by fsam...@chromium.org, Dec 1 2016

Issue description

cc::Display wants to take in a HostSharedBitmapManager. Clients use a ClientSharedBitmapManager. Both of these things live in content/. They should be factored out of content/.

components/shared_bitmap_manager?

components/display_compositor and components/display_compositor/client?

This is likely a prerequisite to a CompositorFrameSinkSupport object used in Chrome.
 
Cc: sadrul@chromium.org
Cc: penghuang@chromium.org
They also use Chrome IPC currently and should be converted to mojo IPC.
Blocking: 601863

Comment 4 by piman@chromium.org, Dec 1 2016

HostSharedBitmapManager makes sense because it's self-contained

ChildSharedBitmapManager basically just sends IPCs, so I'm not sure it makes sense to extract as is - maybe if it was switched to mojo first?
> cc::Display wants to take in a HostSharedBitmapManager

Does it need to know the concrete type or is cc::SharedBitmapManager enough?
It just needs a cc::SharedBitmapManager, but we need a concrete implementation to pass in and refactor >> rewrite (copy and paste) IMO. For Mus+Ash today, we don't need it but we want to move the display compositor on other platforms too so this makes sense in the limit.
Labels: -Pri-3 Pri-2
Blocking:
Components: MUS
Status: Available (was: Untriaged)
It should be possible to do what we are doing for //components/discardable_memory ( issue 654678  and https://codereview.chromium.org/2485623002/).
Cc: jcivelli@chromium.org
/cc +jcivelli@ since they recently landed https://codereview.chromium.org/2488913003
Blocking:
Components: Internals>Compositing
Cc: xlai@chromium.org junov@chromium.org
It sounds like offscreen canvas might need this sooner rather than later... Adding xlai@ and junov@

Comment 14 by xlai@chromium.org, Feb 21 2017

>> It sounds like offscreen canvas might need this sooner rather than later

Right, we need SharedBitmap for Unaccelerated 2d context for OffscreenCanvas. But it seems that Blink doesn't really care where the implementation is refactored to as long as the virtual function allocateSharedBitmap() in Platform.h is doing the job right. Currently we rely on the ChildSharedBitmapManager in RenderThreadImpl, for both main and worker threads; the refactoring might want to take account of this.

And if I'm not wrong, after the Mus+Ash change, the SharedBitmapManager would still serve similar function between Renderer and Mus-GPU process as of that between Renderer and Browser process today, right?
Labels: M-59
xlai@: Yes, that's correct, Mus-GPU will serve the display compositor even if we are in software compositing mode and so the SharedBitmapManager should work similiar to the way it does today. I think we'd like to have this task done for M59 as a result.
Owner: xlai@chromium.org
Status: Assigned (was: Available)

Comment 17 by xlai@chromium.org, Mar 3 2017

Status: Started (was: Assigned)
Ongoing discussion about better placement of SharedBitmapManagers in
https://codereview.chromium.org/2717213004/
Project Member

Comment 18 by bugdroid1@chromium.org, Apr 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/11ac780e68cd3fde64d7eac350f4ebf53ce75eea

commit 11ac780e68cd3fde64d7eac350f4ebf53ce75eea
Author: xlai <xlai@chromium.org>
Date: Fri Apr 07 20:13:18 2017

Move SharedBitmapManager implementation out of content/

HostSharedBitmapManager is shifted to components/display_compositor.
ChildSharedBitmapManager is shifted to services/ui/public/cpp/bitmap.

The Mojo messages used in allocating shared bitmap is decoupled from
render_message_filter.h and moved to cc/ipc/shared_bitmap_manager.mojom.

Note that the SharedBitmapManager is an associated mojo interface of
RenderMessageFilter so as to maintain the existing FIFO order of mojo
messages between the two SharedBitmap allocation functions and the
rest of RenderMessageFilter functions.

BUG= 670162 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2717213004
Cr-Commit-Position: refs/heads/master@{#462979}

[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/cc/ipc/BUILD.gn
[add] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/cc/ipc/shared_bitmap_manager.mojom
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/components/display_compositor/BUILD.gn
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/components/display_compositor/DEPS
[rename] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/components/display_compositor/host_shared_bitmap_manager.cc
[rename] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/components/display_compositor/host_shared_bitmap_manager.h
[rename] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/components/display_compositor/host_shared_bitmap_manager_unittest.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/browser/DEPS
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/browser/browser_main_loop.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/browser/browser_plugin/browser_plugin_guest.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/browser/compositor/gpu_process_transport_factory.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/browser/renderer_host/render_message_filter.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/browser/renderer_host/render_message_filter.h
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/browser/renderer_host/renderer_frame_manager.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/child/BUILD.gn
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/common/BUILD.gn
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/common/render_message_filter.mojom
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/public/test/mock_render_thread.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/renderer/BUILD.gn
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/renderer/pepper/pepper_compositor_host.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/renderer/pepper/pepper_graphics_2d_host.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/renderer/render_thread_impl.h
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/renderer/render_view_impl.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/renderer/renderer_blink_platform_impl.h
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/content/test/BUILD.gn
[modify] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/ipc/ipc_channel_proxy.h
[add] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/services/ui/public/cpp/bitmap/BUILD.gn
[rename] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/services/ui/public/cpp/bitmap/child_shared_bitmap_manager.cc
[rename] https://crrev.com/11ac780e68cd3fde64d7eac350f4ebf53ce75eea/services/ui/public/cpp/bitmap/child_shared_bitmap_manager.h

Comment 19 by xlai@chromium.org, Apr 10 2017

Status: Fixed (was: Started)
Blocking: -601863
Components: -Internals>MUS Internals>Services>WindowService
Components: -MUS

Sign in to add a comment