Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 888783
Collapse All | Expand All

(-)a/src/core/content_client_qt.cpp (-5 / +46 lines)
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

Return to bug 888783