Electrolysis/plugins: Difference between revisions

 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Plugins and e10s meeting notes =
= Plugins and e10s =
== Preferences related to plugins and process timeouts ==
=== Platform Prefs ===


{{bug|0669200}}: Support windowed plugin instances for multiple content processes
{| class="wikitable"
|-
! Preference !! Default !! Description
|-
| dom.ipc.plugins.timeoutSecs || 45 || How long a chrome to plugin synchronous IPC message is allowed to process before we consider it "hung".
|-
| dom.ipc.plugins.contentTimeoutSecs || 10 || How long a content to plugin synchronous IPC message is allowed to process before we notify the chrome process of a plugin hang.
|-
| dom.ipc.plugins.processLaunchTimeoutSecs || 45 || How long a plugin launch is allowed to take before we consider it failed.
|-
| dom.ipc.plugins.parentTimeoutSecs || -1 || How long a plugin process will wait for a response from the parent to a synchronous request before terminating itself. After this point the child assumes the parent is hung. Currently disabled.
|}


== mac update ==
=== Windows specific ===


Main bug that fixes things is bug {{bug|1092630}}. Second bug with some earlier work is {{bug|1044182}}.
{| class="wikitable"
|-
! Preference !! Default !! Description
|-
| dom.ipc.plugins.hangUITimeoutSecs || 11 || How long a chrome to plugin synchronous IPC message is allowed to process before we display the plugin hang dialog.
|-
| dom.ipc.plugins.hangUIMinDisplaySecs || 10 || Minimum time that the plugin hang UI will be displayed.
|-
| dom.ipc.plugins.flash.disable-protected-mode || false || We set this if we detect multiple chrome hangs during a session. We do not set it back. Active in both non-e10s and e10s.
|}


Work is happening here:
=== Firefox Specific ===


https://github.com/bdaehlie/gecko-dev/tree/macplugins-e10s-5
{| class="wikitable"
|-
! Preference !! Default !! Description
|-
| dom.ipc.reportProcessHangs || false in debug builds, true otherwise || Enable or disable the ipc ProcessHangMonitor.
|}


Only remaining issues before landing are test failures:
No timeouts are set for DEBUG builds, see all.js and firefox.js.
 
* TEST-UNEXPECTED-FAIL | /tests/layout/generic/test/test_plugin_mouse_coords.html | p1 mouse move Y - got 18, expected 38
* TEST-UNEXPECTED-FAIL | /tests/layout/generic/test/test_plugin_mouse_coords.html | p2 mouse move Y - got 18, expected 38
* TEST-UNEXPECTED-FAIL | /tests/layout/generic/test/test_plugin_mouse_coords.html | p3 mouse move Y - got 11, expected 31
 
and  
 
* TEST-UNEXPECTED-FAIL | /tests/dom/plugins/test/mochitest/test_cocoa_focus.html | Plugin should not have focus. - got true, expected false
* TEST-UNEXPECTED-FAIL | /tests/dom/plugins/test/mochitest/test_cocoa_focus.html | Focus event count should be 4 - got 3, expected 4
* TEST-UNEXPECTED-FAIL | /tests/dom/plugins/test/mochitest/test_cocoa_window_focus.html | Plugin does not know its initial top-level window activation state! - expected PASS
* TEST-UNEXPECTED-FAIL | /tests/dom/plugins/test/mochitest/test_cocoa_window_focus.html | uncaught exception - Error: Error calling method on NPObject! at http://mochi.test:8888/tests/dom/plugins/test/mochitest/cocoa_window_focus.html:68


== typical messaging deadlocks ==
== typical messaging deadlocks ==
Line 66: Line 82:
chrome -> sync ipc -> content -> sync ipc -> plugin | sync ipc -> chrome
chrome -> sync ipc -> content -> sync ipc -> plugin | sync ipc -> chrome
</pre>
</pre>
* can't happen ({{bug|1093693}})
* {{bug|1093693}}


<pre>
<pre>
Line 73: Line 89:
* happens while chrome is dispatching messages, or in a sync/rpc ipc call.
* happens while chrome is dispatching messages, or in a sync/rpc ipc call.
* we have assertion mechanisms to warn about this in non-e10s.
* we have assertion mechanisms to warn about this in non-e10s.
* {{bug|1098057}}
<pre>
<pre>
chrome -> sync ipc -> content -> sync ipc -> plugin -> sync sendmessage -> chrome
chrome -> sync ipc -> content -> sync ipc -> plugin -> sync sendmessage -> chrome
Line 135: Line 152:
* {{bug|1095761}}: Fixup Windows focus routing in the PluginInstances for e10s
* {{bug|1095761}}: Fixup Windows focus routing in the PluginInstances for e10s
* {{bug|1095776}}: Deal with spurious WM_PAINT messages on plugin parent windows
* {{bug|1095776}}: Deal with spurious WM_PAINT messages on plugin parent windows
* {{bug|1098055}}: Sync SendMessage calls from plugin may deadlock in the new plugin model
* {{bug|1098057}}: Sync SendMessage calls from chrome may deadlock in the new plugin model
* {{bug|1096664}}: Plugin hang detector is currently disabled with e10s
* {{bug|1096080}}: ProcessFirstMinidump processing appears broken
Confirmed users
1,982

edits