Skip to content

Commit

Permalink
Don't populate the external view embedder in PaintContext. (#6686)
Browse files Browse the repository at this point in the history
The platform views embedding is still WIP, and until we dynamically
merge the gpu and platform threads based on the presence of an embedded
view in the scene fetching the view embedder is not thread safe.

This PR essentially disables iOS platform views embedding, we will
re-enable once dynamic thread merging is supported.
  • Loading branch information
amirh committed Oct 29, 2018
1 parent ab782fa commit cc686d7
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion shell/common/rasterizer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,19 @@ bool Rasterizer::DrawToSurface(flow::LayerTree& layer_tree) {

auto canvas = frame->SkiaCanvas();

// External view embedding required that the gpu and platform threads are the
// same. The dynamic merging of these threads is WIP so for now we don't
// populate the view embedder. Once we can merge the threads, we should
// populate the view embedded here with surface_->GetExternalViewEmbedder() if
// the scene contains an external view (and we can probably assert that the
// gpu and platform threads are the same).
//
// TODO(amirh): populate the view embedder once we dynamically merge the
// threads for embedded platform views.
auto external_view_embedder = nullptr;

auto compositor_frame = compositor_context_->AcquireFrame(
surface_->GetContext(), canvas, surface_->GetExternalViewEmbedder(),
surface_->GetContext(), canvas, external_view_embedder,
surface_->GetRootTransformation(), true);

if (canvas) {
Expand Down

0 comments on commit cc686d7

Please sign in to comment.