OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/renderer_host/render_widget_host_impl.h" | 5 #include "content/browser/renderer_host/render_widget_host_impl.h" |
6 | 6 |
7 #include <math.h> | 7 #include <math.h> |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <tuple> | 10 #include <tuple> |
(...skipping 2613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2624 renderer_compositor_frame_sink_ = std::move(client); | 2624 renderer_compositor_frame_sink_ = std::move(client); |
2625 } | 2625 } |
2626 | 2626 |
2627 void RenderWidgetHostImpl::SetNeedsBeginFrame(bool needs_begin_frame) { | 2627 void RenderWidgetHostImpl::SetNeedsBeginFrame(bool needs_begin_frame) { |
2628 OnSetNeedsBeginFrames(needs_begin_frame); | 2628 OnSetNeedsBeginFrames(needs_begin_frame); |
2629 } | 2629 } |
2630 | 2630 |
2631 void RenderWidgetHostImpl::SubmitCompositorFrame( | 2631 void RenderWidgetHostImpl::SubmitCompositorFrame( |
2632 const cc::LocalSurfaceId& local_surface_id, | 2632 const cc::LocalSurfaceId& local_surface_id, |
2633 cc::CompositorFrame frame) { | 2633 cc::CompositorFrame frame) { |
2634 // The renderer should not send empty frames. | |
2635 if (frame.render_pass_list.empty()) { | |
2636 DLOG(ERROR) << "Renderer sent an empty frame."; | |
2637 return; | |
2638 } | |
2639 | |
2640 // The renderer must allocate a new LocalSurfaceId if frame size or device | 2634 // The renderer must allocate a new LocalSurfaceId if frame size or device |
2641 // scale factor changes. | 2635 // scale factor changes. |
2642 float device_scale_factor = frame.metadata.device_scale_factor; | 2636 float device_scale_factor = frame.metadata.device_scale_factor; |
2643 const gfx::Size& frame_size = | 2637 const gfx::Size& frame_size = |
2644 frame.render_pass_list.back()->output_rect.size(); | 2638 frame.render_pass_list.back()->output_rect.size(); |
2645 if (local_surface_id == last_local_surface_id_ && | 2639 if (local_surface_id == last_local_surface_id_ && |
2646 (frame_size != last_frame_size_ || | 2640 (frame_size != last_frame_size_ || |
2647 device_scale_factor != last_device_scale_factor_)) { | 2641 device_scale_factor != last_device_scale_factor_)) { |
2648 DLOG(ERROR) << "Renderer submitted frame of wrong size to its surface." | 2642 DLOG(ERROR) << "Renderer submitted frame of wrong size to its surface." |
2649 << " Expected: size=" << last_frame_size_.ToString() | 2643 << " Expected: size=" << last_frame_size_.ToString() |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2737 RenderProcessHost* rph = GetProcess(); | 2731 RenderProcessHost* rph = GetProcess(); |
2738 for (std::vector<IPC::Message>::const_iterator i = messages.begin(); | 2732 for (std::vector<IPC::Message>::const_iterator i = messages.begin(); |
2739 i != messages.end(); ++i) { | 2733 i != messages.end(); ++i) { |
2740 rph->OnMessageReceived(*i); | 2734 rph->OnMessageReceived(*i); |
2741 if (i->dispatch_error()) | 2735 if (i->dispatch_error()) |
2742 rph->OnBadMessageReceived(*i); | 2736 rph->OnBadMessageReceived(*i); |
2743 } | 2737 } |
2744 } | 2738 } |
2745 | 2739 |
2746 } // namespace content | 2740 } // namespace content |
OLD | NEW |