| Index: chrome_frame/external_tab.h
|
| diff --git a/chrome_frame/external_tab.h b/chrome_frame/external_tab.h
|
| deleted file mode 100644
|
| index 293258186856cd0e8cbf2ae412af2372ffc85d1f..0000000000000000000000000000000000000000
|
| --- a/chrome_frame/external_tab.h
|
| +++ /dev/null
|
| @@ -1,229 +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_EXTERNAL_TAB_H_
|
| -#define CHROME_FRAME_EXTERNAL_TAB_H_
|
| -#pragma once
|
| -
|
| -#include <windows.h>
|
| -#include <atlbase.h>
|
| -#include <atlwin.h>
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/time.h"
|
| -#include "base/win/scoped_comptr.h"
|
| -#include "chrome/common/automation_constants.h"
|
| -#include "chrome_frame/cfproxy.h"
|
| -#include "chrome_frame/task_marshaller.h"
|
| -#include "content/public/common/page_zoom.h"
|
| -#include "googleurl/src/gurl.h"
|
| -
|
| -struct AttachExternalTabParams;
|
| -struct AutomationURLRequest;
|
| -struct ContextMenuModel;
|
| -struct MiniContextMenuParams;
|
| -struct NavigationInfo;
|
| -class Task;
|
| -
|
| -namespace base {
|
| -class WaitableEvent;
|
| -}
|
| -
|
| -namespace gfx {
|
| -class Rect;
|
| -}
|
| -
|
| -namespace net {
|
| -class URLRequestStatus;
|
| -}
|
| -
|
| -// This is the delegate/callback interface that has to be implemented
|
| -// by the customers of ExternalTabProxy class.
|
| -class UIDelegate {
|
| - public:
|
| - virtual void OnNavigationStateChanged(
|
| - int flags, const NavigationInfo& nav_info) = 0;
|
| - virtual void OnUpdateTargetUrl(const std::wstring& new_target_url) = 0;
|
| - virtual void OnLoad(const GURL& url) = 0;
|
| - virtual void OnMoveWindow(const gfx::Rect& pos) = 0;
|
| -
|
| - virtual void OnMessageFromChromeFrame(
|
| - const std::string& message, const std::string& origin,
|
| - const std::string& target) = 0;
|
| - virtual void OnHandleContextMenu(
|
| - const ContextMenuModel& context_menu_model, int align_flags,
|
| - const MiniContextMenuParams& params) = 0;
|
| - virtual void OnHandleAccelerator(const MSG& accel_message) = 0;
|
| - virtual void OnTabbedOut(bool reverse) = 0;
|
| - virtual void OnGoToHistoryOffset(int offset) = 0;
|
| - virtual void OnOpenURL(
|
| - const GURL& url_to_open, const GURL& referrer, int open_disposition) = 0;
|
| - protected:
|
| - ~UIDelegate() {}
|
| -};
|
| -
|
| -struct CreateTabParams {
|
| - struct ProxyParams proxy_params;
|
| - bool is_incognito;
|
| - bool is_widget_mode;
|
| - GURL url;
|
| - GURL referrer;
|
| -};
|
| -
|
| -class NavigationConstraints;
|
| -
|
| -/////////////////////////////////////////////////////////////////////////
|
| -// ExternalTabProxy is a mediator between ChromeProxy (which runs mostly in the
|
| -// background IPC-channel thread) and the UI object (ActiveX, ActiveDocument).
|
| -// The lifetime of ExternalTabProxy is determined by the UI object.
|
| -//
|
| -// When ExternalTabProxy dies:
|
| -// 1. Remove itself as a ChromeProxyDelegate. This blocks until _Disconnected()
|
| -// is received.
|
| -// 2. Kills all posted tasks to the UI thread.
|
| -// 3. Stop all network requests
|
| -// => It does not have to (and should not) be a refcount-ed object.
|
| -
|
| -// Non-public inheritance is not allowed by the style-guide.
|
| -class ExternalTabProxy : public CWindowImpl<ExternalTabProxy>,
|
| - public ChromeProxyDelegate {
|
| - public:
|
| - ExternalTabProxy();
|
| - ~ExternalTabProxy();
|
| -
|
| -#ifdef UNIT_TEST
|
| - void set_proxy_factory(ChromeProxyFactory* factory) {
|
| - proxy_factory_ = factory;
|
| - }
|
| -#endif
|
| -
|
| - // IPC::Channel::Listener implementation.
|
| - bool OnMessageReceived(const IPC::Message& message);
|
| -
|
| - //
|
| - virtual void CreateTab(const CreateTabParams& create_params,
|
| - UIDelegate* delegate);
|
| - virtual void Navigate(const std::string& url, const std::string& referrer,
|
| - NavigationConstraints* navigation_constraints);
|
| - virtual void NavigateToIndex(int index);
|
| - virtual void ForwardMessageFromExternalHost(const std::string& message,
|
| - const std::string& origin, const std::string& target);
|
| - virtual void ChromeFrameHostMoved();
|
| -
|
| - // Attaches an existing external tab to this automation client instance.
|
| - virtual void ConnectToExternalTab(uint64 external_tab_cookie);
|
| - virtual void BlockExternalTab(uint64 cookie);
|
| -
|
| - void SetZoomLevel(content::PageZoom zoom_level);
|
| -
|
| - private:
|
| - BEGIN_MSG_MAP(ExternalTabProxy)
|
| - CHAIN_MSG_MAP_MEMBER(ui_);
|
| - END_MSG_MAP()
|
| -
|
| - //////////////////////////////////////////////////////////////////////////
|
| - // ChromeProxyDelegate implementation
|
| - virtual int tab_handle() {
|
| - return tab_;
|
| - }
|
| - virtual void Connected(ChromeProxy* proxy);
|
| - virtual void PeerLost(ChromeProxy* proxy, DisconnectReason reason);
|
| - virtual void Disconnected();
|
| -
|
| - // Sync message responses.
|
| - virtual void Completed_CreateTab(bool success, HWND chrome_wnd,
|
| - HWND tab_window, int tab_handle, int session_id);
|
| - virtual void Completed_ConnectToTab(bool success, HWND chrome_window,
|
| - HWND tab_window, int tab_handle, int session_id);
|
| - virtual void Completed_Navigate(bool success,
|
| - enum AutomationMsg_NavigationResponseValues res);
|
| -
|
| - // Network requests from Chrome.
|
| - virtual void OnNetwork_Start(
|
| - int request_id, const AutomationURLRequest& request_info);
|
| - virtual void OnNetwork_Read(int request_id, int bytes_to_read);
|
| - virtual void OnNetwork_End(int request_id, const net::URLRequestStatus& s);
|
| - virtual void OnNetwork_DownloadInHost(int request_id);
|
| - virtual void OnGetCookies(const GURL& url, int cookie_id);
|
| - virtual void OnSetCookie(const GURL& url, const std::string& cookie);
|
| -
|
| - // Navigation progress notifications.
|
| - virtual void OnNavigationStateChanged(
|
| - int flags, const NavigationInfo& nav_info);
|
| - virtual void OnUpdateTargetUrl(const std::wstring& url);
|
| - virtual void OnNavigationFailed(int error_code, const GURL& gurl);
|
| - virtual void OnDidNavigate(const NavigationInfo& navigation_info);
|
| - virtual void OnTabLoaded(const GURL& url);
|
| - virtual void OnMoveWindow(const gfx::Rect& pos);
|
| -
|
| - virtual void OnOpenURL(const GURL& url_to_open, const GURL& referrer,
|
| - int open_disposition);
|
| - virtual void OnGoToHistoryOffset(int offset);
|
| - virtual void OnMessageToHost(
|
| - const std::string& message, const std::string& origin,
|
| - const std::string& target);
|
| -
|
| - // Misc. UI.
|
| - virtual void OnHandleAccelerator(const MSG& accel_message);
|
| - virtual void OnHandleContextMenu(const ContextMenuModel& context_menu_model,
|
| - int align_flags,
|
| - const MiniContextMenuParams& params);
|
| - virtual void OnTabbedOut(bool reverse);
|
| -
|
| - // Other
|
| - virtual void OnTabClosed();
|
| - virtual void OnAttachTab(const AttachExternalTabParams& attach_params);
|
| -
|
| - // end of ChromeProxyDelegate methods
|
| - //////////////////////////////////////////////////////////////////////////
|
| - void Init();
|
| - void Destroy();
|
| -
|
| - // The UiXXXX are the ChromeProxyDelegate methods but on UI thread.
|
| - void UiConnected(ChromeProxy* proxy);
|
| - void UiPeerLost(ChromeProxy* proxy, DisconnectReason reason);
|
| - void UiCompleted_CreateTab(bool success, HWND chrome_window,
|
| - HWND tab_window, int tab_handle, int session_id);
|
| -
|
| - // With the present state of affairs the only response we can possibly handle
|
| - // in the background IPC thread is Completed_CreateTab() where we can
|
| - // initiate a navigation (if there is a pending one).
|
| - // To simplify - will handle Completed_CreateTab in UI thread and avoid
|
| - // the need of lock when accessing members.
|
| - enum {
|
| - NONE,
|
| - INIT_IN_PROGRESS,
|
| - CREATE_TAB_IN_PROGRESS,
|
| - READY,
|
| - RELEASE_CF_PROXY_IN_PROGRESS
|
| - } state_;
|
| - int tab_;
|
| - HWND tab_wnd_;
|
| - HWND chrome_wnd_;
|
| - ChromeProxyFactory* proxy_factory_;
|
| - // Accessed only in the UI thread for simplicity.
|
| - ChromeProxy* proxy_;
|
| - // Accessed from ipc thread as well. It's safe if the object goes away
|
| - // because this should be preceded by destruction of the window and
|
| - // therefore all queued tasks should be destroyed.
|
| - UIDelegate* ui_delegate_;
|
| - TaskMarshallerThroughMessageQueue ui_;
|
| -
|
| - scoped_ptr<base::WaitableEvent> done_;
|
| -
|
| - CreateTabParams tab_params_;
|
| - struct PendingNavigation {
|
| - GURL url;
|
| - GURL referrer;
|
| - void Set(const GURL& gurl, const GURL& ref) {
|
| - url = gurl;
|
| - referrer = ref;
|
| - }
|
| - } pending_navigation_;
|
| -};
|
| -
|
| -#endif // CHROME_FRAME_EXTERNAL_TAB_H_
|
|
|