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

Unified Diff: content/browser/renderer_host/render_widget_host_impl.cc

Issue 2882303002: Factor FrameData out of RendererCompositorFrameSink (Closed)
Patch Set: c Created 3 years, 7 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/browser/renderer_host/render_widget_host_impl.h ('k') | content/common/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/render_widget_host_impl.cc
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index dbc1a4d624d827db77f9452c8095c552b878dbe6..b9f6ec8d437df47e436330bfc175c9e4f907aff3 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -2546,29 +2546,21 @@ void RenderWidgetHostImpl::SetNeedsBeginFrame(bool needs_begin_frame) {
void RenderWidgetHostImpl::SubmitCompositorFrame(
const cc::LocalSurfaceId& local_surface_id,
cc::CompositorFrame frame) {
- // The renderer must allocate a new LocalSurfaceId if frame size or device
- // scale factor changes.
- float device_scale_factor = frame.metadata.device_scale_factor;
- const gfx::Size& frame_size =
- frame.render_pass_list.back()->output_rect.size();
+ auto new_surface_properties =
+ RenderWidgetSurfaceProperties::FromCompositorFrame(frame);
+
if (local_surface_id == last_local_surface_id_ &&
- (frame_size != last_frame_size_ ||
- device_scale_factor != last_device_scale_factor_)) {
- DLOG(ERROR) << "Renderer submitted frame of wrong size to its surface."
- << " Expected: size=" << last_frame_size_.ToString()
- << ",scale=" << last_device_scale_factor_
- << " Received: size=" << frame_size.ToString()
- << ",scale=" << device_scale_factor;
+ new_surface_properties != last_surface_properties_) {
+ bad_message::ReceivedBadMessage(
+ GetProcess(), bad_message::RWH_SURFACE_INVARIANTS_VIOLATION);
return;
}
- uint32_t frame_token = frame.metadata.frame_token;
-
last_local_surface_id_ = local_surface_id;
- last_frame_size_ = frame_size;
- last_device_scale_factor_ = device_scale_factor;
+ last_surface_properties_ = new_surface_properties;
last_received_content_source_id_ = frame.metadata.content_source_id;
+ uint32_t frame_token = frame.metadata.frame_token;
// |has_damage| is not transmitted.
frame.metadata.begin_frame_ack.has_damage = true;
« no previous file with comments | « content/browser/renderer_host/render_widget_host_impl.h ('k') | content/common/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698