Home | History | Annotate | Download | only in automation
      1 // Copyright (c) 2011 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 "chrome/browser/automation/chrome_frame_automation_provider.h"
      6 #include "chrome/browser/profiles/profile.h"
      7 #include "chrome/browser/profiles/profile_manager.h"
      8 #include "chrome/common/automation_messages.h"
      9 #include "ipc/ipc_message.h"
     10 #include "ipc/ipc_channel.h"
     11 
     12 ChromeFrameAutomationProvider::ChromeFrameAutomationProvider(Profile* profile)
     13     : AutomationProvider(profile) {}
     14 
     15 bool ChromeFrameAutomationProvider::OnMessageReceived(
     16     const IPC::Message& message) {
     17   if (IsValidMessage(message.type()))
     18     return AutomationProvider::OnMessageReceived(message);
     19 
     20   OnUnhandledMessage(message);
     21   return false;
     22 }
     23 
     24 void ChromeFrameAutomationProvider::OnUnhandledMessage(
     25     const IPC::Message& message) {
     26   NOTREACHED() << __FUNCTION__
     27                << " Unhandled message type: "
     28                << message.type();
     29 }
     30 
     31 bool ChromeFrameAutomationProvider::IsValidMessage(uint32 type) {
     32   bool is_valid_message = false;
     33 
     34   switch (type) {
     35     case AutomationMsg_CreateExternalTab::ID:
     36     case AutomationMsg_ConnectExternalTab::ID:
     37 #if defined(OS_WIN)
     38     case AutomationMsg_BrowserMove::ID:
     39     case AutomationMsg_ProcessUnhandledAccelerator::ID:
     40     case AutomationMsg_TabReposition::ID:
     41     case AutomationMsg_ForwardContextMenuCommandToChrome::ID:
     42 #endif  // defined(OS_WIN)
     43     case AutomationMsg_NavigateInExternalTab::ID:
     44     case AutomationMsg_NavigateExternalTabAtIndex::ID:
     45     case AutomationMsg_Find::ID:
     46     case AutomationMsg_SetInitialFocus::ID:
     47     case AutomationMsg_SetPageFontSize::ID:
     48     case AutomationMsg_SetProxyConfig::ID:
     49     case AutomationMsg_Cut::ID:
     50     case AutomationMsg_Copy::ID:
     51     case AutomationMsg_Paste::ID:
     52     case AutomationMsg_SelectAll::ID:
     53     case AutomationMsg_ReloadAsync::ID:
     54     case AutomationMsg_StopAsync::ID:
     55     case AutomationMsg_PrintAsync::ID:
     56     case AutomationMsg_HandleUnused::ID:
     57     case AutomationMsg_HandleMessageFromExternalHost::ID:
     58     case AutomationMsg_RequestStarted::ID:
     59     case AutomationMsg_RequestData::ID:
     60     case AutomationMsg_RequestEnd::ID:
     61     case AutomationMsg_SaveAsAsync::ID:
     62     case AutomationMsg_RemoveBrowsingData::ID:
     63     case AutomationMsg_OverrideEncoding::ID:
     64     case AutomationMsg_RunUnloadHandlers::ID:
     65     case AutomationMsg_SetZoomLevel::ID: {
     66       is_valid_message = true;
     67       break;
     68     }
     69 
     70     default:
     71       break;
     72   }
     73 
     74   return is_valid_message;
     75 }
     76