// 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 "chrome_frame/custom_sync_call_context.h" #include "base/bind.h" CreateExternalTabContext::CreateExternalTabContext( ChromeFrameAutomationClient* client) : client_(client) { } void CreateExternalTabContext::Completed( HWND chrome_window, HWND tab_window, int tab_handle, int session_id) { AutomationLaunchResult launch_result = client_->CreateExternalTabComplete(chrome_window, tab_window, tab_handle, session_id); client_->PostTask( FROM_HERE, base::Bind(&ChromeFrameAutomationClient::InitializeComplete, client_.get(), launch_result)); } BeginNavigateContext::BeginNavigateContext(ChromeFrameAutomationClient* client) : client_(client) { } void BeginNavigateContext::Completed( AutomationMsg_NavigationResponseValues response) { client_->BeginNavigateCompleted(response); } UnloadContext::UnloadContext( base::WaitableEvent* unload_done, bool* should_unload) : should_unload_(should_unload), unload_done_(unload_done) { } void UnloadContext::Completed(bool should_unload) { *should_unload_ = should_unload; unload_done_->Signal(); should_unload_ = NULL; unload_done_ = NULL; // This object will be destroyed after this. Cannot access any members // on returning from this function. }