mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| diff --git content/browser/renderer_host/render_widget_host_view_child_frame.cc content/browser/renderer_host/render_widget_host_view_child_frame.cc
 | |
| index 2531e9d6b344..87cadc541057 100644
 | |
| --- content/browser/renderer_host/render_widget_host_view_child_frame.cc
 | |
| +++ content/browser/renderer_host/render_widget_host_view_child_frame.cc
 | |
| @@ -598,6 +598,7 @@ void RenderWidgetHostViewChildFrame::SubmitCompositorFrame(
 | |
|                 "RenderWidgetHostViewChildFrame::OnSwapCompositorFrame");
 | |
|    support_->SubmitCompositorFrame(local_surface_id, std::move(frame),
 | |
|                                    std::move(hit_test_region_list));
 | |
| +  ProcessFrameSwappedCallbacks();
 | |
|  }
 | |
|  
 | |
|  void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
 | |
| @@ -606,6 +607,15 @@ void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
 | |
|    support_->DidNotProduceFrame(ack);
 | |
|  }
 | |
|  
 | |
| +void RenderWidgetHostViewChildFrame::ProcessFrameSwappedCallbacks() {
 | |
| +  std::vector<base::OnceClosure> process_callbacks;
 | |
| +  // Swap the vectors to avoid re-entrancy issues due to calls to
 | |
| +  // RegisterFrameSwappedCallback() while running the OnceClosures.
 | |
| +  process_callbacks.swap(frame_swapped_callbacks_);
 | |
| +  for (base::OnceClosure& callback : process_callbacks)
 | |
| +    std::move(callback).Run();
 | |
| +}
 | |
| +
 | |
|  void RenderWidgetHostViewChildFrame::TransformPointToRootSurface(
 | |
|      gfx::PointF* point) {
 | |
|    // This function is called by RenderWidgetHostInputEventRouter only for
 | |
| @@ -802,6 +812,11 @@ void RenderWidgetHostViewChildFrame::ShowDefinitionForSelection() {
 | |
|  void RenderWidgetHostViewChildFrame::SpeakSelection() {}
 | |
|  #endif  // defined(OS_MACOSX)
 | |
|  
 | |
| +void RenderWidgetHostViewChildFrame::RegisterFrameSwappedCallback(
 | |
| +    base::OnceClosure callback) {
 | |
| +  frame_swapped_callbacks_.emplace_back(std::move(callback));
 | |
| +}
 | |
| +
 | |
|  void RenderWidgetHostViewChildFrame::CopyFromSurface(
 | |
|      const gfx::Rect& src_subrect,
 | |
|      const gfx::Size& output_size,
 |