Lines 250-264
static bool IsWidevineAvailable(base::FilePath *cdm_path,
Link Here
|
250 |
} |
251 |
} |
251 |
} |
252 |
} |
252 |
#elif defined(Q_OS_LINUX) |
253 |
#elif defined(Q_OS_LINUX) |
253 |
pluginPaths << QStringLiteral("/opt/google/chrome/libwidevinecdm.so") // Old Google Chrome |
254 |
QList<QDir> potentialWidevineVersionDirs; |
|
|
255 |
|
256 |
// Google Chrome widevine modules |
257 |
QDir chromeWidevineDir(QDir::homePath() + "/.config/google-chrome/WidevineCdm"); |
258 |
if (chromeWidevineDir.exists()) |
259 |
potentialWidevineVersionDirs << chromeWidevineDir; |
260 |
|
261 |
// Firefox widevine modules |
262 |
QDir firefoxPotentialProfilesDir(QDir::homePath() + "/.mozilla/firefox"); |
263 |
if (firefoxPotentialProfilesDir.exists()) { |
264 |
QFileInfoList firefoxProfileDirs = firefoxPotentialProfilesDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name | QDir::Reversed); |
265 |
for (const QFileInfo &info : firefoxProfileDirs) { |
266 |
QDir widevinePluginsDir(info.absoluteFilePath() + "/gmp-widevinecdm"); |
267 |
if (widevinePluginsDir.exists()) |
268 |
potentialWidevineVersionDirs << widevinePluginsDir; |
269 |
} |
270 |
} |
271 |
|
272 |
// Chromium widevine modules (might not work with proprietary codecs) |
273 |
QDir chromiumWidevineDir(QDir::homePath() + "/.config/chromium/WidevineCdm"); |
274 |
if (chromiumWidevineDir.exists()) |
275 |
potentialWidevineVersionDirs << chromiumWidevineDir; |
276 |
|
277 |
// Search for widewine versions |
278 |
for (const QDir &dir : potentialWidevineVersionDirs) { |
279 |
QFileInfoList widevineVersionDirs = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name | QDir::Reversed); |
280 |
// ### alternatively look up in the manifest.json and take the path from there. |
254 |
#if Q_PROCESSOR_WORDSIZE == 8 |
281 |
#if Q_PROCESSOR_WORDSIZE == 8 |
255 |
<< QStringLiteral("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so") |
282 |
const QString library = QLatin1String("/_platform_specific/linux_x64/libwidevinecdm.so"); |
256 |
#else |
283 |
#else |
257 |
<< QStringLiteral("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x86/libwidevinecdm.so") |
284 |
const QString library = QLatin1String("/_platform_specific/linux_x86/libwidevinecdm.so"); |
258 |
#endif |
285 |
#endif |
259 |
<< QStringLiteral("/usr/lib/chromium/libwidevinecdm.so") // Arch |
286 |
for (const QFileInfo &info : widevineVersionDirs) { |
|
|
287 |
pluginPaths << info.absoluteFilePath() + "/libwidevinecdm.so"; |
288 |
pluginPaths << info.absoluteFilePath() + library; |
289 |
} |
290 |
} |
291 |
|
292 |
// Fixed paths: |
293 |
pluginPaths << QStringLiteral("/usr/lib/chromium/libwidevinecdm.so") // Arch |
260 |
<< QStringLiteral("/usr/lib/chromium-browser/libwidevinecdm.so") // Ubuntu/neon |
294 |
<< QStringLiteral("/usr/lib/chromium-browser/libwidevinecdm.so") // Ubuntu/neon |
261 |
<< QStringLiteral("/usr/lib64/chromium/libwidevinecdm.so"); // OpenSUSE style |
295 |
<< QStringLiteral("/usr/lib64/chromium/libwidevinecdm.so") // OpenSUSE style |
|
|
296 |
#if Q_PROCESSOR_WORDSIZE == 8 |
297 |
<< QStringLiteral("/usr/lib64/chromium-browser/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so") // Gentoo |
298 |
<< QStringLiteral("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so") // Old Google Chrome |
299 |
#else |
300 |
<< QStringLiteral("/usr/lib/chromium-browser/WidevineCdm/_platform_specific/linux_x86/libwidevinecdm.so") // Gentoo |
301 |
<< QStringLiteral("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x86/libwidevinecdm.so") // Old Google Chrome |
302 |
#endif |
303 |
<< QStringLiteral("/opt/google/chrome/libwidevinecdm.so"); // Older Google Chrome |
262 |
#endif |
304 |
#endif |
263 |
} |
305 |
} |
264 |
|
306 |
|