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

Issue 119052: Fix browser hang due to plugin deadlock... (Closed)

Created:
11 years, 6 months ago by amit
Modified:
9 years ago
Reviewers:
ananta, jam
CC:
chromium-reviews_googlegroups.com
Visibility:
Public.

Description

Fix browser hang due to plugin deadlock This involves two plugin instances with second instance making sync calls to the renderer while the first one is still servicing an incoming sync request. Our logic to unblock the renderer during the sync call fails since the 'in_dispatch_' counter is maintained per plugin channel (each plugin instance uses its own separate channel). Making 'in_dispatch_' counter static member of PluginChannelBase fixes this deadlock. Added a new NPAPI UI test for this scenario. BUG=12624 TEST=MultipleInstancesSyncCalls Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=17492

Patch Set 1 #

Patch Set 2 : '' #

Patch Set 3 : '' #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+110 lines, -30 lines) Patch
M chrome/plugin/plugin_channel_base.h View 1 chunk +1 line, -1 line 0 comments Download
M chrome/plugin/plugin_channel_base.cc View 1 1 chunk +2 lines, -1 line 0 comments Download
A chrome/test/data/npapi/multiple_instances_sync_calls.html View 1 2 1 chunk +38 lines, -0 lines 0 comments Download
M chrome/test/ui/npapi_uitest.cc View 1 2 1 chunk +13 lines, -0 lines 0 comments Download
M webkit/glue/plugins/test/plugin_client.cc View 1 chunk +2 lines, -1 line 0 comments Download
M webkit/glue/plugins/test/plugin_windowless_test.h View 1 chunk +6 lines, -0 lines 0 comments Download
M webkit/glue/plugins/test/plugin_windowless_test.cc View 3 chunks +48 lines, -27 lines 1 comment Download

Messages

Total messages: 3 (0 generated)
amit
11 years, 6 months ago (2009-06-02 18:28:32 UTC) #1
ananta
LGTM http://codereview.chromium.org/119052/diff/32/34 File webkit/glue/plugins/test/plugin_windowless_test.cc (right): http://codereview.chromium.org/119052/diff/32/34#newcode67 Line 67: "parent.document.getElementById('frame').outerHTML = ''", NULL); You may want ...
11 years, 6 months ago (2009-06-03 17:08:36 UTC) #2
jam
11 years, 6 months ago (2009-06-04 06:35:27 UTC) #3
The real problem is that there is more than one channel between a plugin and
renderer process.  This is a regression from some earlier changes that I made.

Powered by Google App Engine
This is Rietveld 408576698