General: Update Opera browser sniff follow UA string changes.

Since switching to the Blink engine, Opera browsers contain both the strings `Chrome` and `OPR\`. This change relocates the Opera test to take place before the Chrome test to ensure the correct browser is detected.

Props brasofilo, desrosj, costdev, mukesh27, swissspidy.
Fixes #46132.


git-svn-id: https://develop.svn.wordpress.org/trunk@56224 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Peter Wilson
2023-07-13 00:56:19 +00:00
parent 65a048fc15
commit b892f5177e

View File

@@ -69,6 +69,8 @@ if ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) {
$is_lynx = true;
} elseif ( str_contains( $_SERVER['HTTP_USER_AGENT'], 'Edg' ) ) {
$is_edge = true;
} elseif ( str_contains( $_SERVER['HTTP_USER_AGENT'], 'Opera' ) || str_contains( $_SERVER['HTTP_USER_AGENT'], 'OPR/' ) ) {
$is_opera = true;
} elseif ( stripos( $_SERVER['HTTP_USER_AGENT'], 'chrome' ) !== false ) {
if ( stripos( $_SERVER['HTTP_USER_AGENT'], 'chromeframe' ) !== false ) {
$is_admin = is_admin();
@@ -95,8 +97,6 @@ if ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) {
$is_macIE = true;
} elseif ( str_contains( $_SERVER['HTTP_USER_AGENT'], 'Gecko' ) ) {
$is_gecko = true;
} elseif ( str_contains( $_SERVER['HTTP_USER_AGENT'], 'Opera' ) ) {
$is_opera = true;
} elseif ( str_contains( $_SERVER['HTTP_USER_AGENT'], 'Nav' ) && str_contains( $_SERVER['HTTP_USER_AGENT'], 'Mozilla/4.' ) ) {
$is_NS4 = true;
}