render_widget_host_view_child_frame.cc revision 03b57e008b61dfcb1fbad3aea950ae0e001748b0
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
3// found in the LICENSE file.
4
5#include "content/browser/frame_host/render_widget_host_view_child_frame.h"
6
7#include "content/browser/frame_host/cross_process_frame_connector.h"
8#include "content/browser/renderer_host/render_widget_host_impl.h"
9#include "content/common/gpu/gpu_messages.h"
10#include "content/common/view_messages.h"
11#include "content/public/browser/render_process_host.h"
12
13namespace content {
14
15RenderWidgetHostViewChildFrame::RenderWidgetHostViewChildFrame(
16    RenderWidgetHost* widget_host)
17    : host_(RenderWidgetHostImpl::From(widget_host)),
18      frame_connector_(NULL) {
19  host_->SetView(this);
20}
21
22RenderWidgetHostViewChildFrame::~RenderWidgetHostViewChildFrame() {
23}
24
25void RenderWidgetHostViewChildFrame::InitAsChild(
26    gfx::NativeView parent_view) {
27  NOTREACHED();
28}
29
30RenderWidgetHost* RenderWidgetHostViewChildFrame::GetRenderWidgetHost() const {
31  return host_;
32}
33
34void RenderWidgetHostViewChildFrame::SetSize(const gfx::Size& size) {
35  host_->WasResized();
36}
37
38void RenderWidgetHostViewChildFrame::SetBounds(const gfx::Rect& rect) {
39  SetSize(rect.size());
40}
41
42void RenderWidgetHostViewChildFrame::Focus() {
43}
44
45bool RenderWidgetHostViewChildFrame::HasFocus() const {
46  return false;
47}
48
49bool RenderWidgetHostViewChildFrame::IsSurfaceAvailableForCopy() const {
50  NOTIMPLEMENTED();
51  return false;
52}
53
54void RenderWidgetHostViewChildFrame::Show() {
55  WasShown();
56}
57
58void RenderWidgetHostViewChildFrame::Hide() {
59  WasHidden();
60}
61
62bool RenderWidgetHostViewChildFrame::IsShowing() {
63  return !host_->is_hidden();
64}
65
66gfx::Rect RenderWidgetHostViewChildFrame::GetViewBounds() const {
67  gfx::Rect rect;
68  if (frame_connector_)
69    rect = frame_connector_->ChildFrameRect();
70  return rect;
71}
72
73gfx::NativeView RenderWidgetHostViewChildFrame::GetNativeView() const {
74  NOTREACHED();
75  return NULL;
76}
77
78gfx::NativeViewId RenderWidgetHostViewChildFrame::GetNativeViewId() const {
79  NOTREACHED();
80  return 0;
81}
82
83gfx::NativeViewAccessible
84RenderWidgetHostViewChildFrame::GetNativeViewAccessible() {
85  NOTREACHED();
86  return NULL;
87}
88
89void RenderWidgetHostViewChildFrame::SetBackgroundOpaque(bool opaque) {
90}
91
92gfx::Size RenderWidgetHostViewChildFrame::GetPhysicalBackingSize() const {
93  gfx::Size size;
94  if (frame_connector_)
95    size = frame_connector_->ChildFrameRect().size();
96  return size;
97}
98
99void RenderWidgetHostViewChildFrame::InitAsPopup(
100    RenderWidgetHostView* parent_host_view,
101    const gfx::Rect& pos) {
102  NOTREACHED();
103}
104
105void RenderWidgetHostViewChildFrame::InitAsFullscreen(
106    RenderWidgetHostView* reference_host_view) {
107  NOTREACHED();
108}
109
110void RenderWidgetHostViewChildFrame::ImeCancelComposition() {
111  NOTREACHED();
112}
113
114#if defined(OS_MACOSX) || defined(USE_AURA)
115void RenderWidgetHostViewChildFrame::ImeCompositionRangeChanged(
116    const gfx::Range& range,
117    const std::vector<gfx::Rect>& character_bounds) {
118  NOTREACHED();
119}
120#endif
121
122void RenderWidgetHostViewChildFrame::WasShown() {
123  if (!host_->is_hidden())
124    return;
125  host_->WasShown(ui::LatencyInfo());
126}
127
128void RenderWidgetHostViewChildFrame::WasHidden() {
129  if (host_->is_hidden())
130    return;
131  host_->WasHidden();
132}
133
134void RenderWidgetHostViewChildFrame::MovePluginWindows(
135    const std::vector<WebPluginGeometry>& moves) {
136}
137
138void RenderWidgetHostViewChildFrame::Blur() {
139}
140
141void RenderWidgetHostViewChildFrame::UpdateCursor(const WebCursor& cursor) {
142}
143
144void RenderWidgetHostViewChildFrame::SetIsLoading(bool is_loading) {
145  NOTREACHED();
146}
147
148void RenderWidgetHostViewChildFrame::TextInputStateChanged(
149    const ViewHostMsg_TextInputState_Params& params) {
150}
151
152void RenderWidgetHostViewChildFrame::RenderProcessGone(
153    base::TerminationStatus status,
154    int error_code) {
155  if (frame_connector_)
156    frame_connector_->RenderProcessGone();
157  Destroy();
158}
159
160void RenderWidgetHostViewChildFrame::Destroy() {
161  if (frame_connector_) {
162    frame_connector_->set_view(NULL);
163    frame_connector_ = NULL;
164  }
165
166  host_->SetView(NULL);
167  host_ = NULL;
168  base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
169}
170
171void RenderWidgetHostViewChildFrame::SetTooltipText(
172    const base::string16& tooltip_text) {
173}
174
175void RenderWidgetHostViewChildFrame::SelectionChanged(
176    const base::string16& text,
177    size_t offset,
178    const gfx::Range& range) {
179}
180
181void RenderWidgetHostViewChildFrame::SelectionBoundsChanged(
182    const ViewHostMsg_SelectionBounds_Params& params) {
183}
184
185#if defined(OS_ANDROID)
186void RenderWidgetHostViewChildFrame::ShowDisambiguationPopup(
187    const gfx::Rect& target_rect,
188    const SkBitmap& zoomed_bitmap) {
189}
190
191void RenderWidgetHostViewChildFrame::LockCompositingSurface() {
192}
193
194void RenderWidgetHostViewChildFrame::UnlockCompositingSurface() {
195}
196#endif
197
198void RenderWidgetHostViewChildFrame::AcceleratedSurfaceInitialized(int host_id,
199                                                              int route_id) {
200}
201
202void RenderWidgetHostViewChildFrame::AcceleratedSurfaceBuffersSwapped(
203    const GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params& params,
204    int gpu_host_id) {
205  if (frame_connector_)
206    frame_connector_->ChildFrameBuffersSwapped(params, gpu_host_id);
207}
208
209void RenderWidgetHostViewChildFrame::AcceleratedSurfacePostSubBuffer(
210    const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params,
211    int gpu_host_id) {
212}
213
214void RenderWidgetHostViewChildFrame::OnSwapCompositorFrame(
215      uint32 output_surface_id,
216      scoped_ptr<cc::CompositorFrame> frame) {
217  if (frame_connector_) {
218    frame_connector_->ChildFrameCompositorFrameSwapped(
219        output_surface_id,
220        host_->GetProcess()->GetID(),
221        host_->GetRoutingID(),
222        frame.Pass());
223  }
224}
225
226void RenderWidgetHostViewChildFrame::GetScreenInfo(
227    blink::WebScreenInfo* results) {
228}
229
230gfx::Rect RenderWidgetHostViewChildFrame::GetBoundsInRootWindow() {
231  // We do not have any root window specific parts in this view.
232  return GetViewBounds();
233}
234
235#if defined(USE_AURA)
236void RenderWidgetHostViewChildFrame::ProcessAckedTouchEvent(
237    const TouchEventWithLatencyInfo& touch,
238    InputEventAckState ack_result) {
239}
240#endif  // defined(USE_AURA)
241
242bool RenderWidgetHostViewChildFrame::LockMouse() {
243  return false;
244}
245
246void RenderWidgetHostViewChildFrame::UnlockMouse() {
247}
248
249#if defined(OS_MACOSX)
250void RenderWidgetHostViewChildFrame::SetActive(bool active) {
251}
252
253void RenderWidgetHostViewChildFrame::SetTakesFocusOnlyOnMouseDown(bool flag) {
254}
255
256void RenderWidgetHostViewChildFrame::SetWindowVisibility(bool visible) {
257}
258
259void RenderWidgetHostViewChildFrame::WindowFrameChanged() {
260}
261
262void RenderWidgetHostViewChildFrame::ShowDefinitionForSelection() {
263}
264
265bool RenderWidgetHostViewChildFrame::SupportsSpeech() const {
266  return false;
267}
268
269void RenderWidgetHostViewChildFrame::SpeakSelection() {
270}
271
272bool RenderWidgetHostViewChildFrame::IsSpeaking() const {
273  return false;
274}
275
276void RenderWidgetHostViewChildFrame::StopSpeaking() {
277}
278
279bool RenderWidgetHostViewChildFrame::PostProcessEventForPluginIme(
280      const NativeWebKeyboardEvent& event) {
281  return false;
282}
283#endif // defined(OS_MACOSX)
284
285void RenderWidgetHostViewChildFrame::CopyFromCompositingSurface(
286    const gfx::Rect& src_subrect,
287    const gfx::Size& /* dst_size */,
288    const base::Callback<void(bool, const SkBitmap&)>& callback,
289    const SkColorType color_type) {
290  callback.Run(false, SkBitmap());
291}
292
293void RenderWidgetHostViewChildFrame::CopyFromCompositingSurfaceToVideoFrame(
294      const gfx::Rect& src_subrect,
295      const scoped_refptr<media::VideoFrame>& target,
296      const base::Callback<void(bool)>& callback) {
297  NOTIMPLEMENTED();
298  callback.Run(false);
299}
300
301bool RenderWidgetHostViewChildFrame::CanCopyToVideoFrame() const {
302  return false;
303}
304
305void RenderWidgetHostViewChildFrame::AcceleratedSurfaceSuspend() {
306  NOTREACHED();
307}
308
309void RenderWidgetHostViewChildFrame::AcceleratedSurfaceRelease() {
310}
311
312bool RenderWidgetHostViewChildFrame::HasAcceleratedSurface(
313      const gfx::Size& desired_size) {
314  return false;
315}
316
317gfx::GLSurfaceHandle RenderWidgetHostViewChildFrame::GetCompositingSurface() {
318  return gfx::GLSurfaceHandle(gfx::kNullPluginWindow, gfx::TEXTURE_TRANSPORT);
319}
320
321#if defined(OS_WIN)
322void RenderWidgetHostViewChildFrame::SetParentNativeViewAccessible(
323    gfx::NativeViewAccessible accessible_parent) {
324}
325
326gfx::NativeViewId RenderWidgetHostViewChildFrame::GetParentForWindowlessPlugin()
327    const {
328  return NULL;
329}
330#endif // defined(OS_WIN)
331
332SkColorType RenderWidgetHostViewChildFrame::PreferredReadbackFormat() {
333  return kN32_SkColorType;
334}
335
336BrowserAccessibilityManager*
337RenderWidgetHostViewChildFrame::CreateBrowserAccessibilityManager(
338    BrowserAccessibilityDelegate* delegate) {
339  // This eventually needs to be implemented for cross-process iframes.
340  // http://crbug.com/368298
341  return NULL;
342}
343
344}  // namespace content
345