summaryrefslogtreecommitdiffstats
path: root/chrome_frame/cfproxy.h
diff options
context:
space:
mode:
authorstoyan@chromium.org <stoyan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-06 00:17:40 +0000
committerstoyan@chromium.org <stoyan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-06 00:17:40 +0000
commitfcbd65c23cccdb2e0bea7aa7accb47592388845d (patch)
treee1550fd98bcc4c35e40e470d077fd65354125426 /chrome_frame/cfproxy.h
parent7f0199682d1d591a2a0024a7cacf7205b739ad5d (diff)
downloadchromium_src-fcbd65c23cccdb2e0bea7aa7accb47592388845d.zip
chromium_src-fcbd65c23cccdb2e0bea7aa7accb47592388845d.tar.gz
chromium_src-fcbd65c23cccdb2e0bea7aa7accb47592388845d.tar.bz2
Revert 61583 - Initial skeleton for refactored ChromeFrameAutomationClient and AutomationProxy for the needs of ChromeFrame.
CFProxy is ready to some extent, while CFAC is mostly structure-only. Review URL: http://codereview.chromium.org/3528004 TBR=stoyan@chromium.org Review URL: http://codereview.chromium.org/3547013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61590 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/cfproxy.h')
-rw-r--r--chrome_frame/cfproxy.h227
1 files changed, 0 insertions, 227 deletions
diff --git a/chrome_frame/cfproxy.h b/chrome_frame/cfproxy.h
deleted file mode 100644
index b45e30f..0000000
--- a/chrome_frame/cfproxy.h
+++ /dev/null
@@ -1,227 +0,0 @@
-// Copyright (c) 2010 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.
-
-#ifndef CHROME_FRAME_CFPROXY_H_
-#define CHROME_FRAME_CFPROXY_H_
-#pragma once
-
-#include <windows.h>
-#include <map> // for proxy factory
-#include <vector>
-#include <string>
-#include "base/lock.h"
-#include "base/time.h" // for base::TimeDelta
-#include "base/file_path.h"
-#include "chrome/common/page_zoom.h"
-#include "chrome/test/automation/automation_constants.h"
-
-enum FindInPageDirection { BACK = 0, FWD = 1 };
-enum FindInPageCase { IGNORE_CASE = 0, CASE_SENSITIVE = 1 };
-// Specifies the font size on a page which is requested by an automation
-// client.
-enum AutomationPageFontSize {
- SMALLEST_FONT = 8,
- SMALL_FONT = 12,
- MEDIUM_FONT = 16,
- LARGE_FONT = 24,
- LARGEST_FONT = 36
-};
-
-class URLRequestStatus;
-namespace IPC {
- struct ExternalTabSettings;
- struct NavigationInfo;
- struct AutomationURLRequest;
- struct AttachExternalTabParams;
-};
-
-class GURL;
-class ChromeProxyFactory;
-class ChromeProxyDelegate;
-struct ProxyParams;
-
-// Some callers of synchronous messages wants a context to be passed back
-// in order to identify the call they made. Presumably one can make
-// multiple sync calls of same type (as async) and want to identify what
-// is what.
-struct SyncMessageContext {
- virtual ~SyncMessageContext() {}
-};
-
-
-/*
-[npapi] UIDelegate (UI_THREAD)
-[activex] <---------------+
-[activedoc] |
- |
- | ChromeProxy (UI_THREAD)
- +----------------+ --------------> +-------+
- URL_FETCHER <---------|ExternalTabProxy| |CFProxy|
- +----------------+ +-------+
- |
- ^ |
- | |
- +-----------------------------+
-
- ChromeProxyDelegate (IPC_THREAD)
-
-*/
-
-// ChromeProxy is an abstract class. Is forwards the commands to an
-// instance of the running Chromium browser.
-// A pointer to ChromeProxy instance is obtained through a
-// ChromeProxyFactory object.
-class ChromeProxy {
- public:
- // General
- virtual void RemoveBrowsingData(int remove_mask) = 0; // async
- virtual void InstallExtension(ChromeProxyDelegate* delegate,
- const FilePath& crx_path,
- SyncMessageContext* ctx) = 0;
- virtual void LoadExtension(ChromeProxyDelegate* delegate,
- const FilePath& path,
- SyncMessageContext* ctx) = 0;
- virtual void GetEnabledExtensions(ChromeProxyDelegate* delegate,
- SyncMessageContext* ctx) = 0;
- virtual void SetProxyConfig(const std::string& json_encoded_settings) = 0;
-
- // Tab management.
- virtual void CreateTab(ChromeProxyDelegate* delegate,
- const IPC::ExternalTabSettings& settings) = 0;
- virtual void ConnectTab(ChromeProxyDelegate* delegate, HWND hwnd,
- uint64 cookie) = 0;
- virtual void BlockTab(uint64 cookie) = 0;
-
- // Tab related.
- virtual void Tab_PostMessage(int tab, const std::string& message,
- const std::string& origin,
- const std::string& target) = 0;
- virtual void Tab_Reload(int tab) = 0;
- virtual void Tab_Stop(int tab) = 0;
- virtual void Tab_SaveAs(int tab) = 0;
- virtual void Tab_Print(int tab) = 0;
- virtual void Tab_Cut(int tab) = 0;
- virtual void Tab_Copy(int tab) = 0;
- virtual void Tab_Paste(int tab) = 0;
- virtual void Tab_SelectAll(int tab) = 0;
- virtual void Tab_Find(int tab, const string16& search_string,
- FindInPageDirection forward, FindInPageCase match_case,
- bool find_next) = 0;
- virtual void Tab_MenuCommand(int tab, int selected_command) = 0;
-
- // UI
- virtual void Tab_Zoom(int tab, PageZoom::Function zoom_level) = 0;
- virtual void Tab_FontSize(int tab, enum AutomationPageFontSize font_size) = 0;
- virtual void Tab_SetInitialFocus(int tab,
- bool reverse, bool restore_focus_to_view) = 0;
- virtual void Tab_SetParentWindow(int tab) = 0;
- virtual void Tab_Resize(int tab) = 0;
- virtual void Tab_ProcessAccelerator(int tab, const MSG& msg) = 0;
-
- // Misc.
- virtual void Tab_OnHostMoved(int tab) = 0;
- virtual void Tab_RunUnloadHandlers(int tab) = 0;
- virtual void Tab_SetEnableExtensionAutomation(int tab,
- const std::vector<std::string>& functions_enabled) = 0;
- virtual void Tab_Navigate(int tab, const GURL& url, const GURL& referrer) = 0;
- virtual void Tab_OverrideEncoding(int tab, const char* encoding) = 0;
-
- protected:
- // Accessible by ChromeProxyFactory
- friend class ChromeProxyFactory;
- ~ChromeProxy() {}
- virtual void Init(const ProxyParams& params) = 0;
- virtual int AddDelegate(ChromeProxyDelegate* delegate) = 0;
- virtual int RemoveDelegate(ChromeProxyDelegate* delegate) = 0;
-};
-
-// The object that uses ChromeProxy should implement ChromeProxyDelegate in
-// order to get notified about important events/requests coming from the
-// instance of Chromium.
-// Allow only one delegate per tab, i.e. delegate can handle only a single tab.
-// Note: all of the methods are invoked always in a background IPC thread.
-class ChromeProxyDelegate {
- public:
- enum DisconnectReason {
- CHROME_EXE_LAUNCH_FAILED,
- CHROME_EXE_LAUNCH_TIMEOUT,
- CHANNEL_ERROR
- };
-
- virtual void Connected(ChromeProxy* proxy) = 0;
- virtual void Disconnected() = 0;
- virtual void PeerLost(ChromeProxy* proxy, DisconnectReason reason) = 0;
- virtual int tab_handle() = 0; // to avoid reverse lookup :)
-
- // Sync message responses.
- virtual void Completed_CreateTab(bool success, HWND chrome_wnd,
- HWND tab_window, int tab_handle) = 0;
- virtual void Completed_ConnectToTab(bool success, HWND chrome_window,
- HWND tab_window, int tab_handle) = 0;
- virtual void Completed_Navigate(bool success,
- enum AutomationMsg_NavigationResponseValues res) = 0;
- virtual void Completed_InstallExtension(bool success,
- AutomationMsg_ExtensionResponseValues res, SyncMessageContext* ctx) = 0;
- virtual void Completed_LoadExpandedExtension(bool success,
- AutomationMsg_ExtensionResponseValues res, SyncMessageContext* ctx) = 0;
- virtual void Completed_GetEnabledExtensions(bool success,
- const std::vector<FilePath>* extensions) = 0;
-
- // Network requests from Chrome.
- virtual void Network_Start(int request_id,
- const IPC::AutomationURLRequest& request_info) = 0;
- virtual void Network_Read(int request_id, int bytes_to_read) = 0;
- virtual void Network_End(int request_id, const URLRequestStatus& status) = 0;
- virtual void Network_DownloadInHost(int request_id) = 0;
- virtual void GetCookies(const GURL& url, int cookie_id) = 0;
- virtual void SetCookie(const GURL& url, const std::string& cookie) = 0;
-
- // Navigation progress notifications.
- virtual void NavigationStateChanged(int flags,
- const IPC::NavigationInfo& nav_info) = 0;
- virtual void UpdateTargetUrl(const std::wstring& url) = 0;
- virtual void NavigationFailed(int error_code, const GURL& gurl) = 0;
- virtual void DidNavigate(const IPC::NavigationInfo& navigation_info) = 0;
- virtual void TabLoaded(const GURL& url) = 0;
-
- // Navigation and messaging.
- virtual void OpenURL(const GURL& url_to_open, const GURL& referrer,
- int open_disposition) = 0;
- virtual void GoToHistoryOffset(int offset) = 0;
- virtual void MessageToHost(const std::string& message,
- const std::string& origin,
- const std::string& target) = 0;
- // Misc. UI.
- virtual void HandleAccelerator(const MSG& accel_message) = 0;
- virtual void TabbedOut(bool reverse) = 0;
-
- // Tab related.
- virtual void TabClosed() = 0;
- virtual void AttachTab(const IPC::AttachExternalTabParams& attach_params) = 0;
- protected:
- ~ChromeProxyDelegate() {}
-};
-
-// a way to obtain a ChromeProxy implementation
-struct ProxyParams {
- std::string profile;
- std::wstring extra_params;
- FilePath profile_path;
- base::TimeDelta timeout;
-};
-
-class ChromeProxyFactory {
- public:
- ChromeProxyFactory();
- ~ChromeProxyFactory();
- void GetProxy(ChromeProxyDelegate* delegate, const ProxyParams& params);
- bool ReleaseProxy(ChromeProxyDelegate* delegate, const std::string& profile);
- protected:
- virtual ChromeProxy* CreateProxy();
- typedef std::map<std::string, ChromeProxy*> ProxyMap;
- ProxyMap proxies_;
- Lock lock_;
-};
-
-#endif // CHROME_FRAME_CFPROXY_H_