1// Copyright (c) 2012 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/browser_plugin/browser_plugin_guest_helper.h" 6 7#include "content/browser/browser_plugin/browser_plugin_guest.h" 8#include "content/common/drag_messages.h" 9#include "content/common/view_messages.h" 10#include "content/public/browser/render_view_host.h" 11 12namespace content { 13 14BrowserPluginGuestHelper::BrowserPluginGuestHelper( 15 BrowserPluginGuest* guest, 16 RenderViewHost* render_view_host) 17 : RenderViewHostObserver(render_view_host), 18 guest_(guest) { 19} 20 21BrowserPluginGuestHelper::~BrowserPluginGuestHelper() { 22} 23 24bool BrowserPluginGuestHelper::OnMessageReceived( 25 const IPC::Message& message) { 26 if (ShouldForwardToBrowserPluginGuest(message)) 27 return guest_->OnMessageReceived(message); 28 return false; 29} 30 31// static 32bool BrowserPluginGuestHelper::ShouldForwardToBrowserPluginGuest( 33 const IPC::Message& message) { 34 switch (message.type()) { 35 case DragHostMsg_StartDragging::ID: 36 case DragHostMsg_TargetDrop_ACK::ID: 37 case ViewHostMsg_HasTouchEventHandlers::ID: 38 case ViewHostMsg_SetCursor::ID: 39 #if defined(OS_MACOSX) 40 case ViewHostMsg_ShowPopup::ID: 41 #endif 42 case ViewHostMsg_ShowWidget::ID: 43 case ViewHostMsg_TakeFocus::ID: 44 case ViewHostMsg_UpdateFrameName::ID: 45 case ViewHostMsg_UpdateRect::ID: 46 case ViewHostMsg_LockMouse::ID: 47 case ViewHostMsg_UnlockMouse::ID: 48 return true; 49 default: 50 break; 51 } 52 return false; 53} 54 55} // namespace content 56