Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7220)

Unified Diff: chrome_frame/external_tab.h

Issue 9838102: Remove ChromeProxy and friends. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome_frame/chrome_frame.gyp ('k') | chrome_frame/external_tab.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « chrome_frame/chrome_frame.gyp ('k') | chrome_frame/external_tab.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698