Battery Status API: add UMA logging for Linux.
[chromium-blink-merge.git] / content / browser / frame_host / render_widget_host_view_child_frame.cc
blob580c6c55965941c446e4ce3a9f032ec07b3d1123
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.
5 #include "content/browser/frame_host/render_widget_host_view_child_frame.h"
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"
13 namespace content {
15 RenderWidgetHostViewChildFrame::RenderWidgetHostViewChildFrame(
16 RenderWidgetHost* widget_host)
17 : host_(RenderWidgetHostImpl::From(widget_host)),
18 frame_connector_(NULL) {
19 host_->SetView(this);
22 RenderWidgetHostViewChildFrame::~RenderWidgetHostViewChildFrame() {
25 void RenderWidgetHostViewChildFrame::InitAsChild(
26 gfx::NativeView parent_view) {
27 NOTREACHED();
30 RenderWidgetHost* RenderWidgetHostViewChildFrame::GetRenderWidgetHost() const {
31 return host_;
34 void RenderWidgetHostViewChildFrame::SetSize(const gfx::Size& size) {
35 host_->WasResized();
38 void RenderWidgetHostViewChildFrame::SetBounds(const gfx::Rect& rect) {
39 SetSize(rect.size());
42 void RenderWidgetHostViewChildFrame::Focus() {
45 bool RenderWidgetHostViewChildFrame::HasFocus() const {
46 return false;
49 bool RenderWidgetHostViewChildFrame::IsSurfaceAvailableForCopy() const {
50 NOTIMPLEMENTED();
51 return false;
54 void RenderWidgetHostViewChildFrame::Show() {
55 WasShown();
58 void RenderWidgetHostViewChildFrame::Hide() {
59 WasHidden();
62 bool RenderWidgetHostViewChildFrame::IsShowing() {
63 return !host_->is_hidden();
66 gfx::Rect RenderWidgetHostViewChildFrame::GetViewBounds() const {
67 gfx::Rect rect;
68 if (frame_connector_)
69 rect = frame_connector_->ChildFrameRect();
70 return rect;
73 gfx::NativeView RenderWidgetHostViewChildFrame::GetNativeView() const {
74 NOTREACHED();
75 return NULL;
78 gfx::NativeViewId RenderWidgetHostViewChildFrame::GetNativeViewId() const {
79 NOTREACHED();
80 return 0;
83 gfx::NativeViewAccessible
84 RenderWidgetHostViewChildFrame::GetNativeViewAccessible() {
85 NOTREACHED();
86 return NULL;
89 void RenderWidgetHostViewChildFrame::SetBackgroundOpaque(bool opaque) {
92 gfx::Size RenderWidgetHostViewChildFrame::GetPhysicalBackingSize() const {
93 gfx::Size size;
94 if (frame_connector_)
95 size = frame_connector_->ChildFrameRect().size();
96 return size;
99 void RenderWidgetHostViewChildFrame::InitAsPopup(
100 RenderWidgetHostView* parent_host_view,
101 const gfx::Rect& pos) {
102 NOTREACHED();
105 void RenderWidgetHostViewChildFrame::InitAsFullscreen(
106 RenderWidgetHostView* reference_host_view) {
107 NOTREACHED();
110 void RenderWidgetHostViewChildFrame::ImeCancelComposition() {
111 NOTREACHED();
114 #if defined(OS_MACOSX) || defined(USE_AURA)
115 void RenderWidgetHostViewChildFrame::ImeCompositionRangeChanged(
116 const gfx::Range& range,
117 const std::vector<gfx::Rect>& character_bounds) {
118 NOTREACHED();
120 #endif
122 void RenderWidgetHostViewChildFrame::WasShown() {
123 if (!host_->is_hidden())
124 return;
125 host_->WasShown(ui::LatencyInfo());
128 void RenderWidgetHostViewChildFrame::WasHidden() {
129 if (host_->is_hidden())
130 return;
131 host_->WasHidden();
134 void RenderWidgetHostViewChildFrame::MovePluginWindows(
135 const std::vector<WebPluginGeometry>& moves) {
138 void RenderWidgetHostViewChildFrame::Blur() {
141 void RenderWidgetHostViewChildFrame::UpdateCursor(const WebCursor& cursor) {
144 void RenderWidgetHostViewChildFrame::SetIsLoading(bool is_loading) {
145 NOTREACHED();
148 void RenderWidgetHostViewChildFrame::TextInputStateChanged(
149 const ViewHostMsg_TextInputState_Params& params) {
152 void RenderWidgetHostViewChildFrame::RenderProcessGone(
153 base::TerminationStatus status,
154 int error_code) {
155 if (frame_connector_)
156 frame_connector_->RenderProcessGone();
157 Destroy();
160 void RenderWidgetHostViewChildFrame::Destroy() {
161 if (frame_connector_) {
162 frame_connector_->set_view(NULL);
163 frame_connector_ = NULL;
166 host_->SetView(NULL);
167 host_ = NULL;
168 base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
171 void RenderWidgetHostViewChildFrame::SetTooltipText(
172 const base::string16& tooltip_text) {
175 void RenderWidgetHostViewChildFrame::SelectionChanged(
176 const base::string16& text,
177 size_t offset,
178 const gfx::Range& range) {
181 void RenderWidgetHostViewChildFrame::SelectionBoundsChanged(
182 const ViewHostMsg_SelectionBounds_Params& params) {
185 #if defined(OS_ANDROID)
186 void RenderWidgetHostViewChildFrame::ShowDisambiguationPopup(
187 const gfx::Rect& target_rect,
188 const SkBitmap& zoomed_bitmap) {
191 void RenderWidgetHostViewChildFrame::LockCompositingSurface() {
194 void RenderWidgetHostViewChildFrame::UnlockCompositingSurface() {
196 #endif
198 void RenderWidgetHostViewChildFrame::AcceleratedSurfaceInitialized(int host_id,
199 int route_id) {
202 void 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);
209 void RenderWidgetHostViewChildFrame::AcceleratedSurfacePostSubBuffer(
210 const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params,
211 int gpu_host_id) {
214 void 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());
226 void RenderWidgetHostViewChildFrame::GetScreenInfo(
227 blink::WebScreenInfo* results) {
230 gfx::Rect RenderWidgetHostViewChildFrame::GetBoundsInRootWindow() {
231 // We do not have any root window specific parts in this view.
232 return GetViewBounds();
235 #if defined(USE_AURA)
236 void RenderWidgetHostViewChildFrame::ProcessAckedTouchEvent(
237 const TouchEventWithLatencyInfo& touch,
238 InputEventAckState ack_result) {
240 #endif // defined(USE_AURA)
242 bool RenderWidgetHostViewChildFrame::LockMouse() {
243 return false;
246 void RenderWidgetHostViewChildFrame::UnlockMouse() {
249 #if defined(OS_MACOSX)
250 void RenderWidgetHostViewChildFrame::SetActive(bool active) {
253 void RenderWidgetHostViewChildFrame::SetTakesFocusOnlyOnMouseDown(bool flag) {
256 void RenderWidgetHostViewChildFrame::SetWindowVisibility(bool visible) {
259 void RenderWidgetHostViewChildFrame::WindowFrameChanged() {
262 void RenderWidgetHostViewChildFrame::ShowDefinitionForSelection() {
265 bool RenderWidgetHostViewChildFrame::SupportsSpeech() const {
266 return false;
269 void RenderWidgetHostViewChildFrame::SpeakSelection() {
272 bool RenderWidgetHostViewChildFrame::IsSpeaking() const {
273 return false;
276 void RenderWidgetHostViewChildFrame::StopSpeaking() {
279 bool RenderWidgetHostViewChildFrame::PostProcessEventForPluginIme(
280 const NativeWebKeyboardEvent& event) {
281 return false;
283 #endif // defined(OS_MACOSX)
285 void 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());
293 void 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);
301 bool RenderWidgetHostViewChildFrame::CanCopyToVideoFrame() const {
302 return false;
305 void RenderWidgetHostViewChildFrame::AcceleratedSurfaceSuspend() {
306 NOTREACHED();
309 void RenderWidgetHostViewChildFrame::AcceleratedSurfaceRelease() {
312 bool RenderWidgetHostViewChildFrame::HasAcceleratedSurface(
313 const gfx::Size& desired_size) {
314 return false;
317 gfx::GLSurfaceHandle RenderWidgetHostViewChildFrame::GetCompositingSurface() {
318 return gfx::GLSurfaceHandle(gfx::kNullPluginWindow, gfx::TEXTURE_TRANSPORT);
321 #if defined(OS_WIN)
322 void RenderWidgetHostViewChildFrame::SetParentNativeViewAccessible(
323 gfx::NativeViewAccessible accessible_parent) {
326 gfx::NativeViewId RenderWidgetHostViewChildFrame::GetParentForWindowlessPlugin()
327 const {
328 return NULL;
330 #endif // defined(OS_WIN)
332 SkColorType RenderWidgetHostViewChildFrame::PreferredReadbackFormat() {
333 return kN32_SkColorType;
336 BrowserAccessibilityManager*
337 RenderWidgetHostViewChildFrame::CreateBrowserAccessibilityManager(
338 BrowserAccessibilityDelegate* delegate) {
339 // This eventually needs to be implemented for cross-process iframes.
340 // http://crbug.com/368298
341 return NULL;
344 } // namespace content