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

Unified Diff: content/renderer/child_frame_compositing_helper.cc

Issue 590523003: Remove some dead BrowserPlugin and OOPIF compositing code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/child_frame_compositing_helper.h ('k') | content/renderer/render_frame_proxy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/child_frame_compositing_helper.cc
diff --git a/content/renderer/child_frame_compositing_helper.cc b/content/renderer/child_frame_compositing_helper.cc
index 237badcc3f0104a4ade09533f6e5428f916812bf..8e6e6ad0e8e68ba70447b4f4b834abcef6a6bb2e 100644
--- a/content/renderer/child_frame_compositing_helper.cc
+++ b/content/renderer/child_frame_compositing_helper.cc
@@ -9,7 +9,6 @@
#include "cc/layers/delegated_frame_resource_collection.h"
#include "cc/layers/delegated_renderer_layer.h"
#include "cc/layers/solid_color_layer.h"
-#include "cc/layers/texture_layer.h"
#include "cc/output/context_provider.h"
#include "cc/output/copy_output_request.h"
#include "cc/output/copy_output_result.h"
@@ -23,7 +22,6 @@
#include "content/renderer/render_frame_proxy.h"
#include "content/renderer/render_thread_impl.h"
#include "skia/ext/image_operations.h"
-#include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
#include "third_party/WebKit/public/web/WebFrame.h"
#include "third_party/WebKit/public/web/WebPluginContainer.h"
#include "third_party/khronos/GLES2/gl2.h"
@@ -32,13 +30,6 @@
namespace content {
-ChildFrameCompositingHelper::SwapBuffersInfo::SwapBuffersInfo()
- : route_id(0),
- output_surface_id(0),
- host_id(0),
- software_frame_id(0),
- shared_memory(NULL) {}
-
ChildFrameCompositingHelper*
ChildFrameCompositingHelper::CreateForBrowserPlugin(
const base::WeakPtr<BrowserPlugin>& browser_plugin) {
@@ -64,9 +55,7 @@ ChildFrameCompositingHelper::ChildFrameCompositingHelper(
last_route_id_(0),
last_output_surface_id_(0),
last_host_id_(0),
- last_mailbox_valid_(false),
ack_pending_(true),
- software_ack_pending_(false),
opaque_(true),
browser_plugin_(browser_plugin),
render_frame_proxy_(render_frame_proxy),
@@ -109,19 +98,6 @@ void ChildFrameCompositingHelper::SendCompositorFrameSwappedACKToBrowser(
}
}
-void ChildFrameCompositingHelper::SendBuffersSwappedACKToBrowser(
- FrameHostMsg_BuffersSwappedACK_Params& params) {
- // This function will be removed when BrowserPluginManager is removed and
- // BrowserPlugin is modified to use a RenderFrame.
- if (GetBrowserPluginManager()) {
- GetBrowserPluginManager()->Send(new BrowserPluginHostMsg_BuffersSwappedACK(
- host_routing_id_, params));
- } else if (render_frame_proxy_) {
- render_frame_proxy_->Send(
- new FrameHostMsg_BuffersSwappedACK(host_routing_id_, params));
- }
-}
-
void ChildFrameCompositingHelper::SendReclaimCompositorResourcesToBrowser(
FrameHostMsg_ReclaimCompositorResources_Params& params) {
// This function will be removed when BrowserPluginManager is removed and
@@ -152,20 +128,6 @@ void ChildFrameCompositingHelper::CopyFromCompositingSurface(
}
void ChildFrameCompositingHelper::DidCommitCompositorFrame() {
- if (software_ack_pending_) {
- FrameHostMsg_CompositorFrameSwappedACK_Params params;
- params.producing_host_id = last_host_id_;
- params.producing_route_id = last_route_id_;
- params.output_surface_id = last_output_surface_id_;
- if (!unacked_software_frames_.empty()) {
- params.ack.last_software_frame_id = unacked_software_frames_.back();
- unacked_software_frames_.pop_back();
- }
-
- SendCompositorFrameSwappedACKToBrowser(params);
-
- software_ack_pending_ = false;
- }
if (!resource_collection_.get() || !ack_pending_)
return;
@@ -216,62 +178,6 @@ void ChildFrameCompositingHelper::CheckSizeAndAdjustLayerProperties(
background_layer_->SetIsDrawable(false);
}
-void ChildFrameCompositingHelper::MailboxReleased(SwapBuffersInfo mailbox,
- uint32 sync_point,
- bool lost_resource) {
- if (mailbox.type == SOFTWARE_COMPOSITOR_FRAME) {
- delete mailbox.shared_memory;
- mailbox.shared_memory = NULL;
- } else if (lost_resource) {
- // Reset mailbox's name if the resource was lost.
- mailbox.name.SetZero();
- }
-
- // This means the GPU process crashed or guest crashed.
- if (last_host_id_ != mailbox.host_id ||
- last_output_surface_id_ != mailbox.output_surface_id ||
- last_route_id_ != mailbox.route_id)
- return;
-
- if (mailbox.type == SOFTWARE_COMPOSITOR_FRAME)
- unacked_software_frames_.push_back(mailbox.software_frame_id);
-
- // We need to send an ACK to for every buffer sent to us.
- // However, if a buffer is freed up from
- // the compositor in cases like switching back to SW mode without a new
- // buffer arriving, no ACK is needed.
- if (!ack_pending_) {
- last_mailbox_valid_ = false;
- return;
- }
- ack_pending_ = false;
- switch (mailbox.type) {
- case TEXTURE_IMAGE_TRANSPORT: {
- FrameHostMsg_BuffersSwappedACK_Params params;
- params.gpu_host_id = mailbox.host_id;
- params.gpu_route_id = mailbox.route_id;
- params.mailbox = mailbox.name;
- params.sync_point = sync_point;
- SendBuffersSwappedACKToBrowser(params);
- break;
- }
- case GL_COMPOSITOR_FRAME: {
- FrameHostMsg_CompositorFrameSwappedACK_Params params;
- params.producing_host_id = mailbox.host_id;
- params.producing_route_id = mailbox.route_id;
- params.output_surface_id = mailbox.output_surface_id;
- params.ack.gl_frame_data.reset(new cc::GLFrameData());
- params.ack.gl_frame_data->mailbox = mailbox.name;
- params.ack.gl_frame_data->size = mailbox.size;
- params.ack.gl_frame_data->sync_point = sync_point;
- SendCompositorFrameSwappedACKToBrowser(params);
- break;
- }
- case SOFTWARE_COMPOSITOR_FRAME:
- break;
- }
-}
-
void ChildFrameCompositingHelper::OnContainerDestroy() {
if (GetContainer())
GetContainer()->setWebLayer(NULL);
@@ -280,10 +186,8 @@ void ChildFrameCompositingHelper::OnContainerDestroy() {
resource_collection_->SetClient(NULL);
ack_pending_ = false;
- software_ack_pending_ = false;
resource_collection_ = NULL;
frame_provider_ = NULL;
- texture_layer_ = NULL;
delegated_layer_ = NULL;
background_layer_ = NULL;
web_layer_.reset();
@@ -296,156 +200,12 @@ void ChildFrameCompositingHelper::ChildFrameGone() {
background_layer_->SetContentsOpaque(true);
}
-void ChildFrameCompositingHelper::OnBuffersSwappedPrivate(
- const SwapBuffersInfo& mailbox,
- uint32 sync_point,
- float device_scale_factor) {
- DCHECK(!delegated_layer_.get());
- // If these mismatch, we are either just starting up, GPU process crashed or
- // guest renderer crashed.
- // In this case, we are communicating with a new image transport
- // surface and must ACK with the new ID's and an empty mailbox.
- if (last_route_id_ != mailbox.route_id ||
- last_output_surface_id_ != mailbox.output_surface_id ||
- last_host_id_ != mailbox.host_id)
- last_mailbox_valid_ = false;
-
- last_route_id_ = mailbox.route_id;
- last_output_surface_id_ = mailbox.output_surface_id;
- last_host_id_ = mailbox.host_id;
-
- ack_pending_ = true;
- // Browser plugin getting destroyed, do a fast ACK.
- if (!background_layer_.get()) {
- MailboxReleased(mailbox, sync_point, false);
- return;
- }
-
- if (!texture_layer_.get()) {
- texture_layer_ = cc::TextureLayer::CreateForMailbox(NULL);
- texture_layer_->SetIsDrawable(true);
- SetContentsOpaque(opaque_);
-
- background_layer_->AddChild(texture_layer_);
- }
-
- // The size of browser plugin container is not always equal to the size
- // of the buffer that arrives here. This could be for a number of reasons,
- // including autosize and a resize in progress.
- // During resize, the container size changes first and then some time
- // later, a new buffer with updated size will arrive. During this process,
- // we need to make sure that things are still displayed pixel perfect.
- // We accomplish this by modifying bounds of the texture layer only
- // when a new buffer arrives.
- // Visually, this will either display a smaller part of the buffer
- // or introduce a gutter around it.
- CheckSizeAndAdjustLayerProperties(
- mailbox.size, device_scale_factor, texture_layer_.get());
-
- bool is_software_frame = mailbox.type == SOFTWARE_COMPOSITOR_FRAME;
- bool current_mailbox_valid = is_software_frame ? mailbox.shared_memory != NULL
- : !mailbox.name.IsZero();
- if (!is_software_frame && !last_mailbox_valid_) {
- SwapBuffersInfo empty_info = mailbox;
- empty_info.name.SetZero();
- MailboxReleased(empty_info, 0, false);
- if (!current_mailbox_valid)
- return;
- }
-
- cc::TextureMailbox texture_mailbox;
- scoped_ptr<cc::SingleReleaseCallback> release_callback;
- if (current_mailbox_valid) {
- release_callback =
- cc::SingleReleaseCallback::Create(
- base::Bind(&ChildFrameCompositingHelper::MailboxReleased,
- scoped_refptr<ChildFrameCompositingHelper>(this),
- mailbox)).Pass();
- if (is_software_frame) {
- texture_mailbox = cc::TextureMailbox(mailbox.shared_memory, mailbox.size);
- } else {
- texture_mailbox =
- cc::TextureMailbox(mailbox.name, GL_TEXTURE_2D, sync_point);
- }
- }
-
- texture_layer_->SetFlipped(!is_software_frame);
- texture_layer_->SetTextureMailbox(texture_mailbox, release_callback.Pass());
- texture_layer_->SetNeedsDisplay();
- last_mailbox_valid_ = current_mailbox_valid;
-}
-
-void ChildFrameCompositingHelper::OnBuffersSwapped(
- const gfx::Size& size,
- const gpu::Mailbox& mailbox,
- int gpu_route_id,
- int gpu_host_id,
- float device_scale_factor) {
- SwapBuffersInfo swap_info;
- swap_info.name = mailbox;
- swap_info.type = TEXTURE_IMAGE_TRANSPORT;
- swap_info.size = size;
- swap_info.route_id = gpu_route_id;
- swap_info.output_surface_id = 0;
- swap_info.host_id = gpu_host_id;
- OnBuffersSwappedPrivate(swap_info, 0, device_scale_factor);
-}
-
void ChildFrameCompositingHelper::OnCompositorFrameSwapped(
scoped_ptr<cc::CompositorFrame> frame,
int route_id,
uint32 output_surface_id,
int host_id,
base::SharedMemoryHandle handle) {
-
- if (frame->gl_frame_data) {
- SwapBuffersInfo swap_info;
- swap_info.name = frame->gl_frame_data->mailbox;
- swap_info.type = GL_COMPOSITOR_FRAME;
- swap_info.size = frame->gl_frame_data->size;
- swap_info.route_id = route_id;
- swap_info.output_surface_id = output_surface_id;
- swap_info.host_id = host_id;
- OnBuffersSwappedPrivate(swap_info,
- frame->gl_frame_data->sync_point,
- frame->metadata.device_scale_factor);
- return;
- }
-
- if (frame->software_frame_data) {
- cc::SoftwareFrameData* frame_data = frame->software_frame_data.get();
-
- SwapBuffersInfo swap_info;
- swap_info.type = SOFTWARE_COMPOSITOR_FRAME;
- swap_info.size = frame_data->size;
- swap_info.route_id = route_id;
- swap_info.output_surface_id = output_surface_id;
- swap_info.host_id = host_id;
- swap_info.software_frame_id = frame_data->id;
-
- scoped_ptr<base::SharedMemory> shared_memory(
- new base::SharedMemory(handle, true));
- const size_t size_in_bytes = 4 * frame_data->size.GetArea();
- if (!shared_memory->Map(size_in_bytes)) {
- LOG(ERROR) << "Failed to map shared memory of size " << size_in_bytes;
- // Send ACK right away.
- software_ack_pending_ = true;
- MailboxReleased(swap_info, 0, false);
- DidCommitCompositorFrame();
- return;
- }
-
- swap_info.shared_memory = shared_memory.release();
- OnBuffersSwappedPrivate(swap_info, 0, frame->metadata.device_scale_factor);
- software_ack_pending_ = true;
- last_route_id_ = route_id;
- last_output_surface_id_ = output_surface_id;
- last_host_id_ = host_id;
- return;
- }
-
- DCHECK(!texture_layer_.get());
-
cc::DelegatedFrameData* frame_data = frame->delegated_frame_data.get();
// Do nothing if we are getting destroyed or have no frame data.
if (!frame_data || !background_layer_.get())
@@ -507,8 +267,6 @@ void ChildFrameCompositingHelper::OnCompositorFrameSwapped(
}
void ChildFrameCompositingHelper::UpdateVisibility(bool visible) {
- if (texture_layer_.get())
- texture_layer_->SetIsDrawable(visible);
if (delegated_layer_.get())
delegated_layer_->SetIsDrawable(visible);
}
@@ -535,9 +293,6 @@ void ChildFrameCompositingHelper::SendReturnedDelegatedResources() {
void ChildFrameCompositingHelper::SetContentsOpaque(bool opaque) {
opaque_ = opaque;
-
- if (texture_layer_.get())
- texture_layer_->SetContentsOpaque(opaque_);
if (delegated_layer_.get())
delegated_layer_->SetContentsOpaque(opaque_);
}
« no previous file with comments | « content/renderer/child_frame_compositing_helper.h ('k') | content/renderer/render_frame_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698