diff options
Diffstat (limited to 'chromium/content/browser/frame_host/render_widget_host_view_child_frame.h')
-rw-r--r-- | chromium/content/browser/frame_host/render_widget_host_view_child_frame.h | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/chromium/content/browser/frame_host/render_widget_host_view_child_frame.h b/chromium/content/browser/frame_host/render_widget_host_view_child_frame.h new file mode 100644 index 00000000000..e288248aa45 --- /dev/null +++ b/chromium/content/browser/frame_host/render_widget_host_view_child_frame.h @@ -0,0 +1,174 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_FRAME_HOST_RENDER_WIDGET_HOST_VIEW_CHILD_FRAME_H_ +#define CONTENT_BROWSER_FRAME_HOST_RENDER_WIDGET_HOST_VIEW_CHILD_FRAME_H_ + +#include "base/memory/scoped_ptr.h" +#include "content/browser/renderer_host/render_widget_host_view_base.h" +#include "content/common/content_export.h" +#include "ui/gfx/native_widget_types.h" +#include "ui/gfx/rect.h" + +struct ViewHostMsg_TextInputState_Params; + +namespace content { +class CrossProcessFrameConnector; +class RenderWidgetHost; +class RenderWidgetHostImpl; + +// RenderWidgetHostViewChildFrame implements the view for a RenderWidgetHost +// associated with content being rendered in a separate process from +// content that is embedding it. This is not a platform-specific class; rather, +// the embedding renderer process implements the platform containing the +// widget, and the top-level frame's RenderWidgetHostView will ultimately +// manage all native widget interaction. +// +// See comments in render_widget_host_view.h about this class and its members. +class CONTENT_EXPORT RenderWidgetHostViewChildFrame + : public RenderWidgetHostViewBase { + public: + explicit RenderWidgetHostViewChildFrame(RenderWidgetHost* widget); + virtual ~RenderWidgetHostViewChildFrame(); + + void set_cross_process_frame_connector( + CrossProcessFrameConnector* frame_connector) { + frame_connector_ = frame_connector; + } + + // RenderWidgetHostView implementation. + virtual void InitAsChild(gfx::NativeView parent_view) OVERRIDE; + virtual RenderWidgetHost* GetRenderWidgetHost() const OVERRIDE; + virtual void SetSize(const gfx::Size& size) OVERRIDE; + virtual void SetBounds(const gfx::Rect& rect) OVERRIDE; + virtual void Focus() OVERRIDE; + virtual bool HasFocus() const OVERRIDE; + virtual bool IsSurfaceAvailableForCopy() const OVERRIDE; + virtual void Show() OVERRIDE; + virtual void Hide() OVERRIDE; + virtual bool IsShowing() OVERRIDE; + virtual gfx::Rect GetViewBounds() const OVERRIDE; + virtual gfx::NativeView GetNativeView() const OVERRIDE; + virtual gfx::NativeViewId GetNativeViewId() const OVERRIDE; + virtual gfx::NativeViewAccessible GetNativeViewAccessible() OVERRIDE; + virtual void SetBackgroundOpaque(bool opaque) OVERRIDE; + virtual gfx::Size GetPhysicalBackingSize() const OVERRIDE; + + // RenderWidgetHostViewBase implementation. + virtual void InitAsPopup(RenderWidgetHostView* parent_host_view, + const gfx::Rect& pos) OVERRIDE; + virtual void InitAsFullscreen( + RenderWidgetHostView* reference_host_view) OVERRIDE; + virtual void WasShown() OVERRIDE; + virtual void WasHidden() OVERRIDE; + virtual void MovePluginWindows( + const std::vector<WebPluginGeometry>& moves) OVERRIDE; + virtual void Blur() OVERRIDE; + virtual void UpdateCursor(const WebCursor& cursor) OVERRIDE; + virtual void SetIsLoading(bool is_loading) OVERRIDE; + virtual void TextInputStateChanged( + const ViewHostMsg_TextInputState_Params& params) OVERRIDE; + virtual void ImeCancelComposition() OVERRIDE; +#if defined(OS_MACOSX) || defined(USE_AURA) + virtual void ImeCompositionRangeChanged( + const gfx::Range& range, + const std::vector<gfx::Rect>& character_bounds) OVERRIDE; +#endif + virtual void RenderProcessGone(base::TerminationStatus status, + int error_code) OVERRIDE; + virtual void Destroy() OVERRIDE; + virtual void SetTooltipText(const base::string16& tooltip_text) OVERRIDE; + virtual void SelectionChanged(const base::string16& text, + size_t offset, + const gfx::Range& range) OVERRIDE; + virtual void SelectionBoundsChanged( + const ViewHostMsg_SelectionBounds_Params& params) OVERRIDE; + virtual void ScrollOffsetChanged() OVERRIDE; + virtual void CopyFromCompositingSurface( + const gfx::Rect& src_subrect, + const gfx::Size& dst_size, + const base::Callback<void(bool, const SkBitmap&)>& callback, + const SkBitmap::Config config) OVERRIDE; + virtual void CopyFromCompositingSurfaceToVideoFrame( + const gfx::Rect& src_subrect, + const scoped_refptr<media::VideoFrame>& target, + const base::Callback<void(bool)>& callback) OVERRIDE; + virtual bool CanCopyToVideoFrame() const OVERRIDE; + virtual void AcceleratedSurfaceInitialized(int host_id, + int route_id) OVERRIDE; + virtual void AcceleratedSurfaceBuffersSwapped( + const GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params& params, + int gpu_host_id) OVERRIDE; + virtual void AcceleratedSurfacePostSubBuffer( + const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params, + int gpu_host_id) OVERRIDE; + virtual void AcceleratedSurfaceSuspend() OVERRIDE; + virtual void AcceleratedSurfaceRelease() OVERRIDE; + virtual bool HasAcceleratedSurface(const gfx::Size& desired_size) OVERRIDE; + virtual void OnSwapCompositorFrame( + uint32 output_surface_id, + scoped_ptr<cc::CompositorFrame> frame) OVERRIDE; + virtual void GetScreenInfo(blink::WebScreenInfo* results) OVERRIDE; + virtual gfx::Rect GetBoundsInRootWindow() OVERRIDE; + virtual gfx::GLSurfaceHandle GetCompositingSurface() OVERRIDE; +#if defined(USE_AURA) + virtual void ProcessAckedTouchEvent( + const TouchEventWithLatencyInfo& touch, + InputEventAckState ack_result) OVERRIDE; +#endif // defined(USE_AURA) + virtual bool LockMouse() OVERRIDE; + virtual void UnlockMouse() OVERRIDE; + +#if defined(OS_MACOSX) + // RenderWidgetHostView implementation. + virtual void SetActive(bool active) OVERRIDE; + virtual void SetTakesFocusOnlyOnMouseDown(bool flag) OVERRIDE; + virtual void SetWindowVisibility(bool visible) OVERRIDE; + virtual void WindowFrameChanged() OVERRIDE; + virtual void ShowDefinitionForSelection() OVERRIDE; + virtual bool SupportsSpeech() const OVERRIDE; + virtual void SpeakSelection() OVERRIDE; + virtual bool IsSpeaking() const OVERRIDE; + virtual void StopSpeaking() OVERRIDE; + + // RenderWidgetHostViewBase implementation. + virtual bool PostProcessEventForPluginIme( + const NativeWebKeyboardEvent& event) OVERRIDE; +#endif // defined(OS_MACOSX) + +#if defined(OS_ANDROID) + // RenderWidgetHostViewBase implementation. + virtual void ShowDisambiguationPopup( + const gfx::Rect& target_rect, + const SkBitmap& zoomed_bitmap) OVERRIDE; + virtual void LockCompositingSurface() OVERRIDE; + virtual void UnlockCompositingSurface() OVERRIDE; +#endif // defined(OS_ANDROID) + +#if defined(OS_WIN) + virtual void SetParentNativeViewAccessible( + gfx::NativeViewAccessible accessible_parent) OVERRIDE; + virtual gfx::NativeViewId GetParentForWindowlessPlugin() const OVERRIDE; +#endif + + virtual SkBitmap::Config PreferredReadbackFormat() OVERRIDE; + + protected: + friend class RenderWidgetHostView; + + // Members will become private when RenderWidgetHostViewGuest is removed. + // The model object. + RenderWidgetHostImpl* host_; + + // frame_connector_ provides a platform abstraction. Messages + // sent through it are routed to the embedding renderer process. + CrossProcessFrameConnector* frame_connector_; + + private: + DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewChildFrame); +}; + +} // namespace content + +#endif // CONTENT_BROWSER_FRAME_HOST_RENDER_WIDGET_HOST_VIEW_CHILD_FRAME_H_ |