| OLD | NEW |
| 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 30 matching lines...) Expand all Loading... |
| 41 | 41 |
| 42 RenderWidgetHostViewChildFrame::RenderWidgetHostViewChildFrame( | 42 RenderWidgetHostViewChildFrame::RenderWidgetHostViewChildFrame( |
| 43 RenderWidgetHost* widget_host) | 43 RenderWidgetHost* widget_host) |
| 44 : host_(RenderWidgetHostImpl::From(widget_host)), | 44 : host_(RenderWidgetHostImpl::From(widget_host)), |
| 45 next_surface_sequence_(1u), | 45 next_surface_sequence_(1u), |
| 46 last_output_surface_id_(0), | 46 last_output_surface_id_(0), |
| 47 current_surface_scale_factor_(1.f), | 47 current_surface_scale_factor_(1.f), |
| 48 ack_pending_count_(0), | 48 ack_pending_count_(0), |
| 49 frame_connector_(nullptr), | 49 frame_connector_(nullptr), |
| 50 begin_frame_source_(nullptr), | 50 begin_frame_source_(nullptr), |
| 51 observing_begin_frame_source_(false), | |
| 52 parent_surface_client_id_(0), | 51 parent_surface_client_id_(0), |
| 53 weak_factory_(this) { | 52 weak_factory_(this) { |
| 54 id_allocator_.reset(new cc::SurfaceIdAllocator(AllocateSurfaceClientId())); | 53 id_allocator_.reset(new cc::SurfaceIdAllocator(AllocateSurfaceClientId())); |
| 55 GetSurfaceManager()->RegisterSurfaceClientId(id_allocator_->client_id()); | 54 GetSurfaceManager()->RegisterSurfaceClientId(id_allocator_->client_id()); |
| 56 RegisterSurfaceNamespaceId(); | 55 RegisterSurfaceNamespaceId(); |
| 57 | 56 |
| 58 host_->SetView(this); | 57 host_->SetView(this); |
| 59 } | 58 } |
| 60 | 59 |
| 61 RenderWidgetHostViewChildFrame::~RenderWidgetHostViewChildFrame() { | 60 RenderWidgetHostViewChildFrame::~RenderWidgetHostViewChildFrame() { |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 parent_surface_client_id_, GetSurfaceClientId()); | 102 parent_surface_client_id_, GetSurfaceClientId()); |
| 104 } | 103 } |
| 105 } | 104 } |
| 106 } | 105 } |
| 107 | 106 |
| 108 void RenderWidgetHostViewChildFrame::InitAsChild( | 107 void RenderWidgetHostViewChildFrame::InitAsChild( |
| 109 gfx::NativeView parent_view) { | 108 gfx::NativeView parent_view) { |
| 110 NOTREACHED(); | 109 NOTREACHED(); |
| 111 } | 110 } |
| 112 | 111 |
| 113 bool RenderWidgetHostViewChildFrame::OnMessageReceived( | |
| 114 const IPC::Message& message) { | |
| 115 bool handled = true; | |
| 116 IPC_BEGIN_MESSAGE_MAP(RenderWidgetHostViewChildFrame, message) | |
| 117 IPC_MESSAGE_HANDLER(ViewHostMsg_SetNeedsBeginFrames, OnSetNeedsBeginFrames) | |
| 118 IPC_MESSAGE_UNHANDLED(handled = false) | |
| 119 IPC_END_MESSAGE_MAP() | |
| 120 return handled; | |
| 121 } | |
| 122 | |
| 123 RenderWidgetHost* RenderWidgetHostViewChildFrame::GetRenderWidgetHost() const { | 112 RenderWidgetHost* RenderWidgetHostViewChildFrame::GetRenderWidgetHost() const { |
| 124 return host_; | 113 return host_; |
| 125 } | 114 } |
| 126 | 115 |
| 127 void RenderWidgetHostViewChildFrame::SetSize(const gfx::Size& size) { | 116 void RenderWidgetHostViewChildFrame::SetSize(const gfx::Size& size) { |
| 128 host_->WasResized(); | 117 host_->WasResized(); |
| 129 } | 118 } |
| 130 | 119 |
| 131 void RenderWidgetHostViewChildFrame::SetBounds(const gfx::Rect& rect) { | 120 void RenderWidgetHostViewChildFrame::SetBounds(const gfx::Rect& rect) { |
| 132 SetSize(rect.size()); | 121 SetSize(rect.size()); |
| (...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 635 resources)); | 624 resources)); |
| 636 return; | 625 return; |
| 637 } | 626 } |
| 638 | 627 |
| 639 std::copy(resources.begin(), resources.end(), | 628 std::copy(resources.begin(), resources.end(), |
| 640 std::back_inserter(surface_returned_resources_)); | 629 std::back_inserter(surface_returned_resources_)); |
| 641 } | 630 } |
| 642 | 631 |
| 643 void RenderWidgetHostViewChildFrame::SetBeginFrameSource( | 632 void RenderWidgetHostViewChildFrame::SetBeginFrameSource( |
| 644 cc::BeginFrameSource* source) { | 633 cc::BeginFrameSource* source) { |
| 645 if (begin_frame_source_ && observing_begin_frame_source_) | 634 bool needs_begin_frames = host_->needs_begin_frames(); |
| 635 if (begin_frame_source_ && needs_begin_frames) |
| 646 begin_frame_source_->RemoveObserver(this); | 636 begin_frame_source_->RemoveObserver(this); |
| 647 begin_frame_source_ = source; | 637 begin_frame_source_ = source; |
| 648 if (begin_frame_source_ && observing_begin_frame_source_) | 638 if (begin_frame_source_ && needs_begin_frames) |
| 649 begin_frame_source_->AddObserver(this); | 639 begin_frame_source_->AddObserver(this); |
| 650 } | 640 } |
| 651 | 641 |
| 652 void RenderWidgetHostViewChildFrame::OnBeginFrame( | 642 void RenderWidgetHostViewChildFrame::OnBeginFrame( |
| 653 const cc::BeginFrameArgs& args) { | 643 const cc::BeginFrameArgs& args) { |
| 654 host_->Send(new ViewMsg_BeginFrame(host_->GetRoutingID(), args)); | 644 host_->Send(new ViewMsg_BeginFrame(host_->GetRoutingID(), args)); |
| 655 last_begin_frame_args_ = args; | 645 last_begin_frame_args_ = args; |
| 656 } | 646 } |
| 657 | 647 |
| 658 const cc::BeginFrameArgs& | 648 const cc::BeginFrameArgs& |
| 659 RenderWidgetHostViewChildFrame::LastUsedBeginFrameArgs() const { | 649 RenderWidgetHostViewChildFrame::LastUsedBeginFrameArgs() const { |
| 660 return last_begin_frame_args_; | 650 return last_begin_frame_args_; |
| 661 } | 651 } |
| 662 | 652 |
| 663 void RenderWidgetHostViewChildFrame::OnBeginFrameSourcePausedChanged( | 653 void RenderWidgetHostViewChildFrame::OnBeginFrameSourcePausedChanged( |
| 664 bool paused) { | 654 bool paused) { |
| 665 // Only used on Android WebView. | 655 // Only used on Android WebView. |
| 666 } | 656 } |
| 667 | 657 |
| 668 void RenderWidgetHostViewChildFrame::OnSetNeedsBeginFrames( | 658 void RenderWidgetHostViewChildFrame::SetNeedsBeginFrames( |
| 669 bool needs_begin_frames) { | 659 bool needs_begin_frames) { |
| 670 if (observing_begin_frame_source_ == needs_begin_frames) | 660 if (!begin_frame_source_) |
| 671 return; | 661 return; |
| 672 | 662 |
| 673 observing_begin_frame_source_ = needs_begin_frames; | 663 if (needs_begin_frames) |
| 674 if (begin_frame_source_) { | 664 begin_frame_source_->AddObserver(this); |
| 675 if (observing_begin_frame_source_) | 665 else |
| 676 begin_frame_source_->AddObserver(this); | 666 begin_frame_source_->RemoveObserver(this); |
| 677 else | |
| 678 begin_frame_source_->RemoveObserver(this); | |
| 679 } | |
| 680 } | 667 } |
| 681 | 668 |
| 682 InputEventAckState RenderWidgetHostViewChildFrame::FilterInputEvent( | 669 InputEventAckState RenderWidgetHostViewChildFrame::FilterInputEvent( |
| 683 const blink::WebInputEvent& input_event) { | 670 const blink::WebInputEvent& input_event) { |
| 684 if (input_event.type == blink::WebInputEvent::GestureFlingStart) { | 671 if (input_event.type == blink::WebInputEvent::GestureFlingStart) { |
| 685 const blink::WebGestureEvent& gesture_event = | 672 const blink::WebGestureEvent& gesture_event = |
| 686 static_cast<const blink::WebGestureEvent&>(input_event); | 673 static_cast<const blink::WebGestureEvent&>(input_event); |
| 687 // Zero-velocity touchpad flings are an Aura-specific signal that the | 674 // Zero-velocity touchpad flings are an Aura-specific signal that the |
| 688 // touchpad scroll has ended, and should not be forwarded to the renderer. | 675 // touchpad scroll has ended, and should not be forwarded to the renderer. |
| 689 if (gesture_event.sourceDevice == blink::WebGestureDeviceTouchpad && | 676 if (gesture_event.sourceDevice == blink::WebGestureDeviceTouchpad && |
| (...skipping 29 matching lines...) Expand all Loading... |
| 719 | 706 |
| 720 bool RenderWidgetHostViewChildFrame::IsChildFrameForTesting() const { | 707 bool RenderWidgetHostViewChildFrame::IsChildFrameForTesting() const { |
| 721 return true; | 708 return true; |
| 722 } | 709 } |
| 723 | 710 |
| 724 cc::SurfaceId RenderWidgetHostViewChildFrame::SurfaceIdForTesting() const { | 711 cc::SurfaceId RenderWidgetHostViewChildFrame::SurfaceIdForTesting() const { |
| 725 return surface_id_; | 712 return surface_id_; |
| 726 }; | 713 }; |
| 727 | 714 |
| 728 } // namespace content | 715 } // namespace content |
| OLD | NEW |