13345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// This implements a browser-side endpoint for ChromeFrame UI automation 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// activity. The client-side endpoint is implemented by 7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// ChromeFrameAutomationClient. 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// The entire lifetime of this object should be contained within that of 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// the BrowserProcess 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_AUTOMATION_CHROME_FRAME_AUTOMATION_PROVIDER_H_ 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_AUTOMATION_CHROME_FRAME_AUTOMATION_PROVIDER_H_ 133345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/basictypes.h" 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/automation/automation_provider.h" 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass Profile; 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// This class services automation IPC requests coming in from ChromeFrame 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// instances. 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass ChromeFrameAutomationProvider : public AutomationProvider { 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch explicit ChromeFrameAutomationProvider(Profile* profile); 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // IPC::Channel::Listener overrides. 2721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual bool OnMessageReceived(const IPC::Message& message); 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch protected: 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // This function is called when we receive an invalid message type. 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void OnUnhandledMessage(const IPC::Message& message); 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns true if the message received is a valid chrome frame message. 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch bool IsValidMessage(uint32 type); 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(ChromeFrameAutomationProvider); 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // CHROME_BROWSER_AUTOMATION_CHROME_FRAME_AUTOMATION_PROVIDER_H_ 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 42