Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(173)

Issue 3014001: ChromeFrame tabs would hang at times while closing. This would randomly occur... (Closed)

Created:
10 years, 5 months ago by ananta
Modified:
9 years, 6 months ago
Reviewers:
amit
CC:
chromium-reviews, amit, Paweł Hajdan Jr., ben+cc_chromium.org
Visibility:
Public.

Description

ChromeFrame tabs would hang at times while closing. This would randomly occur if the page had an unload handler. We execute unload handlers in the WM_DESTROY message in the external tab and spin a nested loop waiting for the unload handlers to finish. This causes a deadlock at times if a windows message is dispatched to IE which is blocked in DestroyWindow. The fix is to remove the nested loop mess from the external tab and instead send over a special automation message to Chrome in which context we execute the unload handlers. The message contains the notification window and the actual window message to be posted back when the unload handlers finish executing. The active document/activex spin a GetMessage loop waiting for this message to arrive. To ensure that we don't wait indefinitely we have a 1 second timer and exit the loop if this timer is received. Fixes bug http://code.google.com/p/chromium/issues/detail?id=49132 Bug=49132 Test=Covered by existing unload event test. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=52523

Patch Set 1 #

Patch Set 2 : '' #

Patch Set 3 : '' #

Patch Set 4 : '' #

Patch Set 5 : '' #

Patch Set 6 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+131 lines, -40 lines) Patch
M chrome/browser/automation/automation_provider.h View 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/browser/automation/automation_provider.cc View 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/automation/automation_provider_win.cc View 1 chunk +10 lines, -0 lines 0 comments Download
M chrome/browser/automation/chrome_frame_automation_provider.cc View 1 chunk +2 lines, -1 line 0 comments Download
M chrome/browser/external_tab_container_win.h View 3 chunks +6 lines, -5 lines 0 comments Download
M chrome/browser/external_tab_container_win.cc View 1 2 3 5 chunks +22 lines, -32 lines 0 comments Download
M chrome/test/automation/automation_messages_internal.h View 1 chunk +11 lines, -0 lines 0 comments Download
M chrome_frame/chrome_frame_activex_base.h View 1 2 3 4 1 chunk +37 lines, -0 lines 0 comments Download
M chrome_frame/chrome_frame_automation.h View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M chrome_frame/chrome_frame_automation.cc View 1 chunk +7 lines, -0 lines 0 comments Download
M chrome_frame/test/data/fulltab_before_unload_event_main.html View 1 chunk +0 lines, -1 line 0 comments Download
M chrome_frame/test/data/fulltab_before_unload_event_test.html View 1 chunk +0 lines, -1 line 0 comments Download
M chrome_frame/test/navigation_test.cc View 1 chunk +28 lines, -0 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
ananta
10 years, 5 months ago (2010-07-15 01:37:40 UTC) #1
amit
10 years, 5 months ago (2010-07-15 14:03:05 UTC) #2
lgtm

Powered by Google App Engine
This is Rietveld 408576698