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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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), | 57 last_compositor_frame_sink_id_(0), |
58 current_surface_scale_factor_(1.f), | 58 current_surface_scale_factor_(1.f), |
59 ack_pending_count_(0), | 59 ack_pending_count_(0), |
60 frame_connector_(nullptr), | 60 frame_connector_(nullptr), |
61 begin_frame_source_(nullptr), | 61 begin_frame_source_(nullptr), |
62 weak_factory_(this) { | 62 weak_factory_(this) { |
63 id_allocator_.reset(new cc::SurfaceIdAllocator()); | 63 id_allocator_.reset(new cc::SurfaceIdAllocator()); |
| 64 auto* framesink_manager = GetFrameSinkManager(); |
64 auto* manager = GetSurfaceManager(); | 65 auto* manager = GetSurfaceManager(); |
65 manager->RegisterFrameSinkId(frame_sink_id_); | 66 framesink_manager->RegisterFrameSinkId(frame_sink_id_); |
66 surface_factory_ = | 67 surface_factory_ = |
67 base::MakeUnique<cc::SurfaceFactory>(frame_sink_id_, manager, this); | 68 base::MakeUnique<cc::SurfaceFactory>(frame_sink_id_, manager, this); |
68 } | 69 } |
69 | 70 |
70 RenderWidgetHostViewChildFrame::~RenderWidgetHostViewChildFrame() { | 71 RenderWidgetHostViewChildFrame::~RenderWidgetHostViewChildFrame() { |
71 surface_factory_->EvictSurface(); | 72 surface_factory_->EvictSurface(); |
72 if (GetSurfaceManager()) | 73 if (GetFrameSinkManager()) |
73 GetSurfaceManager()->InvalidateFrameSinkId(frame_sink_id_); | 74 GetFrameSinkManager()->InvalidateFrameSinkId(frame_sink_id_); |
74 } | 75 } |
75 | 76 |
76 void RenderWidgetHostViewChildFrame::Init() { | 77 void RenderWidgetHostViewChildFrame::Init() { |
77 RegisterFrameSinkId(); | 78 RegisterFrameSinkId(); |
78 host_->SetView(this); | 79 host_->SetView(this); |
79 GetTextInputManager(); | 80 GetTextInputManager(); |
80 } | 81 } |
81 | 82 |
82 void RenderWidgetHostViewChildFrame::SetCrossProcessFrameConnector( | 83 void RenderWidgetHostViewChildFrame::SetCrossProcessFrameConnector( |
83 CrossProcessFrameConnector* frame_connector) { | 84 CrossProcessFrameConnector* frame_connector) { |
84 if (frame_connector_ == frame_connector) | 85 if (frame_connector_ == frame_connector) |
85 return; | 86 return; |
86 | 87 |
87 if (frame_connector_) { | 88 if (frame_connector_) { |
88 if (parent_frame_sink_id_.is_valid()) { | 89 if (parent_frame_sink_id_.is_valid()) { |
89 GetSurfaceManager()->UnregisterFrameSinkHierarchy(parent_frame_sink_id_, | 90 GetFrameSinkManager()->UnregisterFrameSinkHierarchy(parent_frame_sink_id_, |
90 frame_sink_id_); | 91 frame_sink_id_); |
91 } | 92 } |
92 // Unregister the client here, as it is not guaranteed in tests that the | 93 // Unregister the client here, as it is not guaranteed in tests that the |
93 // destructor will be called. | 94 // destructor will be called. |
94 GetSurfaceManager()->UnregisterSurfaceFactoryClient(frame_sink_id_); | 95 GetFrameSinkManager()->UnregisterSurfaceFactoryClient(frame_sink_id_); |
95 | 96 |
96 parent_frame_sink_id_ = cc::FrameSinkId(); | 97 parent_frame_sink_id_ = cc::FrameSinkId(); |
97 | 98 |
98 // After the RenderWidgetHostViewChildFrame loses the frame_connector, it | 99 // After the RenderWidgetHostViewChildFrame loses the frame_connector, it |
99 // won't be able to walk up the frame tree anymore. Clean up anything that | 100 // won't be able to walk up the frame tree anymore. Clean up anything that |
100 // needs to be done through the CrossProcessFrameConnector before it's gone. | 101 // needs to be done through the CrossProcessFrameConnector before it's gone. |
101 | 102 |
102 // Unlocks the mouse if this RenderWidgetHostView holds the lock. | 103 // Unlocks the mouse if this RenderWidgetHostView holds the lock. |
103 UnlockMouse(); | 104 UnlockMouse(); |
104 } | 105 } |
105 frame_connector_ = frame_connector; | 106 frame_connector_ = frame_connector; |
106 if (frame_connector_) { | 107 if (frame_connector_) { |
107 GetSurfaceManager()->RegisterSurfaceFactoryClient(frame_sink_id_, this); | 108 GetFrameSinkManager()->RegisterSurfaceFactoryClient(frame_sink_id_, this); |
108 RenderWidgetHostViewBase* parent_view = | 109 RenderWidgetHostViewBase* parent_view = |
109 frame_connector_->GetParentRenderWidgetHostView(); | 110 frame_connector_->GetParentRenderWidgetHostView(); |
110 if (parent_view) { | 111 if (parent_view) { |
111 parent_frame_sink_id_ = parent_view->GetFrameSinkId(); | 112 parent_frame_sink_id_ = parent_view->GetFrameSinkId(); |
112 DCHECK(parent_frame_sink_id_.is_valid()); | 113 DCHECK(parent_frame_sink_id_.is_valid()); |
113 GetSurfaceManager()->RegisterFrameSinkHierarchy(parent_frame_sink_id_, | 114 GetFrameSinkManager()->RegisterFrameSinkHierarchy(parent_frame_sink_id_, |
114 frame_sink_id_); | 115 frame_sink_id_); |
115 } | 116 } |
116 } | 117 } |
117 } | 118 } |
118 | 119 |
119 void RenderWidgetHostViewChildFrame::InitAsChild( | 120 void RenderWidgetHostViewChildFrame::InitAsChild( |
120 gfx::NativeView parent_view) { | 121 gfx::NativeView parent_view) { |
121 NOTREACHED(); | 122 NOTREACHED(); |
122 } | 123 } |
123 | 124 |
124 RenderWidgetHost* RenderWidgetHostViewChildFrame::GetRenderWidgetHost() const { | 125 RenderWidgetHost* RenderWidgetHostViewChildFrame::GetRenderWidgetHost() const { |
(...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 | 757 |
757 bool RenderWidgetHostViewChildFrame::IsChildFrameForTesting() const { | 758 bool RenderWidgetHostViewChildFrame::IsChildFrameForTesting() const { |
758 return true; | 759 return true; |
759 } | 760 } |
760 | 761 |
761 cc::SurfaceId RenderWidgetHostViewChildFrame::SurfaceIdForTesting() const { | 762 cc::SurfaceId RenderWidgetHostViewChildFrame::SurfaceIdForTesting() const { |
762 return cc::SurfaceId(frame_sink_id_, local_surface_id_); | 763 return cc::SurfaceId(frame_sink_id_, local_surface_id_); |
763 }; | 764 }; |
764 | 765 |
765 } // namespace content | 766 } // namespace content |
OLD | NEW |