diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-20 21:11:25 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-20 21:11:25 +0000 |
commit | 7db5d174005149773ff076266eb28dfe7d9065c3 (patch) | |
tree | 3c452060749a1c704605dcfa7bb134f4b1ac53fb /chrome_frame/chrome_frame_activex_base.h | |
parent | 218a5706e87a31d71dd8431b8af317e4f50193e2 (diff) | |
download | chromium_src-7db5d174005149773ff076266eb28dfe7d9065c3.zip chromium_src-7db5d174005149773ff076266eb28dfe7d9065c3.tar.gz chromium_src-7db5d174005149773ff076266eb28dfe7d9065c3.tar.bz2 |
Fix a ChromeFrame crash caused when the cookie policy is set to prompt and the active document is released before the prompt is clicked
on. This only happens on IE6 where the prompt dialog is modeless in the context of the InternetSetCookieEx call.
To ensure that the active document remains valid for the duration of the call we maintain a reference on the container for the duration of
the InternetSetCookie call.
The cookie calls in IE are now handled on the UI thread as we cannot block the IPC thread in case the set cookie calls result in a prompt.
This fixes bug http://code.google.com/p/chromium/issues/detail?id=44465
The FullTabModeIE_UnloadEventTest has been disabled as the change to execute the cookie calls on the UI thread would break it.
Bug=44465, 40814
Review URL: http://codereview.chromium.org/2091015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47846 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/chrome_frame_activex_base.h')
-rw-r--r-- | chrome_frame/chrome_frame_activex_base.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/chrome_frame/chrome_frame_activex_base.h b/chrome_frame/chrome_frame_activex_base.h index 9aa1cc3..2b74293 100644 --- a/chrome_frame/chrome_frame_activex_base.h +++ b/chrome_frame/chrome_frame_activex_base.h @@ -260,6 +260,7 @@ END_MSG_MAP() IE_8, IE_8 + 1); } + url_fetcher_.set_container(static_cast<IDispatch*>(this)); return S_OK; } |