summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermedia.cpp
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2024-07-21 20:10:58 +0800
committerErik Kundiman <erik@megapahit.org>2024-07-21 20:10:58 +0800
commit9a4d15f647bc90cc6b760cbad4bc4dab877f217b (patch)
tree12f340ab9523150dbc4541e21d0fdb7578ae361c /indra/newview/llviewermedia.cpp
parent48838f8d7376c51b18342f390ed01539f0e4fcb0 (diff)
CEF via Linux binary compatibility attempt on FBSD
Since the condition is quite specific for now, debootstrapped Debian/Ubuntu x86-64 only, paths are just hardcoded. We got far enough that SLPlugin doesn't get killed, and there's no notification that "text/html" cannot be handled any more, it's just it hasn't worked yet, the built-in browser.
Diffstat (limited to 'indra/newview/llviewermedia.cpp')
-rw-r--r--indra/newview/llviewermedia.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index c8b7a9c29b..e86cb7ab39 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -1719,6 +1719,13 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_
{
std::string launcher_name = gDirUtilp->getLLPluginLauncher();
std::string plugin_name = gDirUtilp->getLLPluginFilename(plugin_basename);
+#if __FreeBSD__
+ if (plugin_basename == "media_plugin_cef")
+ {
+ launcher_name = "/compat/linux/usr/libexec/megapahit/SLPlugin";
+ plugin_name = "/compat/linux/usr/lib/x86_64-linux-gnu/libmedia_plugin_cef.so";
+ }
+#endif
std::string user_data_path_cache = gDirUtilp->getCacheDir(false);
user_data_path_cache += gDirUtilp->getDirDelimiter();
@@ -1779,7 +1786,16 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_
media_source->setTarget(target);
+#if __FreeBSD__
+ std::string plugin_dir = gDirUtilp->getLLPluginDir();
+ if (plugin_basename == "media_plugin_cef")
+ {
+ plugin_dir = "/compat/linux/usr/lib/x86_64-linux-gnu";
+ plugin_name = "/usr/lib/x86_64-linux-gnu/libmedia_plugin_cef.so";
+ }
+#else
const std::string plugin_dir = gDirUtilp->getLLPluginDir();
+#endif
if (media_source->init(launcher_name, plugin_dir, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins")))
{
return media_source;