Chromium Code Reviews| Index: content/browser/renderer_host/delegated_frame_host.cc |
| diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/browser/renderer_host/delegated_frame_host.cc |
| index 0ba9c7bd0fa57e2bd642aa7ba38994637dbb24c6..69f1910dbe9677126fc249ae25868b2ba6a99dc7 100644 |
| --- a/content/browser/renderer_host/delegated_frame_host.cc |
| +++ b/content/browser/renderer_host/delegated_frame_host.cc |
| @@ -18,6 +18,7 @@ |
| #include "cc/output/copy_output_request.h" |
| #include "cc/resources/single_release_callback.h" |
| #include "cc/resources/texture_mailbox.h" |
| +#include "cc/surfaces/direct_surface_embedding.h" |
| #include "cc/surfaces/surface.h" |
| #include "cc/surfaces/surface_factory.h" |
| #include "cc/surfaces/surface_hittest.h" |
| @@ -38,28 +39,6 @@ |
| namespace content { |
| -namespace { |
| - |
| -void SatisfyCallback(cc::SurfaceManager* manager, |
| - const cc::SurfaceSequence& sequence) { |
| - std::vector<uint32_t> sequences; |
| - sequences.push_back(sequence.sequence); |
| - manager->DidSatisfySequences(sequence.frame_sink_id, &sequences); |
| -} |
| - |
| -void RequireCallback(cc::SurfaceManager* manager, |
| - const cc::SurfaceId& id, |
| - const cc::SurfaceSequence& sequence) { |
| - cc::Surface* surface = manager->GetSurfaceForId(id); |
| - if (!surface) { |
| - LOG(ERROR) << "Attempting to require callback on nonexistent surface"; |
| - return; |
| - } |
| - surface->AddDestructionDependency(sequence); |
| -} |
| - |
| -} // namespace |
| - |
| //////////////////////////////////////////////////////////////////////////////// |
| // DelegatedFrameHost |
| @@ -510,11 +489,13 @@ void DelegatedFrameHost::SwapDelegatedFrame(uint32_t compositor_frame_sink_id, |
| ack_callback); |
| if (allocated_new_local_frame_id) { |
| // manager must outlive compositors using it. |
| + cc::SurfaceId surface_id(frame_sink_id_, local_frame_id_); |
| + cc::SurfaceInfo surface_info(surface_id, frame_device_scale_factor, |
| + frame_size); |
| + cc::SurfaceEmbeddingPtr surface_ref = |
| + new cc::DirectSurfaceEmbedding(manager); |
|
Fady Samuel
2016/12/12 16:25:07
We likely don't need to construct a new one of the
|
| client_->DelegatedFrameHostGetLayer()->SetShowSurface( |
| - cc::SurfaceId(frame_sink_id_, local_frame_id_), |
| - base::Bind(&SatisfyCallback, base::Unretained(manager)), |
| - base::Bind(&RequireCallback, base::Unretained(manager)), frame_size, |
| - frame_device_scale_factor, frame_size_in_dip); |
| + surface_info, std::move(surface_ref), frame_size_in_dip); |
| current_surface_size_ = frame_size; |
| current_scale_factor_ = frame_device_scale_factor; |
| } |