summaryrefslogtreecommitdiffstats
path: root/chrome_frame/custom_sync_call_context.h
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-19 01:31:31 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-19 01:31:31 +0000
commita5205b632e1c520ab58109ca36a1d4fdaa520478 (patch)
treeea91a2e932adee4dd28631e1d64e0184c3692a91 /chrome_frame/custom_sync_call_context.h
parentb09ee61ce290342d4aaff122a170e775dbc9d770 (diff)
downloadchromium_src-a5205b632e1c520ab58109ca36a1d4fdaa520478.zip
chromium_src-a5205b632e1c520ab58109ca36a1d4fdaa520478.tar.gz
chromium_src-a5205b632e1c520ab58109ca36a1d4fdaa520478.tar.bz2
Fix the ChromeFrame new window popup test by ensuring that CreateExternalTabComplete executes on the IPC thread as before
and InitializeComplete executes as a task on the UI thread. The test failed because we receive IPCs for the new tab before we have a tab proxy for it. To fix the crash in bug http://code.google.com/p/chromium/issues/detail?id=44245, we set the automation_server_ member to NULL after ReleaseAutomationServer returns. There are a number of races related to the automation server being released which should hopefully go away if we remove dependency on the AutomationProxy object. Added a TODO to that effect in the code. Bug=44245 Review URL: http://codereview.chromium.org/2079012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47612 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/custom_sync_call_context.h')
-rw-r--r--chrome_frame/custom_sync_call_context.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/chrome_frame/custom_sync_call_context.h b/chrome_frame/custom_sync_call_context.h
index fcb786a..c9242d6 100644
--- a/chrome_frame/custom_sync_call_context.h
+++ b/chrome_frame/custom_sync_call_context.h
@@ -90,10 +90,12 @@ class CreateExternalTabContext
}
void Completed(HWND chrome_window, HWND tab_window, int tab_handle) {
+ client_->CreateExternalTabComplete(chrome_window, tab_window, tab_handle);
client_->PostTask(FROM_HERE,
- NewRunnableMethod(client_.get(),
- &ChromeFrameAutomationClient::CreateExternalTabComplete,
- chrome_window, tab_window, tab_handle));
+ NewRunnableMethod(
+ client_.get(),
+ &ChromeFrameAutomationClient::InitializeComplete,
+ AUTOMATION_SUCCESS));
}
private: