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