-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow specifying which shared object to load as WPE backend #17
Comments
Perhaps an idea is installing all backend libraries on a specific custom directory (like GStreamer does with plugins).. say something like Then the wpebackend library can have two new API calls:
If no backend is specified (via the api call of 2.) it simply loads the first backend available on the default directory or returns a fatal error if not backend is available. WDYT? |
As a bonus point this would allow backend implementations to install multiple libraries with different sub-backends. For example -rdk could install all this:
Which would be quite nice (IMHO). |
I would think that each one of them is not required on a given platform, so based upon the image/platform selection these plugins should be installed, but that can also be done at distro level |
Indeed. Not all the backends can work on all hardware. The recipes for the backends ideally would know which backends can be built for the target hardware. Currenty on meta-webkit I implemented this by making all the backends providers of a virtual/wpebackend dependency and making cog depend on virtual/wpebackend .. |
@clopez: Likely the @kraj: There are cases in which, for the same platform, more than a single backend may be available. Take the example of the Raspberry Pi, where both a dispmanx and a Wayland backend (to run under Weston, for example) may be available, and the launcher may want to decide whether to load one or the other depending on whether e.g. Now, on a more general note, what I think the difficult part here is that both the WebKit UIProcess and the WebProcess need to load the WPE backend library, which means that the UIProcess has to pass down the path somehow to the WebProcess. |
That would allow the launcher (cog) to know which backends are available so it can present that on the screen if the user asks for that.... perhaps with something like You can argue that the launcher itself (cog) can list the files on the directory. But doing via an API call allows it to work without having the knowledge of where are the backends actually installed (that should be only know by wpebackend library itself IMHO) |
The RPi is not the best example, because the dispmanx depends on the propietary broadcom libraries. Perhaps a better example is i.MX6 with vivante where you can use:
|
I think wpe_loader_init() fixed this, right? |
@carlosgcampos Indeed, your changes from PR #18 take care of this. Let's close this issue, then. |
This would allow a launcher/embedder to specify which WPE backend to use. This would remove the need to have a
libWPEBackend-default.so
file, and allows launchers which are implemented to work with some specific WPE backend to set the one to use instead of inadvertently loading the wrong one and failing in mysterious ways.See Igalia/cog#11 for more of the the motivation for requesting this.
The text was updated successfully, but these errors were encountered: