Index: chrome_frame/custom_sync_call_context.cc |
diff --git a/chrome_frame/custom_sync_call_context.cc b/chrome_frame/custom_sync_call_context.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9544b4b2d8c38dec72334e8cfe4dc1625267334e |
--- /dev/null |
+++ b/chrome_frame/custom_sync_call_context.cc |
@@ -0,0 +1,46 @@ |
+// 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. |
+} |