summaryrefslogtreecommitdiffstats
path: root/chromium/content/browser/frame_host/render_widget_host_view_child_frame.h
diff options
context:
space:
mode:
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.h174
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_