| Server IP : 167.99.224.18 / Your IP : 216.73.216.136 Web Server : Apache/2.4.41 (Ubuntu) System : Linux wordpress-ubuntu-s-1vcpu-1gb-nyc1-01 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.0.25 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/wp-content/plugins-old/matomo/app/core/ |
Upload File : |
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik;
use Piwik\Container\StaticContainer;
use Piwik\DeviceDetector\DeviceDetectorFactory;
use Piwik\Exception\NotSupportedBrowserException;
class SupportedBrowser
{
/**
* A list of browsers with version numbers that are not supported. A browser
* is not supported if it's included in this array and the version number
* is smaller or equal to the number in this array. If the user's browser
* not included in this list or the version number is higher, then
* supported.
*
* Current version numbers are coming from this list:
* $ npx browserslist
*/
private static $notSupportedBrowsers = ['FF' => 51, 'IE' => 11, 'SF' => 10, 'CH' => 48, 'OP' => 72, 'PS' => 17];
public static function checkIfBrowserSupported()
{
$userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
if ($userAgent === '') {
return;
}
$ddFactory = StaticContainer::get(DeviceDetectorFactory::class);
/** @var \DeviceDetector\DeviceDetector */
$deviceDetector = $ddFactory->makeInstance($userAgent, \Piwik\Http::getClientHintsFromServerVariables());
$deviceDetector->parse();
$client = $deviceDetector->getClient();
if (!empty($client) && $client['type'] === 'browser' && self::browserNotSupported($client['short_name'], (int) $client['version'])) {
self::throwException($client);
}
}
private static function browserNotSupported($shortName, $version)
{
return array_key_exists($shortName, self::$notSupportedBrowsers) && $version > 0 && $version <= self::$notSupportedBrowsers[$shortName];
}
private static function throwException($client)
{
$message = "<p><b>" . \Piwik\Piwik::translate('General_ExceptionNotSupportedBrowserTitle') . "</b></p>";
$message .= "<p>" . \Piwik\Piwik::translate('General_ExceptionNotSupportedBrowserText') . "</p>";
$exception = new NotSupportedBrowserException($message);
$exception->setIsHtmlMessage();
throw $exception;
}
}