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

Side by Side Diff: content/browser/frame_host/render_widget_host_view_child_frame.cc

Issue 2780713004: Hide compositor_frame_sink_id from RenderWidgetHostView* (Closed)
Patch Set: Added a comment in android Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/frame_host/render_widget_host_view_child_frame.h" 5 #include "content/browser/frame_host/render_widget_host_view_child_frame.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 return view; 47 return view;
48 } 48 }
49 49
50 RenderWidgetHostViewChildFrame::RenderWidgetHostViewChildFrame( 50 RenderWidgetHostViewChildFrame::RenderWidgetHostViewChildFrame(
51 RenderWidgetHost* widget_host) 51 RenderWidgetHost* widget_host)
52 : host_(RenderWidgetHostImpl::From(widget_host)), 52 : host_(RenderWidgetHostImpl::From(widget_host)),
53 frame_sink_id_( 53 frame_sink_id_(
54 base::checked_cast<uint32_t>(widget_host->GetProcess()->GetID()), 54 base::checked_cast<uint32_t>(widget_host->GetProcess()->GetID()),
55 base::checked_cast<uint32_t>(widget_host->GetRoutingID())), 55 base::checked_cast<uint32_t>(widget_host->GetRoutingID())),
56 next_surface_sequence_(1u), 56 next_surface_sequence_(1u),
57 last_compositor_frame_sink_id_(0),
58 current_surface_scale_factor_(1.f), 57 current_surface_scale_factor_(1.f),
59 frame_connector_(nullptr), 58 frame_connector_(nullptr),
60 weak_factory_(this) { 59 weak_factory_(this) {
61 GetSurfaceManager()->RegisterFrameSinkId(frame_sink_id_); 60 GetSurfaceManager()->RegisterFrameSinkId(frame_sink_id_);
62 CreateCompositorFrameSinkSupport(); 61 CreateCompositorFrameSinkSupport();
63 } 62 }
64 63
65 RenderWidgetHostViewChildFrame::~RenderWidgetHostViewChildFrame() { 64 RenderWidgetHostViewChildFrame::~RenderWidgetHostViewChildFrame() {
66 ResetCompositorFrameSinkSupport(); 65 ResetCompositorFrameSinkSupport();
67 if (GetSurfaceManager()) 66 if (GetSurfaceManager())
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 return; 335 return;
337 if ((event.type() == blink::WebInputEvent::GestureScrollUpdate && 336 if ((event.type() == blink::WebInputEvent::GestureScrollUpdate &&
338 not_consumed) || 337 not_consumed) ||
339 event.type() == blink::WebInputEvent::GestureScrollEnd) 338 event.type() == blink::WebInputEvent::GestureScrollEnd)
340 frame_connector_->BubbleScrollEvent(event); 339 frame_connector_->BubbleScrollEvent(event);
341 } 340 }
342 341
343 void RenderWidgetHostViewChildFrame::DidReceiveCompositorFrameAck() { 342 void RenderWidgetHostViewChildFrame::DidReceiveCompositorFrameAck() {
344 if (!host_) 343 if (!host_)
345 return; 344 return;
346 host_->Send(new ViewMsg_ReclaimCompositorResources( 345 host_->SendReclaimCompositorResources(true /* is_swap_ack */,
347 host_->GetRoutingID(), last_compositor_frame_sink_id_, 346 cc::ReturnedResourceArray());
348 true /* is_swap_ack */, cc::ReturnedResourceArray())); 347 }
348
349 void RenderWidgetHostViewChildFrame::DidCreateNewRendererCompositorFrameSink() {
350 ResetCompositorFrameSinkSupport();
351 CreateCompositorFrameSinkSupport();
352 has_frame_ = false;
349 } 353 }
350 354
351 void RenderWidgetHostViewChildFrame::ProcessCompositorFrame( 355 void RenderWidgetHostViewChildFrame::ProcessCompositorFrame(
352 uint32_t compositor_frame_sink_id,
353 const cc::LocalSurfaceId& local_surface_id, 356 const cc::LocalSurfaceId& local_surface_id,
354 cc::CompositorFrame frame) { 357 cc::CompositorFrame frame) {
355 // If the renderer changed its frame sink, reset the
356 // CompositorFrameSinkSupport to avoid returning stale resources.
357 if (compositor_frame_sink_id != last_compositor_frame_sink_id_) {
358 ResetCompositorFrameSinkSupport();
359 CreateCompositorFrameSinkSupport();
360 last_compositor_frame_sink_id_ = compositor_frame_sink_id;
361 }
362
363 current_surface_size_ = frame.render_pass_list.back()->output_rect.size(); 358 current_surface_size_ = frame.render_pass_list.back()->output_rect.size();
364 current_surface_scale_factor_ = frame.metadata.device_scale_factor; 359 current_surface_scale_factor_ = frame.metadata.device_scale_factor;
365 360
366 support_->SubmitCompositorFrame(local_surface_id, std::move(frame)); 361 support_->SubmitCompositorFrame(local_surface_id, std::move(frame));
367 has_frame_ = true; 362 has_frame_ = true;
368 363
369 if (local_surface_id_ != local_surface_id || HasEmbedderChanged()) { 364 if (local_surface_id_ != local_surface_id || HasEmbedderChanged()) {
370 local_surface_id_ = local_surface_id; 365 local_surface_id_ = local_surface_id;
371 SendSurfaceInfoToEmbedder(); 366 SendSurfaceInfoToEmbedder();
372 } 367 }
(...skipping 13 matching lines...) Expand all
386 current_surface_size_); 381 current_surface_size_);
387 SendSurfaceInfoToEmbedderImpl(surface_info, sequence); 382 SendSurfaceInfoToEmbedderImpl(surface_info, sequence);
388 } 383 }
389 384
390 void RenderWidgetHostViewChildFrame::SendSurfaceInfoToEmbedderImpl( 385 void RenderWidgetHostViewChildFrame::SendSurfaceInfoToEmbedderImpl(
391 const cc::SurfaceInfo& surface_info, 386 const cc::SurfaceInfo& surface_info,
392 const cc::SurfaceSequence& sequence) { 387 const cc::SurfaceSequence& sequence) {
393 frame_connector_->SetChildFrameSurface(surface_info, sequence); 388 frame_connector_->SetChildFrameSurface(surface_info, sequence);
394 } 389 }
395 390
396 void RenderWidgetHostViewChildFrame::OnSwapCompositorFrame( 391 void RenderWidgetHostViewChildFrame::SubmitCompositorFrame(
397 uint32_t compositor_frame_sink_id,
398 const cc::LocalSurfaceId& local_surface_id, 392 const cc::LocalSurfaceId& local_surface_id,
399 cc::CompositorFrame frame) { 393 cc::CompositorFrame frame) {
400 TRACE_EVENT0("content", 394 TRACE_EVENT0("content",
401 "RenderWidgetHostViewChildFrame::OnSwapCompositorFrame"); 395 "RenderWidgetHostViewChildFrame::OnSwapCompositorFrame");
402 last_scroll_offset_ = frame.metadata.root_scroll_offset; 396 last_scroll_offset_ = frame.metadata.root_scroll_offset;
403 if (!frame_connector_) 397 if (!frame_connector_)
404 return; 398 return;
405 ProcessCompositorFrame(compositor_frame_sink_id, local_surface_id, 399 ProcessCompositorFrame(local_surface_id, std::move(frame));
406 std::move(frame));
407 } 400 }
408 401
409 void RenderWidgetHostViewChildFrame::OnBeginFrameDidNotSwap( 402 void RenderWidgetHostViewChildFrame::OnBeginFrameDidNotSwap(
410 const cc::BeginFrameAck& ack) { 403 const cc::BeginFrameAck& ack) {
411 support_->BeginFrameDidNotSwap(ack); 404 support_->BeginFrameDidNotSwap(ack);
412 } 405 }
413 406
414 void RenderWidgetHostViewChildFrame::ProcessFrameSwappedCallbacks() { 407 void RenderWidgetHostViewChildFrame::ProcessFrameSwappedCallbacks() {
415 // We only use callbacks once, therefore we make a new list for registration 408 // We only use callbacks once, therefore we make a new list for registration
416 // before we start, and discard the old list entries when we are done. 409 // before we start, and discard the old list entries when we are done.
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 605
613 bool RenderWidgetHostViewChildFrame::HasAcceleratedSurface( 606 bool RenderWidgetHostViewChildFrame::HasAcceleratedSurface(
614 const gfx::Size& desired_size) { 607 const gfx::Size& desired_size) {
615 return false; 608 return false;
616 } 609 }
617 610
618 void RenderWidgetHostViewChildFrame::ReclaimResources( 611 void RenderWidgetHostViewChildFrame::ReclaimResources(
619 const cc::ReturnedResourceArray& resources) { 612 const cc::ReturnedResourceArray& resources) {
620 if (!host_) 613 if (!host_)
621 return; 614 return;
622 host_->Send(new ViewMsg_ReclaimCompositorResources( 615 host_->SendReclaimCompositorResources(false /* is_swap_ack */, resources);
623 host_->GetRoutingID(), last_compositor_frame_sink_id_,
624 false /* is_swap_ack */, resources));
625 } 616 }
626 617
627 void RenderWidgetHostViewChildFrame::OnBeginFrame( 618 void RenderWidgetHostViewChildFrame::OnBeginFrame(
628 const cc::BeginFrameArgs& args) { 619 const cc::BeginFrameArgs& args) {
629 host_->Send(new ViewMsg_BeginFrame(host_->GetRoutingID(), args)); 620 host_->Send(new ViewMsg_BeginFrame(host_->GetRoutingID(), args));
630 } 621 }
631 622
632 void RenderWidgetHostViewChildFrame::SetNeedsBeginFrames( 623 void RenderWidgetHostViewChildFrame::SetNeedsBeginFrames(
633 bool needs_begin_frames) { 624 bool needs_begin_frames) {
634 if (support_) 625 if (support_)
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 frame_sink_id_); 695 frame_sink_id_);
705 } 696 }
706 support_.reset(); 697 support_.reset();
707 } 698 }
708 699
709 bool RenderWidgetHostViewChildFrame::HasEmbedderChanged() { 700 bool RenderWidgetHostViewChildFrame::HasEmbedderChanged() {
710 return false; 701 return false;
711 } 702 }
712 703
713 } // namespace content 704 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698