| // Copyright (c) 2011 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. |
| |
| #include "chrome/browser/automation/chrome_frame_automation_provider.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| #include "chrome/common/automation_messages.h" |
| #include "ipc/ipc_message.h" |
| #include "ipc/ipc_channel.h" |
| |
| ChromeFrameAutomationProvider::ChromeFrameAutomationProvider(Profile* profile) |
| : AutomationProvider(profile) {} |
| |
| bool ChromeFrameAutomationProvider::OnMessageReceived( |
| const IPC::Message& message) { |
| if (IsValidMessage(message.type())) |
| return AutomationProvider::OnMessageReceived(message); |
| |
| OnUnhandledMessage(message); |
| return false; |
| } |
| |
| void ChromeFrameAutomationProvider::OnUnhandledMessage( |
| const IPC::Message& message) { |
| NOTREACHED() << __FUNCTION__ |
| << " Unhandled message type: " |
| << message.type(); |
| } |
| |
| bool ChromeFrameAutomationProvider::IsValidMessage(uint32 type) { |
| bool is_valid_message = false; |
| |
| switch (type) { |
| case AutomationMsg_CreateExternalTab::ID: |
| case AutomationMsg_ConnectExternalTab::ID: |
| #if defined(OS_WIN) |
| case AutomationMsg_BrowserMove::ID: |
| case AutomationMsg_ProcessUnhandledAccelerator::ID: |
| case AutomationMsg_TabReposition::ID: |
| case AutomationMsg_ForwardContextMenuCommandToChrome::ID: |
| #endif // defined(OS_WIN) |
| case AutomationMsg_NavigateInExternalTab::ID: |
| case AutomationMsg_NavigateExternalTabAtIndex::ID: |
| case AutomationMsg_Find::ID: |
| case AutomationMsg_SetInitialFocus::ID: |
| case AutomationMsg_SetPageFontSize::ID: |
| case AutomationMsg_SetProxyConfig::ID: |
| case AutomationMsg_Cut::ID: |
| case AutomationMsg_Copy::ID: |
| case AutomationMsg_Paste::ID: |
| case AutomationMsg_SelectAll::ID: |
| case AutomationMsg_ReloadAsync::ID: |
| case AutomationMsg_StopAsync::ID: |
| case AutomationMsg_PrintAsync::ID: |
| case AutomationMsg_HandleUnused::ID: |
| case AutomationMsg_HandleMessageFromExternalHost::ID: |
| case AutomationMsg_RequestStarted::ID: |
| case AutomationMsg_RequestData::ID: |
| case AutomationMsg_RequestEnd::ID: |
| case AutomationMsg_SaveAsAsync::ID: |
| case AutomationMsg_RemoveBrowsingData::ID: |
| case AutomationMsg_OverrideEncoding::ID: |
| case AutomationMsg_RunUnloadHandlers::ID: |
| case AutomationMsg_SetZoomLevel::ID: { |
| is_valid_message = true; |
| break; |
| } |
| |
| default: |
| break; |
| } |
| |
| return is_valid_message; |
| } |