pipelight incorrectly executes with webkit plugins

Asked by fossfreedom on 2015-01-17

I'm running Rhythmbox 3.1 with my CoverArt Browser plugin.

When the plugin source is activated pipelight starts.

This is most likely because the plugin uses webkit for part of its functionality - somehow pipelight is seeing this as a browser and starting?

I'm seeing the following as an output when I've started Rhythmbox from a commandline

"
No bp log location saved, using default.
[000:000] Cpu: 6.37.5, x4, 2399Mhz, 7657MB
[000:000] Computer model: Not available
[000:000] Browser XEmbed support present: 1
[000:000] Browser toolkit is Gtk2.
[000:003] Using Gtk2 toolkit
[000:034] Warning(optionsfile.cc:30): Load: Could not open file, err=2
[000:034] No bp log location saved, using default.
[000:035] Cpu: 6.37.5, x4, 2399Mhz, 7657MB
[000:035] Computer model: Not available
[000:035] Browser XEmbed support present: 1
[000:035] Browser toolkit is Gtk2.
[000:035] Using Gtk2 toolkit
No bp log location saved, using default.
[000:000] Cpu: 6.37.5, x4, 2399Mhz, 7657MB
[000:000] Computer model: Not available
Unable to open ~/.mtpz-data for reading, MTPZ disabled.[PIPELIGHT:LIN:unknown] attached to process.
[PIPELIGHT:LIN:unknown] checking environment variable PIPELIGHT_SILVERLIGHT5_0_CONFIG.
[PIPELIGHT:LIN:unknown] searching for config file pipelight-silverlight5.0.
[PIPELIGHT:LIN:unknown] trying to load config file from '/home/foss/.config/pipelight-silverlight5.0'.
[PIPELIGHT:LIN:unknown] unrecognized configuration key 'diagnosticmode'.
[PIPELIGHT:LIN:unknown] sandbox not found or not installed!
[PIPELIGHT:LIN:silverlight5.0] using wine prefix directory /home/foss/.wine-pipelight.
[PIPELIGHT:LIN:silverlight5.0] checking plugin installation - this might take some time.
[install-dependency] wine-silverlight5.0-installer is already installed in '/home/foss/.wine-pipelight'.
[install-dependency] wine-mpg2splt-installer is already installed in '/home/foss/.wine-pipelight'.
fixme:winediag:start_process Wine Staging is a testing version containing experimental patches.
fixme:winediag:start_process Please report bugs at http://bugs.wine-staging.com (instead of winehq.org).
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
err:wineboot:ProcessRunKeys Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2)
[PIPELIGHT:WIN:silverlight5.0] embedded mode is on.
[PIPELIGHT:WIN:silverlight5.0] windowless mode is off.
[PIPELIGHT:WIN:silverlight5.0] linux windowless mode is off.
[PIPELIGHT:WIN:silverlight5.0] force SetWindow is off.
[PIPELIGHT:WIN:silverlight5.0] window class hook is on.
[PIPELIGHT:WIN:silverlight5.0] strict draw ordering is off.
[PIPELIGHT:WIN:silverlight5.0] replaced API function CreateWindowExA.
[PIPELIGHT:WIN:silverlight5.0] replaced API function CreateWindowExW.
[PIPELIGHT:WIN:silverlight5.0] replaced API function TrackPopupMenuEx.
[PIPELIGHT:WIN:silverlight5.0] replaced API function TrackPopupMenu.
fixme:advapi:RegisterTraceGuidsW (0x701f07, 0x79f118, {aa087e0e-0b35-4e28-8f3a-440c3f51eef1}, 1, 0x68f678, (null), (null), 0x79f118): stub
[PIPELIGHT:WIN:silverlight5.0] init successful!
[PIPELIGHT:WIN:silverlight5.0] OpenGL Vendor: Intel Open Source Technology Center
[PIPELIGHT:WIN:silverlight5.0] OpenGL Renderer: Mesa DRI Intel(R) Ironlake Mobile x86/MMX/SSE2
[PIPELIGHT:WIN:silverlight5.0] Your GPU is in the whitelist, hardware acceleration should work.
[PIPELIGHT:LIN:silverlight5.0] using thread asynccall event handling.
[011:455] Warning(optionsfile.cc:30): Load: Could not open file, err=2
[011:455] No bp log location saved, using default.
[011:456] Cpu: 6.37.5, x4, 2399Mhz, 7657MB
[011:456] Computer model: Not available

"

Is there any way to force pipelight only to run for designated web-browsers such as firefox but not plugin based webkit?

Question information

Language:
English Edit question
Status:
Solved
For:
Pipelight Edit question
Assignee:
No assignee Edit question
Solved by:
fossfreedom
Solved:
2015-01-17
Last query:
2015-01-17
Last reply:
2015-01-17
Michael Müller (mqchael) said : #1

Hi,

Pipelight is a browser plugin like Flash or Java. Pipelight does not inject itself into any other processes, but the browser decides which plugins it loads. Your plugin uses webkit and webkit loads browser plugins by default. You will need to disable loading of plugins in the webkit engine to prevent this.

You can workaround this by enabling plugins in the following way:

mkdir ~/myplugins
MOZ_PLUGIN_PATH=$HOME/myplugins pipelight-plugin --enable silverlight

You now need to start your first Firefox instance using:

MOZ_PLUGIN_PATH=$HOME/myplugins firefox

This will ensure that the Pipelight plugins are only loaded into this browser, but won't prevent your webkit based plugin to load other browser plugins.

Michael

fossfreedom (fossfreedom) said : #2

Hi Michael,
  thanks for the very quick feedback.

I'm trying your advice to disable webkit loading the pipelight plugin.

This simple python file called web.py:

from gi.repository import WebKit

webkit_settings = WebKit.WebSettings.new()
webkit_settings.props.enable_plugins=False
x = WebKit.WebView(settings=webkit_settings)

python3 web.py

The above is enough to trigger pipelight to load with webkit. Any ideas why enable_plugins=False is not enough to stop webkit loading pipelight?

fossfreedom (fossfreedom) said : #3

Follow up.

looks like a bug in webkit

I've changed to WebKit2 and pipelight no longer loads. The by-product from moving to webkit to webkit2 is that it is much faster.

So win-win :)