| Index: chrome_frame/cfproxy_private.h
|
| diff --git a/chrome_frame/cfproxy_private.h b/chrome_frame/cfproxy_private.h
|
| deleted file mode 100644
|
| index 12b4b26240d291888f6602520b89cff53628d061..0000000000000000000000000000000000000000
|
| --- a/chrome_frame/cfproxy_private.h
|
| +++ /dev/null
|
| @@ -1,180 +0,0 @@
|
| -// 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.
|
| -
|
| -#ifndef CHROME_FRAME_CFPROXY_PRIVATE_H_
|
| -#define CHROME_FRAME_CFPROXY_PRIVATE_H_
|
| -#pragma once
|
| -
|
| -#include <map>
|
| -#include <set>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "chrome_frame/cfproxy.h"
|
| -#include "base/threading/thread.h"
|
| -// Since we can't forward declare IPC::Message::Sender or IPC::Channel::Listener
|
| -#include "ipc/ipc_message.h"
|
| -#include "ipc/ipc_channel.h"
|
| -
|
| -typedef std::map<int, ChromeProxyDelegate*> TabsMap;
|
| -
|
| -// This is the functions needed by CFProxy implementation.
|
| -// Extracted in separate class so we can mock it.
|
| -class CFProxyTraits {
|
| - public:
|
| - virtual IPC::Message::Sender* CreateChannel(const std::string& id,
|
| - IPC::Channel::Listener* l);
|
| - virtual void CloseChannel(IPC::Message::Sender* s);
|
| - virtual bool LaunchApp(const std::wstring& cmd_line);
|
| -};
|
| -
|
| -// Holds a queue of sent synchronous IPC messages. Knows how to dispatch
|
| -// the replies.
|
| -class SyncMsgSender {
|
| - public:
|
| - explicit SyncMsgSender(TabsMap* tab2delegate);
|
| - void QueueSyncMessage(const IPC::SyncMessage* msg,
|
| - ChromeProxyDelegate* delegate, SyncMessageContext* ctx);
|
| - bool OnReplyReceived(const IPC::Message* reply_msg);
|
| - void OnChannelClosed();
|
| - void Cancel(ChromeProxyDelegate* delegate);
|
| - private:
|
| - // sync_message_id -> (message_type, delegate, context)
|
| - struct SingleSentMessage {
|
| - SingleSentMessage() : type_(0), ctx_(NULL), delegate_(NULL) {}
|
| - SingleSentMessage(uint32 type,
|
| - ChromeProxyDelegate* delegate,
|
| - SyncMessageContext* ctx)
|
| - : type_(type), ctx_(ctx), delegate_(delegate) {}
|
| - ~SingleSentMessage() { delete ctx_; }
|
| - uint32 type_;
|
| - SyncMessageContext* ctx_;
|
| - ChromeProxyDelegate* delegate_;
|
| - };
|
| -
|
| - SingleSentMessage* RemoveMessage(int id);
|
| - typedef std::map<int, SingleSentMessage*> SentMessages;
|
| - SentMessages messages_;
|
| - base::Lock messages_lock_;
|
| - TabsMap* tab2delegate_;
|
| -};
|
| -
|
| -// Converts method call to an IPC message and then send it over Message::Sender
|
| -class Interface2IPCMessage : public ChromeProxy {
|
| - public:
|
| - Interface2IPCMessage() {}
|
| -
|
| - // General
|
| - virtual void RemoveBrowsingData(int mask);
|
| - virtual void SetProxyConfig(const std::string& json_encoded_proxy_cfg);
|
| - // Tab related.
|
| - virtual void Tab_PostMessage(int tab, const std::string& message,
|
| - const std::string& origin, const std::string& target);
|
| - virtual void Tab_Reload(int tab);
|
| - virtual void Tab_Stop(int tab);
|
| - virtual void Tab_SaveAs(int tab);
|
| - virtual void Tab_Print(int tab);
|
| - virtual void Tab_Cut(int tab);
|
| - virtual void Tab_Copy(int tab);
|
| - virtual void Tab_Paste(int tab);
|
| - virtual void Tab_SelectAll(int tab);
|
| - virtual void Tab_MenuCommand(int tab, int selected_command);
|
| - virtual void Tab_Zoom(int tab, content::PageZoom zoom_level);
|
| - virtual void Tab_FontSize(int tab, enum AutomationPageFontSize font_size);
|
| - virtual void Tab_SetInitialFocus(int tab, bool reverse,
|
| - bool restore_focus_to_view);
|
| - virtual void Tab_SetParentWindow(int tab);
|
| - virtual void Tab_Resize(int tab);
|
| - virtual void Tab_ProcessAccelerator(int tab, const MSG& msg);
|
| -
|
| - // Misc.
|
| - virtual void Tab_OnHostMoved(int tab);
|
| - protected:
|
| - ~Interface2IPCMessage() {}
|
| - private:
|
| - IPC::Message::Sender* sender_;
|
| -};
|
| -
|
| -// Simple class to keep a list of pointers to ChromeProxyDelegate for a
|
| -// specific proxy as well as mapping between tab_id -> ChromeProxyDelegate.
|
| -class DelegateHolder {
|
| - protected:
|
| - DelegateHolder() {
|
| - }
|
| -
|
| - void AddDelegate(ChromeProxyDelegate* p);
|
| - void RemoveDelegate(ChromeProxyDelegate* p);
|
| - // Helper
|
| - ChromeProxyDelegate* Tab2Delegate(int tab_handle);
|
| - TabsMap tab2delegate_;
|
| - typedef std::set<ChromeProxyDelegate*> DelegateList;
|
| - DelegateList delegate_list_;
|
| -};
|
| -
|
| -// ChromeFrame Automation Proxy implementation.
|
| -class CFProxy : public Interface2IPCMessage,
|
| - public IPC::Channel::Listener,
|
| - public DelegateHolder {
|
| - public:
|
| - explicit CFProxy(CFProxyTraits* api);
|
| - ~CFProxy();
|
| -
|
| - private:
|
| - virtual void Init(const ProxyParams& params);
|
| - virtual int AddDelegate(ChromeProxyDelegate* p);
|
| - virtual int RemoveDelegate(ChromeProxyDelegate* p);
|
| -
|
| - // Executed in IPC thread.
|
| - void AddDelegateOnIoThread(ChromeProxyDelegate* p);
|
| - void RemoveDelegateOnIoThread(ChromeProxyDelegate* p);
|
| - // Initialization that has to be mede in IPC thread.
|
| - void InitInIoThread(const ProxyParams& params);
|
| - // Cleanup that has to be made in IPC thread.
|
| - void CleanupOnIoThread();
|
| - // IPC connection was not established in timely manner
|
| - void LaunchTimeOut();
|
| - // Close channel, inform delegates.
|
| - void OnPeerLost(ChromeProxyDelegate::DisconnectReason reason);
|
| - // Queues message to be send in IPC thread.
|
| - void SendIpcMessage(IPC::Message* m);
|
| - // Same but in IPC thread.
|
| - void SendIpcMessageOnIoThread(IPC::Message* m);
|
| -
|
| - //////////////////////////////////////////////////////////////////////////
|
| - // Sync messages.
|
| - virtual void Tab_Find(int tab, const string16& search_string,
|
| - FindInPageDirection forward, FindInPageCase match_case, bool find_next);
|
| - virtual void Tab_OverrideEncoding(int tab, const char* encoding);
|
| - virtual void Tab_Navigate(int tab, const GURL& url, const GURL& referrer);
|
| - virtual void CreateTab(ChromeProxyDelegate* delegate,
|
| - const ExternalTabSettings& p);
|
| - virtual void ConnectTab(ChromeProxyDelegate* delegate, HWND hwnd,
|
| - uint64 cookie);
|
| - virtual void BlockTab(uint64 cookie);
|
| - virtual void Tab_RunUnloadHandlers(int tab);
|
| -
|
| - //////////////////////////////////////////////////////////////////////////
|
| - // IPC::Channel::Listener implementation.
|
| - virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
|
| - virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
|
| - virtual void OnChannelError() OVERRIDE;
|
| -
|
| - bool CalledOnIpcThread() const {
|
| - return base::PlatformThread::CurrentId() == ipc_thread_.thread_id();
|
| - }
|
| -
|
| - base::Thread ipc_thread_;
|
| - SyncMsgSender sync_dispatcher_;
|
| - IPC::Message::Sender* ipc_sender_;
|
| - CFProxyTraits* api_;
|
| - int delegate_count_;
|
| - bool is_connected_;
|
| -};
|
| -
|
| -// Support functions.
|
| -std::string GenerateChannelId();
|
| -std::wstring BuildCmdLine(const std::string& channel_id,
|
| - const FilePath& profile_path,
|
| - const std::wstring& extra_args);
|
| -#endif // CHROME_FRAME_CFPROXY_PRIVATE_H_
|
|
|