line |
true |
false |
branch |
488
|
2 |
7149 |
unless (defined $user_agent) |
492
|
7149 |
2 |
defined $user_agent ? : |
517
|
5442 |
45124 |
unless $self->{'os_tests'} |
541
|
5695 |
24900 |
unless $self->{'robot_tests'} |
554
|
4367 |
19963 |
unless $self->{'version_tests'} |
564
|
7151 |
15039 |
unless $self->{'device_tests'} |
571
|
0 |
1 |
if (defined $user_agent) { } |
643
|
30 |
7121 |
if ($ua =~ m[edge/([\d\.]+)]) { } |
|
944 |
6177 |
elsif ($ua =~ m[trident/([\w\.\d]*)]) { } |
|
732 |
5445 |
elsif (index($ua, 'gecko') != -1 and index($ua, 'like gecko') == -1) { } |
|
2532 |
2913 |
elsif ($ua =~ m[applewebkit/([\d.\+]+)] and not $tests->{'edgehtml'}) { } |
|
138 |
2775 |
elsif ($ua =~ m[presto/([\d.]+)]) { } |
|
12 |
2763 |
elsif ($ua =~ m[khtml/([\d.]+)]) { } |
654
|
660 |
72 |
if ($ua =~ /\([^)]*rv:([\w.\d]*)/) |
673
|
12 |
7139 |
if (index($ua, 'galeon') != -1) { } |
|
6 |
7133 |
elsif (index($ua, 'epiphany') != -1) { } |
|
24 |
7109 |
elsif ($ua =~ m[(?:edg|edga|edgios)/[\d.]+]) { } |
|
30 |
7079 |
elsif ($ua =~ m[edge/[\d.]+]) { } |
|
636 |
6443 |
elsif ($ua =~ m[
(firebird|iceweasel|phoenix|namoroka|firefox|fxios)
\/
( [^.]* ) # Major version number is everything before first dot
\. # The first dot
( [\d]* ) # Minor version nnumber is digits after first dot
]ox and index($ua, 'not firefox') == -1) { } |
|
264 |
6179 |
elsif ($ua =~ m[opera|opr\/]) { } |
|
1730 |
4449 |
elsif ($tests->{'trident'} or index($ua, 'msie') != -1 or index($ua, 'microsoft internet explorer') != -1) { } |
|
12 |
4437 |
elsif (index($ua, 'brave') != -1) { } |
|
72 |
4365 |
elsif (index($ua, 'silk') != -1) { } |
|
6 |
4359 |
elsif (index($ua, 'samsungbrowser') != -1) { } |
|
336 |
4023 |
elsif (index($ua, 'ucbrowser') != -1) { } |
|
1362 |
2661 |
elsif (index($ua, 'chrome/') != -1 or index($ua, 'crios') != -1) { } |
|
42 |
2619 |
elsif (index($ua, 'blackberry') != -1 or index($ua, 'bb10') != -1 or index($ua, 'rim tablet os') != -1) { } |
|
972 |
1647 |
elsif (index($ua, 'safari') != -1 or index($ua, 'applewebkit') != -1) { } |
|
0 |
1647 |
elsif (index($ua, 'neoplanet') != -1) { } |
|
0 |
1647 |
elsif (index($ua, 'webtv') != -1) { } |
|
6 |
1641 |
elsif (index($ua, 'nintendo 3ds') != -1) { } |
|
0 |
1641 |
elsif (index($ua, 'nintendo dsi') != -1) { } |
|
42 |
1599 |
elsif (index($ua, 'playstation 3') != -1 or index($ua, 'playstation portable') != -1 or index($ua, 'netfront') != -1) { } |
|
6 |
1593 |
elsif (index($ua, 'browsex') != -1) { } |
|
18 |
1575 |
elsif (index($ua, 'polaris') != -1) { } |
|
168 |
1407 |
elsif (index($ua, 'mozilla') != -1 and index($ua, 'compatible') == -1) { } |
|
12 |
1395 |
elsif (index($ua, 'staroffice') != -1) { } |
|
6 |
1389 |
elsif (index($ua, 'icab') != -1) { } |
|
6 |
1383 |
elsif (index($ua, 'lotus-notes') != -1) { } |
|
24 |
1359 |
elsif (index($ua, 'konqueror') != -1) { } |
|
6 |
1353 |
elsif (index($ua, 'lynx') != -1) { } |
|
6 |
1347 |
elsif (index($ua, 'elinks') != -1) { } |
|
12 |
1335 |
elsif (index($ua, 'links') != -1) { } |
|
0 |
1335 |
elsif (index($ua, 'mosaic') != -1) { } |
|
6 |
1329 |
elsif (index($ua, 'emacs') != -1) { } |
|
30 |
1299 |
elsif (index($ua, 'obigo') != -1) { } |
|
54 |
1245 |
elsif (index($ua, 'teleca') != -1) { } |
|
36 |
1209 |
elsif (index($ua, 'libcurl') != -1 or $ua =~ /^curl/) { } |
|
6 |
1203 |
elsif (index($ua, 'puf/') != -1) { } |
|
6 |
1197 |
elsif (index($ua, 'applecoremedia/') != -1) { } |
|
6 |
1191 |
elsif (index($ua, 'androiddownloadmanager') != -1) { } |
|
12 |
1179 |
elsif (index($ua, 'dalvik') != -1) { } |
|
6 |
1173 |
elsif (index($ua, 'apple-pubsub') != -1) { } |
|
6 |
1167 |
elsif (index($ua, 'imagesearcherpro') != -1) { } |
713
|
6 |
630 |
$1 eq 'fxios' ? : |
734
|
42 |
1688 |
if (index($ua, "aol") != -1 or index($ua, "america online browser") != -1) |
792
|
12 |
1350 |
if (index($ua, "chromium") != -1) |
810
|
276 |
696 |
if (index($ua, " mobile safari/") != -1 or index($ua, "mobilesafari") != -1) |
815
|
18 |
954 |
if (index($ua, "puffin") != -1) |
826
|
0 |
0 |
if index($ua, "2.") != -1 |
865
|
108 |
60 |
if (index($ua, 'netscape') != -1 or not $tests->{'gecko'}) { } |
|
6 |
54 |
elsif (index($ua, 'seamonkey') != -1) { } |
951
|
5984 |
1167 |
if defined $browser |
956
|
456 |
6695 |
if index($ua, "x11") != -1 |
957
|
1086 |
6065 |
if index($ua, ".net clr") != -1 |
959
|
18 |
7133 |
if (index($ua, "realplayer") != -1) |
976
|
12 |
6 |
if ($ua =~ m[realplayer/([\d+\.]+)]) { } |
|
6 |
0 |
elsif ($ua =~ /realplayer\s(\w+)/) { } |
980
|
12 |
0 |
if defined $self->{'minor'} |
987
|
18 |
7133 |
if (index($ua, "(r1 ") != -1) |
994
|
456 |
906 |
if ($self->android and index($ua, "; wv)") > 0 or $self->chrome and $self->android and $self->browser_major >= 30) |
1053
|
18 |
8634 |
if (index($ua, 'libwww-perl') != -1 or index($ua, 'lwp-') != -1) { } |
|
12 |
8622 |
elsif (index($ua, 'slurp') != -1) { } |
|
6 |
8616 |
elsif (index($ua, 'yahoo') != -1 and index($ua, 'jp.co.yahoo') == -1) { } |
|
6 |
8610 |
elsif (index($ua, 'msnbot-mobile') != -1) { } |
|
0 |
8610 |
elsif (index($ua, 'bingbot-mobile') != -1) { } |
|
6 |
8604 |
elsif (index($ua, 'msnbot') != -1) { } |
|
30 |
8574 |
elsif (index($ua, 'binglocalsearch') != -1 or index($ua, 'bingbot') != -1 or index($ua, 'bingpreview') != -1) { } |
|
6 |
8568 |
elsif (index($ua, 'microsoft office existence discovery') != -1) { } |
|
6 |
8562 |
elsif (index($ua, 'ahrefsbot') != -1) { } |
|
0 |
8562 |
elsif (index($ua, 'altavista') != -1) { } |
|
12 |
8550 |
elsif (index($ua, 'apache-httpclient') != -1) { } |
|
6 |
8544 |
elsif ($ua =~ /\( *\) *\{ *\: *\; */) { } |
|
0 |
8544 |
elsif (index($ua, 'ask jeeves/teoma') != -1) { } |
|
18 |
8526 |
elsif (index($ua, 'baiduspider') != -1) { } |
|
36 |
8490 |
elsif (index($ua, 'libcurl') != -1 or $ua =~ /^curl/) { } |
|
6 |
8484 |
elsif (index($ua, 'facebookexternalhit') != -1) { } |
|
6 |
8478 |
elsif (index($ua, 'getright') != -1) { } |
|
12 |
8466 |
elsif (index($ua, 'adsbot-google') != -1) { } |
|
6 |
8460 |
elsif (index($ua, 'mediapartners-google') != -1) { } |
|
6 |
8454 |
elsif (index($ua, 'google favicon') != -1) { } |
|
6 |
8448 |
elsif (index($ua, 'googlebot-image') != -1) { } |
|
6 |
8442 |
elsif (index($ua, 'googlebot-news') != -1) { } |
|
6 |
8436 |
elsif (index($ua, 'googlebot-video') != -1) { } |
|
18 |
8418 |
elsif (index($ua, 'googlebot-mobile') != -1) { } |
|
36 |
8382 |
elsif (index($ua, 'googlebot') != -1) { } |
|
6 |
8376 |
elsif ($ua =~ /go.*package http/) { } |
|
6 |
8370 |
elsif ($ua =~ /^http_request/) { } |
|
0 |
8370 |
elsif ($ua =~ /^http_request/) { } |
|
6 |
8364 |
elsif (index($ua, 'indy library') != -1) { } |
|
0 |
8364 |
elsif (index($ua, 'infoseek') != -1) { } |
|
6 |
8358 |
elsif (index($ua, 'ips-agent') != -1) { } |
|
0 |
8358 |
elsif (index($ua, 'lecodechecker') != -1) { } |
|
11 |
8347 |
elsif (index($ua, 'linkchecker') != -1) { } |
|
0 |
8347 |
elsif (index($ua, 'lycos') != -1) { } |
|
12 |
8335 |
elsif (index($ua, 'mechanize') != -1) { } |
|
6 |
8329 |
elsif (index($ua, 'mj12bot/') != -1) { } |
|
18 |
8311 |
elsif (index($ua, 'nutch') != -1) { } |
|
6 |
8305 |
elsif (index($ua, 'puf/') != -1) { } |
|
0 |
8305 |
elsif (index($ua, 'scooter') != -1) { } |
|
6 |
8299 |
elsif (index($ua, 'special_archiver') != -1) { } |
|
12 |
8287 |
elsif (index($ua, 'wget') == 0) { } |
|
6 |
8281 |
elsif (index($ua, 'yandexbot') != -1) { } |
|
6 |
8275 |
elsif (index($ua, 'yandeximages') != -1) { } |
|
6 |
8269 |
elsif (index($ua, 'headlesschrome') != -1) { } |
|
42 |
8227 |
elsif ($ua =~ /^java/ and not $self->{'browser'}) { } |
|
0 |
8227 |
elsif (index($ua, 'jdk') != -1) { } |
|
6 |
8221 |
elsif (index($ua, 'jakarta commons-httpclient') != -1) { } |
|
6 |
8215 |
elsif (index($ua, 'google-http-java-client') != -1) { } |
|
6 |
8209 |
elsif (index($ua, 'researchscan.comsys.rwth-aachen.de') != -1) { } |
1056
|
18 |
0 |
index($ua, 'libwww-perl') != -1 ? : |
1262
|
48 |
245430 |
if (index($ua, lc $match) != -1) |
1271
|
22 |
8623 |
if ($browser_tests->{'applecoremedia'} or $browser_tests->{'dalvik'} or $browser_tests->{'adm'}) |
1277
|
491 |
8161 |
if ($r) { } |
|
0 |
8161 |
elsif ($ua =~ /seek (?! mo (?: toolbar )? \s+ \d+\.\d+ )/x) { } |
|
42 |
8119 |
elsif ($ua =~ /search (?! [\w\s]* toolbar \b | bar \b | erpro \b )/x) { } |
|
245 |
7874 |
elsif ($self->{'user_agent'} =~ m[([\w /\.\-]+)[ \;\(\)]*\+https?\:]i) { } |
1281
|
443 |
48 |
unless ($id) |
1285
|
491 |
0 |
unless (exists $robot_tests->{'robot_id'}) |
1292
|
269 |
222 |
unless defined $robot_fragment |
1318
|
7832 |
199655 |
if ($ROBOT_FRAGMENT_EXCEPTIONS{$fragment}) |
1320
|
0 |
7832 |
unless $ROBOT_FRAGMENT_EXCEPTIONS{$fragment} |
1321
|
7 |
7825 |
if (index($ua, $exception) != -1) |
1327
|
311 |
207169 |
if (index($ua, $fragment) != -1) |
1335
|
598 |
8054 |
if (exists $robot_tests->{'robot'} and $robot_tests->{'robot'} eq "unknown") |
1340
|
1089 |
7563 |
if (defined $robot_fragment) |
1345
|
1017 |
72 |
if ($self->{'user_agent'} =~ m[\s* # Beginning whitespace
([\w .:,\-\@\/]* # Words before fragment
$robot_fragment # Match the fragment
[\w .:,\-\@\/]*) # Words after fragment
]xi) |
1354
|
36 |
276 |
if ($self->{'user_agent'} eq $full_string and $self->{'user_agent'} =~ m[\/.*\/] and $self->{'user_agent'} =~ m[
([\w]* # Words before fragment
$robot_fragment # Match the fragment
(\/[\d\.]+)? # Version
[\w]*) # Beta stuff
]xi) |
1371
|
652 |
365 |
if ($full_string and $full_string =~ s[[/ \.v]*(\d+)(\.\d+)?([\.\w]*)$][]) { } |
1381
|
353 |
664 |
unless (defined $self->{'robot_string'}) |
1387
|
6117 |
2535 |
if (not exists $self->{'robot_version'}) |
1407
|
0 |
7146 |
if (index($ua, "16bit") != -1) |
1413
|
2958 |
4188 |
if (index($ua, "win") != -1) |
1414
|
12 |
2946 |
if (index($ua, 'win16') != -1 or index($ua, 'windows 3') != -1 or index($ua, 'windows 16-bit') != -1) { } |
|
72 |
2874 |
elsif (index($ua, 'win95') != -1 or index($ua, 'windows 95') != -1) { } |
|
30 |
2844 |
elsif (index($ua, 'win 9x 4.90') != -1 or index($ua, 'windows me') != -1) { } |
|
24 |
2820 |
elsif (index($ua, 'win98') != -1 or index($ua, 'windows 98') != -1) { } |
|
12 |
2808 |
elsif (index($ua, 'windows 2000') != -1) { } |
|
12 |
2796 |
elsif (index($ua, 'windows ce') != -1) { } |
|
54 |
2742 |
elsif (index($ua, 'windows phone') != -1) { } |
1420
|
6 |
6 |
if (index($ua, 'windows 3.1') != -1) { } |
1462
|
6 |
48 |
if (index($ua, 'windows phone os 7.0') != -1) { } |
|
12 |
36 |
elsif (index($ua, 'windows phone os 7.5') != -1) { } |
|
12 |
24 |
elsif (index($ua, 'windows phone 8.0') != -1) { } |
|
18 |
6 |
elsif (index($ua, 'windows phone 8.1') != -1) { } |
|
6 |
0 |
elsif (index($ua, 'windows phone 10.0') != -1) { } |
1480
|
3798 |
3348 |
if (index($ua, "nt") != -1) |
1481
|
90 |
3708 |
if (index($ua, 'nt 5.0') != -1 or index($ua, 'nt5') != -1) { } |
|
984 |
2724 |
elsif (index($ua, 'nt 5.1') != -1) { } |
|
126 |
2598 |
elsif (index($ua, 'nt 5.2') != -1) { } |
|
204 |
2394 |
elsif (index($ua, 'nt 6.0') != -1) { } |
|
966 |
1428 |
elsif (index($ua, 'nt 6.1') != -1) { } |
|
96 |
1332 |
elsif (index($ua, 'nt 6.2') != -1) { } |
|
78 |
1254 |
elsif (index($ua, 'nt 6.3') != -1) { } |
|
30 |
1224 |
elsif (index($ua, 'nt 10.0') != -1) { } |
|
54 |
1170 |
elsif (index($ua, 'winnt') != -1 or index($ua, 'windows nt') != -1 or index($ua, 'nt4') != -1 or index($ua, 'nt3') != -1) { } |
1536
|
2844 |
4302 |
if ($os) { } |
|
462 |
3840 |
elsif (index($ua, 'macintosh') != -1 or index($ua, 'mac_') != -1) { } |
|
378 |
3462 |
elsif (index($ua, 'ipod') != -1 or index($ua, 'iphone') != -1 or index($ua, 'ipad') != -1) { } |
|
966 |
2496 |
elsif (index($ua, 'android') != -1) { } |
|
492 |
2004 |
elsif (index($ua, 'inux') != -1) { } |
|
42 |
1962 |
elsif ($tests->{'x11'} and index($ua, 'cros') != -1) { } |
|
6 |
1956 |
elsif (index($ua, 'amiga') != -1) { } |
|
6 |
1950 |
elsif (index($ua, 'os/2') != -1) { } |
|
6 |
1944 |
elsif (index($ua, 'solaris') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'samsung') == -1 and index($ua, 'sun') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'irix') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'hp-ux') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'aix') != -1) { } |
|
0 |
1944 |
elsif ($ua =~ /\bsco\b/ or index($ua, 'unix_sv') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'unix_system_v') != -1) { } |
|
0 |
1944 |
elsif ($ua =~ /\bncr\b/) { } |
|
0 |
1944 |
elsif (index($ua, 'reliantunix') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'dec') != -1 or index($ua, 'osf1') != -1 or index($ua, 'declpha') != -1 or index($ua, 'alphaserver') != -1 or index($ua, 'ultrix') != -1 or index($ua, 'alphastation') != -1) { } |
|
0 |
1944 |
elsif (index($ua, 'sinix') != -1) { } |
|
30 |
1914 |
elsif (index($ua, 'bsd') != -1) { } |
|
12 |
1902 |
elsif ($tests->{'x11'}) { } |
|
0 |
1902 |
elsif (index($ua, 'vax') != -1 or index($ua, 'openvms') != -1) { } |
|
12 |
1890 |
elsif (index($ua, 'bb10') != -1) { } |
|
6 |
1884 |
elsif (index($ua, 'rim tablet os') != -1) { } |
|
6 |
1878 |
elsif (index($ua, 'playstation 3') != -1) { } |
|
6 |
1872 |
elsif (index($ua, 'playstation portable') != -1) { } |
|
54 |
1818 |
elsif (index($ua, 'windows') != -1) { } |
|
18 |
1800 |
elsif (index($ua, 'win32') != -1) { } |
|
144 |
1656 |
elsif ($self->{'user_agent'} =~ /(brew)|(\bbmp\b)/i) { } |
1540
|
0 |
2844 |
if index($ua, "win32") != -1 |
1546
|
438 |
24 |
if (index($ua, 'mac os x') != -1) { } |
1553
|
0 |
462 |
if (index($ua, '68k') != -1 or index($ua, '68000') != -1) { } |
|
126 |
336 |
elsif (index($ua, 'ppc') != -1 or index($ua, 'powerpc') != -1) { } |
1603
|
0 |
0 |
if index($ua, "i86") != -1 |
1604
|
0 |
0 |
if index($ua, "sunos 4") != -1 |
1605
|
0 |
0 |
if index($ua, "sunos 5") != -1 |
1611
|
0 |
0 |
if index($ua, "irix5") != -1 |
1612
|
0 |
0 |
if index($ua, "irix6") != -1 |
1618
|
0 |
0 |
if index($ua, "09.") != -1 |
1619
|
0 |
0 |
if index($ua, "10.") != -1 |
1625
|
0 |
0 |
if index($ua, "aix 1") != -1 |
1626
|
0 |
0 |
if index($ua, "aix 2") != -1 |
1627
|
0 |
0 |
if index($ua, "aix 3") != -1 |
1628
|
0 |
0 |
if index($ua, "aix 4") != -1 |
1665
|
30 |
0 |
if ($self->{'user_agent'} =~ /(\w*bsd\w*)/i) |
1669
|
30 |
0 |
if index($ua, "freebsd") != -1 |
1708
|
102 |
42 |
if ($1) { } |
1724
|
12 |
6 |
if (not $os and $browser_tests->{'firefox'} and index($ua, "fennec") == -1 and $self->mobile || $self->tablet) |
1733
|
2460 |
4686 |
if ($os and not $os_string) |
1748
|
531 |
1996 |
if (not defined $os) { } |
|
24 |
1972 |
elsif ($os eq 'winphone') { } |
|
190 |
1782 |
elsif ($os eq 'macosx') { } |
|
171 |
1611 |
elsif ($os eq 'ios') { } |
|
22 |
1589 |
elsif ($os eq 'chromeos') { } |
|
454 |
1135 |
elsif ($os eq 'android') { } |
|
6 |
1129 |
elsif ($os eq 'firefoxos') { } |
|
71 |
1058 |
elsif ($os eq 'brew') { } |
1753
|
24 |
0 |
if ($ua =~ /windows phone (?:os )?(\d+)(\.?\d*)([\.\d]*)/) |
1758
|
158 |
32 |
if ($ua =~ /os x (\d+)[\._](\d+)[\._]?(\d*)/) |
1759
|
135 |
23 |
length $3 ? : |
1763
|
170 |
1 |
if ($ua =~ / os (\d+)[\._ ](\d+)[\._ ]?(\d*)/) |
1764
|
119 |
51 |
length $3 ? : |
1768
|
22 |
0 |
if ($ua =~ / cros \S* (\d+)(\.?\d*)([\.\d]*)/) |
1773
|
442 |
12 |
if ($ua =~ /android (\d+)(\.?\d*)([\w\-\.]*)[\;\)]/) |
1778
|
6 |
0 |
if ($ua =~ m[firefox/(\d+)(\.?\d*)([\.\d]*)]) |
1783
|
55 |
16 |
if ($ua =~ /(brew|\bbmp) (\d+)(\.?\d*)([\.\d]*)/) |
1812
|
264 |
6844 |
if (defined $browser and $browser eq 'opera') { } |
|
1883 |
4961 |
elsif ($ua =~ m[\b compatible; \s* [\w\-]* [/\s] ( [0-9]+ ) (?: .([0-9]+) (\S*) )? ;]x) { } |
|
956 |
4005 |
elsif (not $browser) { } |
|
24 |
3981 |
elsif ($browser_tests->{'edge'}) { } |
|
952 |
3029 |
elsif ($browser_tests->{'safari'}) { } |
|
6 |
3023 |
elsif ($browser_tests->{'fxios'}) { } |
|
100 |
2923 |
elsif ($browser_tests->{'ie'}) { } |
|
6 |
2917 |
elsif ($browser eq 'n3ds') { } |
|
6 |
2911 |
elsif ($browser eq 'browsex') { } |
|
6 |
2905 |
elsif ($ua =~ m[netscape6/(\d+)\.(\d+)([\d.]*)]) { } |
|
12 |
2893 |
elsif ($browser eq 'brave') { } |
|
18 |
2875 |
elsif ($browser eq 'chrome' and $ua =~ m[crios/(\d+)\.(\d+)([\d.]*)]) { } |
|
6 |
2869 |
elsif ($browser eq 'pubsub' and $ua =~ m[apple-pubsub/(\d+)\.?(\d+)?([\d.]*)]) { } |
|
78 |
2791 |
elsif ($browser eq 'obigo' and $self->{'user_agent'} =~ m[(obigo[\w\-]*|teleca)[\/ ]\w(\d+)(\w*)]i) { } |
|
6 |
2785 |
elsif ($browser eq 'polaris' and $ua =~ m[polaris[ \/](\d+)\.?(\d+)?([\d\.]*)]) { } |
|
335 |
2450 |
elsif ($browser eq 'ucbrowser' and $ua =~ m[ucbrowser[\/ ]*(\d+)\.?(\d+)?([\d\.]*)]) { } |
|
6 |
4888 |
elsif ($browser eq 'samsung' and $ua =~ m[samsungbrowser/(\d+)\.(\d+)\s]) { } |
1822
|
90 |
174 |
if ($ua =~ m[\AOpera.*\sVersion/(\d*)\.(\d*)\z]i) { } |
|
48 |
126 |
elsif ($ua =~ m[\bOPR/(\d+)\.(\d+)]i) { } |
|
126 |
0 |
elsif ($ua =~ m[Opera[ /](\d+).(\d+)]i) { } |
1849
|
24 |
0 |
unless defined $major |
1857
|
874 |
78 |
if (do {
$ua =~ m[ safari/ ( \d+ (?: \.\d+ )* ) ]x
}) { } |
|
66 |
12 |
elsif ($ua =~ m[applewebkit\/([\d\.]{1,})]xi) { } |
1870
|
874 |
0 |
if (my($safari_build, $safari_minor) = split(/\./, $1, 3)) |
1873
|
808 |
66 |
if defined $safari_minor |
1877
|
66 |
0 |
if (my($safari_build, $safari_minor) = split(/\./, $1, 3)) |
1880
|
54 |
12 |
if $safari_minor |
1891
|
18 |
82 |
if ($ua =~ /\b msie \s ( [0-9\.]+ ) (?: [a-z]+ [a-z0-9]* )? ;/x) { } |
|
71 |
11 |
elsif ($ua =~ /\b rv: ( [0-9\.]+ ) \b/x) { } |
1903
|
6 |
0 |
if ($ua =~ m[Nintendo 3DS;.*\sVersion/(\d*)\.(\d*)]i) |
1909
|
6 |
0 |
if ($ua =~ /BrowseX \((\d+)\.(\d+)([\d.]*)/i) |
1931
|
12 |
0 |
if ($ua =~ m[brave/(\d+)\.(\d+)([\d.]*)]) |
1976
|
2462 |
4646 |
if (not defined $major and defined $self->{'browser_string'}) |
1978
|
2265 |
197 |
if ($version_index != -1) |
1981
|
2253 |
12 |
if ($version_str =~ m[/(\d+)\.(\d+)([\w.]*)]) |
1990
|
1170 |
5938 |
unless (defined $major) |
1991
|
24 |
1146 |
if ($ua =~ m[version/(\d+)\.(\d+)([\w.]*)]) |
2000
|
1146 |
5962 |
unless (defined $major) |
2017
|
324 |
6784 |
unless (defined $major) |
2019
|
0 |
324 |
if ($ua =~ m[[A-Za-z]+/(\d+)\;]) |
2026
|
485 |
6623 |
unless $major |
2027
|
4639 |
2469 |
unless $minor |
2028
|
2867 |
4241 |
if defined $beta and $beta eq "" |
2032
|
168 |
6940 |
if ($browser_tests->{'netscape'}) |
2035
|
12 |
156 |
if $major == 2 |
2036
|
18 |
150 |
if $major == 3 |
2037
|
24 |
144 |
if $major == 4 |
2038
|
114 |
54 |
if $major >= 4 |
2039
|
6 |
162 |
if $major == 4 and $minor == 5 |
2040
|
96 |
72 |
if $major == 4 and ".$minor" >= "0.5" or $major >= 5 |
2043
|
6 |
162 |
if defined $beta and index($beta, "gold") != -1 |
2045
|
84 |
84 |
if $major == 5 or $major == 6 |
2047
|
90 |
78 |
if $major >= 5 |
2049
|
6 |
162 |
if ($browser eq "seamonkey") |
2060
|
1708 |
5400 |
if ($browser_tests->{'ie'}) |
2061
|
23 |
1685 |
if $major == 3 |
2062
|
35 |
1673 |
if $major == 4 |
2063
|
1673 |
35 |
if $major >= 4 |
2064
|
71 |
1637 |
if $major == 5 |
2065
|
1638 |
70 |
if $major >= 5 |
2066
|
24 |
1684 |
if $major == 5 and $minor == 5 |
2067
|
1591 |
117 |
if ".$minor" >= "0.5" or $major >= 6 |
2068
|
388 |
1320 |
if $major == 6 |
2069
|
319 |
1389 |
if $major == 7 |
2070
|
604 |
1104 |
if $major == 8 |
2071
|
113 |
1595 |
if $major == 9 |
2072
|
66 |
1642 |
if $major == 10 |
2073
|
71 |
1637 |
if $major == 11 |
2082
|
41 |
7067 |
if ($browser_tests->{'aol'}) |
2085
|
6 |
35 |
if index($ua, "aol 3.0") != -1 or $version_tests->{'ie3'} |
2088
|
0 |
41 |
if index($ua, "aol 4.0") != -1 or $version_tests->{'ie4'} |
2089
|
0 |
41 |
if index($ua, "aol 5.0") != -1 |
2090
|
6 |
35 |
if index($ua, "aol 6.0") != -1 |
2091
|
0 |
41 |
if index($ua, "navio") != -1 |
2094
|
264 |
6844 |
if ($browser_tests->{'opera'}) |
2095
|
6 |
258 |
if index($ua, "opera 3") != -1 or index($ua, "opera/3") != -1 |
2097
|
0 |
264 |
if index($ua, "opera 4") != -1 or index($ua, "opera/4") != -1 and index($ua, "nintendo dsi") == -1 |
2101
|
0 |
264 |
if index($ua, "opera 5") != -1 or index($ua, "opera/5") != -1 |
2104
|
12 |
252 |
if index($ua, "opera 6") != -1 or index($ua, "opera/6") != -1 |
2107
|
30 |
234 |
if index($ua, "opera 7") != -1 or index($ua, "opera/7") != -1 |
2132
|
54 |
8168 |
if (index($ua, 'windows phone') != -1) { } |
|
972 |
7196 |
elsif (index($ua, 'android') != -1 or index($ua, 'silk-accelerated') != -1) { } |
|
42 |
7154 |
elsif (index($ua, 'blackberry') != -1 or index($ua, 'bb10') != -1 or index($ua, 'rim tablet os') != -1) { } |
|
18 |
7136 |
elsif (index($ua, 'ipod') != -1) { } |
|
156 |
6980 |
elsif (index($ua, 'ipad') != -1) { } |
|
204 |
6776 |
elsif (index($ua, 'iphone') != -1) { } |
|
6 |
6770 |
elsif (index($ua, 'webos') != -1) { } |
|
12 |
6758 |
elsif (index($ua, 'kindle') != -1) { } |
|
0 |
6758 |
elsif (index($ua, 'audrey') != -1) { } |
|
0 |
6758 |
elsif (index($ua, 'i-opener') != -1) { } |
|
0 |
6758 |
elsif (index($ua, 'avantgo') != -1) { } |
|
0 |
6758 |
elsif (index($ua, 'palmos') != -1) { } |
|
6 |
6752 |
elsif (index($ua, 'playstation 3') != -1) { } |
|
6 |
6746 |
elsif (index($ua, 'playstation portable') != -1) { } |
|
6 |
6740 |
elsif (index($ua, 'nintendo dsi') != -1) { } |
|
6 |
6734 |
elsif (index($ua, 'nintendo 3ds') != -1) { } |
|
582 |
6152 |
elsif ($browser_tests->{'obigo'} or $browser_tests->{'ucbrowser'} or index($ua, 'up.browser') != -1 or index($ua, 'nokia') != -1 and index($ua, 'windows phone') == -1 or index($ua, 'alcatel') != -1 or $ua =~ /\bbrew\b/ or $ua =~ /\bbmp\b/ or index($ua, 'ericsson') != -1 or index($ua, 'sie-') == 0 or index($ua, 'wmlib') != -1 or index($ua, ' wap') != -1 or index($ua, 'wap ') != -1 or index($ua, 'wap/') != -1 or index($ua, '-wap') != -1 or index($ua, 'wap-') != -1 or index($ua, 'wap') == 0 or index($ua, 'wapper') != -1 or index($ua, 'zetor') != -1) { } |
2262
|
7891 |
331 |
unless ($device_tests->{'tablet'}) |
2316
|
276 |
7946 |
if ($browser_tests->{'ucbrowser'} and $self->{'user_agent'} =~ m[ucweb/2.0\s*\(([^\;\)]*\;){3,4}\s*([^\;\)]*?)\s*\)]i) { } |
|
12 |
7934 |
elsif ($ua =~ m[^(\bmot-[^ /]+)]) { } |
|
108 |
7826 |
elsif ($browser_tests->{'obigo'} || index($ua, 'brew') != -1 and $self->{'user_agent'} =~ m[\d+x\d+ ([\d\w\- ]+?)( \S+\/\S+)*$]i) { } |
|
18 |
7808 |
elsif ($ua =~ m[windows phone os [^\)]+ iemobile/[^;]+; ([^;]+; [^;\)]+)]g) { } |
|
12 |
7796 |
elsif ($ua =~ m[windows phone [^\)]+ iemobile/[^;]+; arm; touch; ([^;]+; [^;\)]+)]g) { } |
|
18 |
7778 |
elsif ($ua =~ m[windows phone 8[^\)]+ iemobile/[^;]+; ([^;]+; [^;\)]+)]g) { } |
|
12 |
7766 |
elsif ($ua =~ /bb10; ([^;\)]+)/g) { } |
|
6 |
7760 |
elsif ($ua =~ /blackberry ([\w.]+)/) { } |
|
18 |
7742 |
elsif ($ua =~ m[blackberry(\d+)/]) { } |
|
12 |
7730 |
elsif ($ua =~ /silk-accelerated/) { } |
|
906 |
6824 |
elsif ($self->{'user_agent'} =~ /android .*\; ([^;]*) build/i) { } |
|
114 |
6710 |
elsif ($self->{'user_agent'} =~ m[\b((alcatel|huawei|lg|nokia|samsung|sonyericsson)[\w\-]*)/]i) { } |
|
6 |
6704 |
elsif ($self->{'user_agent'} =~ /CrKey/) { } |
|
558 |
6146 |
elsif ($device) { } |
2372
|
54 |
852 |
if ($model =~ /^KF/ or $model =~ /kindle fire/i) { } |
|
78 |
774 |
elsif ($device_tests->{'tablet'}) { } |
2401
|
2076 |
6146 |
if ($device) { } |
2409
|
2070 |
6152 |
if ($device_string) |
2418
|
0 |
1705 |
unless defined $self->{'user_agent'} |
2424
|
0 |
1673 |
unless defined $self->{'user_agent'} |
2431
|
1871 |
363 |
unless exists $self->{'robot_string'} |
2438
|
603 |
285 |
unless exists $self->{'robot_string'} |
2451
|
0 |
0 |
$self->robot ? : |
|
546 |
0 |
$self->{'robot_tests'}{'robot_id'} ? : |
2457
|
0 |
415 |
unless exists $self->{'robot_string'} |
2458
|
415 |
0 |
if ($self->{'robot_version'}) { } |
2469
|
106 |
0 |
if (defined $major) { } |
2470
|
105 |
1 |
if (defined $minor) { } |
2503
|
0 |
4148 |
unless defined $self->{'user_agent'} |
2504
|
1247 |
2901 |
unless $self->{'os_tests'} |
2511
|
0 |
4101 |
unless defined $self->{'user_agent'} |
2512
|
84 |
4017 |
unless $self->{'os_tests'} |
2518
|
2527 |
1451 |
unless exists $self->{'os_version'} |
2519
|
1912 |
2066 |
if ($self->{'os_version'}) { } |
2530
|
469 |
535 |
defined $major ? : |
2554
|
0 |
0 |
unless $self->{'version_tests'} |
2566
|
76 |
634 |
if ($self->gecko) { } |
2576
|
234 |
714 |
unless $self->{'version_tests'} |
2578
|
948 |
0 |
defined $self->{'major'} ? : |
2583
|
257 |
893 |
unless $self->{'version_tests'} |
2591
|
143 |
826 |
unless $self->{'version_tests'} |
2602
|
919 |
0 |
defined $major ? : |
2631
|
5 |
1 |
defined $major ? : |
2659
|
650 |
4723 |
if ($self->safari) |
2663
|
455 |
195 |
if ($ua =~ m[
version/
( \d+ ) # Major version number is everything before first dot
( \. \d+ )? # Minor version number is first dot and following digits
]x) |
2676
|
146 |
49 |
if ($ua =~ m[ safari/ ( \d+ (?: \.\d+ )* ) ]x) |
2679
|
101 |
45 |
unless ($version) |
2688
|
92 |
369 |
if $self->_cmp_versions($build, $maybe_build) >= 0 |
2693
|
6 |
95 |
if $ua =~ m[safari/12x] |
2696
|
3 |
137 |
unless defined $version |
2699
|
2 |
135 |
if $minor =~ s/(\D.*)// |
2701
|
2 |
135 |
$beta ? : |
2705
|
1721 |
3051 |
unless $self->{'version_tests'} |
2716
|
4306 |
4713 |
if @a == 0 or $a[0] < $b[0] |
2717
|
3273 |
1440 |
if @b == 0 or $b[0] < $a[0] |
2729
|
188 |
1165 |
$self->engine_string eq 'MSIE' ? : |
|
200 |
1353 |
!$self->engine_string ? : |
2737
|
740 |
4798 |
if ($self->gecko) |
2741
|
978 |
3820 |
if ($self->trident) |
2745
|
558 |
3262 |
if ($self->ie) |
2749
|
32 |
3230 |
if ($self->edgelegacy) |
2753
|
2632 |
598 |
if ($self->webkit) |
2757
|
140 |
458 |
if ($self->presto) |
2761
|
53 |
405 |
if ($self->netfront) |
2765
|
16 |
389 |
if ($self->khtml) |
2776
|
1290 |
288 |
$self->{'engine_version'} && $self->{'engine_version'} =~ /^(\d+(\.\d+)?)/ ? : |
2783
|
1588 |
602 |
$self->{'engine_version'} && $self->{'engine_version'} =~ /^(\d+)/ ? : |
2790
|
1508 |
585 |
$self->{'engine_version'} && $self->{'engine_version'} =~ /^\d+(\.\d+)/ ? : |
2797
|
1103 |
302 |
$self->{'engine_version'} && $self->{'engine_version'} =~ /^\d+\.\d+([\.\d\+]*)/ ? : |
2803
|
137 |
598 |
unless $self->{'version_tests'} |
2826
|
0 |
4129 |
unless exists $self->{'device'} |
2833
|
1071 |
763 |
unless exists $self->{'device_string'} |
2845
|
255 |
1553 |
if ($self->safari) |
2846
|
8 |
247 |
if ($self->major == 1 and $self->{'user_agent'} =~ /\s ( [a-z]{2} ) \)/msx) |
2850
|
147 |
100 |
if ($self->{'user_agent'} =~ /\s ([a-z]{2})-([A-Za-z]{2})/msx) |
2855
|
3 |
1650 |
if ($self->aol and $self->{'user_agent'} =~ /;([A-Z]{2})_([A-Z]{2})\)/) |
2860
|
342 |
1308 |
if ($self->{'user_agent'} =~ /\b([a-z]{2})-([A-Za-z]{2})\b/msx) |
2864
|
23 |
1285 |
if ($self->{'user_agent'} =~ /\[([a-z]{2})\]/msx) |
2868
|
1141 |
144 |
if ($self->{'user_agent'} =~ /\(([^)]+)\)/msx) |
2873
|
147 |
4712 |
if ($part =~ /^\s*([a-z]{2})\s*$/ and not $self->webview && $1 eq 'wv') |
2891
|
1738 |
0 |
if $value |
2894
|
1734 |
20 |
if $value |
2897
|
0 |
1926 |
unless $self->{'device_tests'} |
2898
|
373 |
1553 |
unless $self->{'os_tests'} |
2899
|
482 |
1444 |
unless $self->{'robot_tests'} |
2900
|
231 |
1695 |
unless $self->{'version_tests'} |
2903
|
1120 |
3191 |
if $value |
2906
|
3853 |
0 |
if $value |
2909
|
762 |
0 |
if $value |
2912
|
1982 |
449 |
if $value |
2917
|
547 |
1379 |
if $self->device |
2925
|
1 |
27 |
unless $self->{'robot_tests'} |
2941
|
0 |
0 |
if $self->chrome and $self->browser_major and $self->browser_major >= 41 |
2947
|
0 |
0 |
if $self->opera and $self->browser_major and $self->browser_major == 40 || $self->browser_major >= 42 |