diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-19 01:31:31 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-19 01:31:31 +0000 |
commit | a5205b632e1c520ab58109ca36a1d4fdaa520478 (patch) | |
tree | ea91a2e932adee4dd28631e1d64e0184c3692a91 /chrome_frame/custom_sync_call_context.h | |
parent | b09ee61ce290342d4aaff122a170e775dbc9d770 (diff) | |
download | chromium_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.h | 8 |
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: |