15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/browser/browser_plugin/browser_plugin_guest_helper.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/browser/browser_plugin/browser_plugin_guest.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/drag_messages.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/view_messages.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/render_view_host.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BrowserPluginGuestHelper::BrowserPluginGuestHelper(
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowserPluginGuest* guest,
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    RenderViewHost* render_view_host)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    : RenderViewHostObserver(render_view_host),
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      guest_(guest) {
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BrowserPluginGuestHelper::~BrowserPluginGuestHelper() {
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool BrowserPluginGuestHelper::OnMessageReceived(
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const IPC::Message& message) {
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (ShouldForwardToBrowserPluginGuest(message))
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return guest_->OnMessageReceived(message);
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return false;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool BrowserPluginGuestHelper::ShouldForwardToBrowserPluginGuest(
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const IPC::Message& message) {
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  switch (message.type()) {
35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    case DragHostMsg_StartDragging::ID:
36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    case DragHostMsg_TargetDrop_ACK::ID:
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    case ViewHostMsg_HasTouchEventHandlers::ID:
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    case ViewHostMsg_SetCursor::ID:
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if defined(OS_MACOSX)
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    case ViewHostMsg_ShowPopup::ID:
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    case ViewHostMsg_ShowWidget::ID:
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    case ViewHostMsg_TakeFocus::ID:
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    case ViewHostMsg_UpdateFrameName::ID:
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    case ViewHostMsg_UpdateRect::ID:
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    case ViewHostMsg_LockMouse::ID:
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    case ViewHostMsg_UnlockMouse::ID:
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      return true;
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    default:
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      break;
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return false;
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace content
56