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

Unified Diff: chrome_frame/external_tab.cc

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/external_tab.h ('k') | chrome_frame/external_tab_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome_frame/external_tab.cc
diff --git a/chrome_frame/external_tab.cc b/chrome_frame/external_tab.cc
deleted file mode 100644
index 89b3a0615a29eb12647adc8458b2e398f38f31cb..0000000000000000000000000000000000000000
--- a/chrome_frame/external_tab.cc
+++ /dev/null
@@ -1,356 +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.
-
-#include "base/bind.h"
-#include "base/bind_helpers.h"
-#include "base/lazy_instance.h"
-#include "base/location.h"
-#include "chrome_frame/external_tab.h"
-#include "base/synchronization/waitable_event.h"
-#include "chrome/common/automation_messages.h"
-#include "chrome_frame/chrome_frame_delegate.h"
-#include "chrome_frame/utils.h"
-
-namespace {
- static base::LazyInstance<ChromeProxyFactory> g_proxy_factory =
- LAZY_INSTANCE_INITIALIZER;
-
- struct UserDataHolder : public SyncMessageContext {
- explicit UserDataHolder(void* p) : data(p) {}
- void* data;
- };
-}
-
-
-ExternalTabProxy::ExternalTabProxy() : state_(NONE), tab_(0), tab_wnd_(NULL),
- chrome_wnd_(NULL), proxy_factory_(g_proxy_factory.Pointer()), proxy_(NULL),
- ui_delegate_(NULL) {
-}
-
-ExternalTabProxy::~ExternalTabProxy() {
- Destroy();
-}
-
-bool ExternalTabProxy::OnMessageReceived(const IPC::Message& message) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(ExternalTabProxy, message)
- IPC_MESSAGE_HANDLER(AutomationMsg_NavigationStateChanged,
- OnNavigationStateChanged)
- IPC_MESSAGE_HANDLER(AutomationMsg_UpdateTargetUrl, OnUpdateTargetUrl)
- IPC_MESSAGE_HANDLER(AutomationMsg_HandleAccelerator, OnHandleAccelerator)
- IPC_MESSAGE_HANDLER(AutomationMsg_TabbedOut, OnTabbedOut)
- IPC_MESSAGE_HANDLER(AutomationMsg_OpenURL, OnOpenURL)
- IPC_MESSAGE_HANDLER(AutomationMsg_NavigationFailed, OnNavigationFailed)
- IPC_MESSAGE_HANDLER(AutomationMsg_DidNavigate, OnDidNavigate)
- IPC_MESSAGE_HANDLER(AutomationMsg_TabLoaded, OnTabLoaded)
- IPC_MESSAGE_HANDLER(AutomationMsg_MoveWindow, OnMoveWindow)
- IPC_MESSAGE_HANDLER(AutomationMsg_ForwardMessageToExternalHost,
- OnMessageToHost)
- IPC_MESSAGE_HANDLER(AutomationMsg_ForwardContextMenuToExternalHost,
- OnHandleContextMenu)
- IPC_MESSAGE_HANDLER(AutomationMsg_RequestStart, OnNetwork_Start)
- IPC_MESSAGE_HANDLER(AutomationMsg_RequestRead, OnNetwork_Read)
- IPC_MESSAGE_HANDLER(AutomationMsg_RequestEnd, OnNetwork_End)
- IPC_MESSAGE_HANDLER(AutomationMsg_DownloadRequestInHost,
- OnNetwork_DownloadInHost)
- IPC_MESSAGE_HANDLER(AutomationMsg_GetCookiesFromHost, OnGetCookies)
- IPC_MESSAGE_HANDLER(AutomationMsg_SetCookieAsync, OnSetCookie)
- IPC_MESSAGE_HANDLER(AutomationMsg_AttachExternalTab, OnAttachTab)
- IPC_MESSAGE_HANDLER(AutomationMsg_RequestGoToHistoryEntryOffset,
- OnGoToHistoryOffset)
- IPC_MESSAGE_HANDLER(AutomationMsg_CloseExternalTab, OnTabClosed)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
-void ExternalTabProxy::Init() {
- if (m_hWnd == NULL) {
- // Create a window on the UI thread for marshaling messages back and forth
- // from the IPC thread. This window cannot be a message only window as the
- // external chrome tab window initially is created as a child of this window
- CWindowImpl<ExternalTabProxy>::Create(GetDesktopWindow(), NULL, NULL,
- WS_CHILDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, WS_EX_TOOLWINDOW);
- DCHECK(m_hWnd != NULL);
- ui_.SetWindow(m_hWnd, WM_APP + 6);
- }
-}
-
-void ExternalTabProxy::Destroy() {
- DCHECK(NULL == done_.get());
- // TODO(stoyan): Should we release proxy first and then destroy the window
- // (parent of the chrome window) or the other way around?
- if (state_ != NONE) {
- done_.reset(new base::WaitableEvent(true, false));
- proxy_factory_->ReleaseProxy(this, tab_params_.proxy_params.profile);
- done_->Wait();
- done_.reset(NULL);
-
- state_ = NONE;
- proxy_ = NULL;
- tab_ = 0;
- CWindowImpl<ExternalTabProxy>::DestroyWindow();
- tab_wnd_ = NULL;
- chrome_wnd_ = NULL;
- // We shall tell the TaskMarshaller to delete queued tasks.
- // ui_.DeleteAll();
- }
-}
-
-void ExternalTabProxy::CreateTab(const CreateTabParams& create_params,
- UIDelegate* delegate) {
- DCHECK(ui_delegate_ == NULL);
- DCHECK_EQ(NONE, state_);
- // Create host window if needed.
- Init();
- ui_delegate_ = delegate;
- // TODO(stoyan): Shall we check the CanNavigate(create_params.url)?
- tab_params_ = create_params;
- state_ = INIT_IN_PROGRESS;
- proxy_factory_->GetProxy(this, create_params.proxy_params);
-}
-
-void ExternalTabProxy::Connected(ChromeProxy* proxy) {
- // in ipc thread
- ui_.PostTask(FROM_HERE, base::Bind(&ExternalTabProxy::UiConnected,
- base::Unretained(this), proxy));
-}
-
-void ExternalTabProxy::UiConnected(ChromeProxy* proxy) {
- proxy_ = proxy;
- ExternalTabSettings settings;
- settings.parent = m_hWnd;
- settings.style = WS_CHILD;
- settings.is_incognito = tab_params_.is_incognito;
- // TODO(stoyan): FIX this.
- settings.load_requests_via_automation = true;
- // TODO(stoyan): FIX this.
- settings.handle_top_level_requests = true;
- settings.initial_url = tab_params_.url;
- settings.referrer = tab_params_.referrer;
- // Infobars are disabled in widget mode.
- settings.infobars_enabled = !tab_params_.is_widget_mode;
- // TODO(stoyan): FIX this.
- settings.route_all_top_level_navigations = false;
-
- state_ = CREATE_TAB_IN_PROGRESS;
- proxy->CreateTab(this, settings);
-}
-
-void ExternalTabProxy::Disconnected() {
- // in ipc thread
- DCHECK(done_.get() != NULL);
- done_->Signal();
-}
-
-void ExternalTabProxy::PeerLost(ChromeProxy* proxy, DisconnectReason reason) {
- ui_.PostTask(FROM_HERE, base::Bind(&ExternalTabProxy::UiPeerLost,
- base::Unretained(this), proxy, reason));
-}
-
-void ExternalTabProxy::UiPeerLost(ChromeProxy* proxy, DisconnectReason reason) {
- // TODO(stoyan):
-}
-
-void ExternalTabProxy::Navigate(const std::string& url,
- const std::string& referrer,
- NavigationConstraints* navigation_constraints) {
- // in ui thread
- // Catch invalid URLs early. Can we allow this navigation to happen?
- GURL parsed_url(url);
- if (!CanNavigate(parsed_url, navigation_constraints)) {
- DLOG(ERROR) << __FUNCTION__ << " Not allowing navigation to: " << url;
- return;
- }
-
- GURL parsed_referrer(referrer);
- // If we are still establishing channel, simply replace the params
- if (state_ == INIT_IN_PROGRESS) {
- tab_params_.url = parsed_url;
- tab_params_.referrer = parsed_referrer;
- }
-
- // Ah! Too late. Wait to get tab handle and then navigate.
- if (state_ == CREATE_TAB_IN_PROGRESS) {
- pending_navigation_.Set(parsed_url, parsed_referrer);
- }
-
- if (state_ == READY) {
- proxy_->Tab_Navigate(tab_, parsed_url, parsed_referrer);
- }
-}
-
-void ExternalTabProxy::ConnectToExternalTab(uint64 external_tab_cookie) {
- proxy_->ConnectTab(this, m_hWnd, external_tab_cookie);
-}
-
-void ExternalTabProxy::BlockExternalTab(uint64 cookie) {
- proxy_->BlockTab(cookie);
-}
-
-void ExternalTabProxy::SetZoomLevel(content::PageZoom zoom_level) {
- proxy_->Tab_Zoom(tab_, zoom_level);
-}
-
-void ExternalTabProxy::NavigateToIndex(int index) {
- CHECK(0);
-}
-
-void ExternalTabProxy::ForwardMessageFromExternalHost(
- const std::string& message, const std::string& origin,
- const std::string& target) {
- proxy_->Tab_PostMessage(tab_, message, origin, target);
-}
-
-void ExternalTabProxy::ChromeFrameHostMoved() {
- proxy_->Tab_OnHostMoved(tab_);
-}
-
-//////////////////////////////////////////////////////////////////////////
-void ExternalTabProxy::UiCompleted_CreateTab(bool success, HWND chrome_window,
- HWND tab_window, int tab_handle,
- int session_id) {
- if (success) {
- state_ = READY;
- tab_ = tab_handle;
- tab_wnd_ = tab_window;
- chrome_wnd_ = chrome_window;
-
- // If a navigation request came while tab creation was in progress -
- // go ahead and navigate.
- if (pending_navigation_.url.is_valid())
- proxy_->Tab_Navigate(tab_, pending_navigation_.url,
- pending_navigation_.referrer);
- }
-}
-
-void ExternalTabProxy::Completed_CreateTab(bool success, HWND chrome_wnd,
- HWND tab_window, int tab_handle,
- int session_id) {
- // in ipc_thread.
- ui_.PostTask(
- FROM_HERE, base::Bind(&ExternalTabProxy::UiCompleted_CreateTab,
- base::Unretained(this), success, chrome_wnd,
- tab_window, tab_handle, session_id));
-}
-
-void ExternalTabProxy::Completed_ConnectToTab(
- bool success, HWND chrome_window, HWND tab_window, int tab_handle,
- int session_id) {
- CHECK(0);
-}
-
-void ExternalTabProxy::Completed_Navigate(
- bool success, enum AutomationMsg_NavigationResponseValues res) {
- // ipc_thread;
- CHECK(0);
-}
-
-void ExternalTabProxy::OnNavigationStateChanged(
- int flags, const NavigationInfo& nav_info) {
- ui_.PostTask(FROM_HERE,
- base::Bind(&UIDelegate::OnNavigationStateChanged,
- base::Unretained(ui_delegate_), flags, nav_info));
-}
-
-void ExternalTabProxy::OnUpdateTargetUrl(const std::wstring& url) {
- ui_.PostTask(FROM_HERE, base::Bind(&UIDelegate::OnUpdateTargetUrl,
- base::Unretained(ui_delegate_), url));
-}
-
-void ExternalTabProxy::OnTabLoaded(const GURL& url) {
- ui_.PostTask(FROM_HERE, base::Bind(&UIDelegate::OnLoad,
- base::Unretained(ui_delegate_), url));
-}
-
-void ExternalTabProxy::OnMoveWindow(const gfx::Rect& pos) {
- ui_.PostTask(FROM_HERE, base::Bind(&UIDelegate::OnMoveWindow,
- base::Unretained(ui_delegate_), pos));
-}
-
-void ExternalTabProxy::OnMessageToHost(const std::string& message,
- const std::string& origin,
- const std::string& target) {
- ui_.PostTask(
- FROM_HERE,
- base::Bind(&UIDelegate::OnMessageFromChromeFrame,
- base::Unretained(ui_delegate_), message, origin, target));
-}
-
-void ExternalTabProxy::OnHandleAccelerator(const MSG& accel_message) {
- ui_.PostTask(FROM_HERE,
- base::Bind(&UIDelegate::OnHandleAccelerator,
- base::Unretained(ui_delegate_), accel_message));
-}
-
-void ExternalTabProxy::OnHandleContextMenu(
- const ContextMenuModel& context_menu_model,
- int align_flags,
- const MiniContextMenuParams& params) {
- ui_.PostTask(FROM_HERE,
- base::Bind(&UIDelegate::OnHandleContextMenu,
- base::Unretained(ui_delegate_), context_menu_model,
- align_flags, params));
-}
-
-void ExternalTabProxy::OnTabbedOut(bool reverse) {
- ui_.PostTask(FROM_HERE, base::Bind(&UIDelegate::OnTabbedOut,
- base::Unretained(ui_delegate_), reverse));
-}
-
-void ExternalTabProxy::OnGoToHistoryOffset(int offset) {
- ui_.PostTask(FROM_HERE, base::Bind(&UIDelegate::OnGoToHistoryOffset,
- base::Unretained(ui_delegate_), offset));
-}
-
-void ExternalTabProxy::OnOpenURL(const GURL& url_to_open, const GURL& referrer,
- int open_disposition) {
- ui_.PostTask(
- FROM_HERE,
- base::Bind(&UIDelegate::OnOpenURL, base::Unretained(ui_delegate_),
- url_to_open, referrer, open_disposition));
-}
-
-void ExternalTabProxy::OnNavigationFailed(int error_code, const GURL& gurl) {
- // TODO(stoyan):
-}
-
-void ExternalTabProxy::OnDidNavigate(const NavigationInfo& navigation_info) {
- // TODO(stoyan):
-}
-
-void ExternalTabProxy::OnNetwork_Start(
- int request_id, const AutomationURLRequest& request_info) {
- // TODO(stoyan): url_fetcher_.Start();
-}
-
-void ExternalTabProxy::OnNetwork_Read(int request_id, int bytes_to_read) {
- // TODO(stoyan): url_fetcher_.Read();
-}
-
-void ExternalTabProxy::OnNetwork_End(int request_id,
- const net::URLRequestStatus& s) {
- // TODO(stoyan):
-}
-
-void ExternalTabProxy::OnNetwork_DownloadInHost(int request_id) {
- // TODO(stoyan):
-}
-
-void ExternalTabProxy::OnGetCookies(const GURL& url, int cookie_id) {
- // TODO(stoyan):
-}
-
-void ExternalTabProxy::OnSetCookie(const GURL& url, const std::string& cookie) {
- // TODO(stoyan):
-}
-
-void ExternalTabProxy::OnTabClosed() {
- // TODO(stoyan):
-}
-
-void ExternalTabProxy::OnAttachTab(
- const AttachExternalTabParams& attach_params) {
- // TODO(stoyan):
-}
« no previous file with comments | « chrome_frame/external_tab.h ('k') | chrome_frame/external_tab_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698