Imported Upstream version 1.33
gregor herrmann
12 years ago
26 | 26 | "Olaf Alders <olaf\@wundercounter.com> (current maintainer)" |
27 | 27 | ], |
28 | 28 | "dist_name" => "HTTP-BrowserDetect", |
29 | "dist_version" => "1.32", | |
29 | "dist_version" => "1.33", | |
30 | 30 | "license" => "perl", |
31 | 31 | "module_name" => "HTTP::BrowserDetect", |
32 | 32 | "recommends" => {}, |
0 | 0 | Revision history for Perl extension HTTP::BrowserDetect. |
1 | ||
2 | 1.33 2011-10-15 | |
3 | - Adds detections for the Trident engine (Douglas Christopher Wilson) | |
1 | 4 | |
2 | 5 | 1.32 2011-10-12 |
3 | 6 | - Fixes RealPlayer false positives (John Oatis) |
57 | 57 | "web" : "http://github.com/oalders/http-browserdetect" |
58 | 58 | } |
59 | 59 | }, |
60 | "version" : "1.32" | |
60 | "version" : "1.33" | |
61 | 61 | } |
62 | 62 |
33 | 33 | "strict" => 0, |
34 | 34 | "vars" => 0 |
35 | 35 | }, |
36 | "VERSION" => "1.32", | |
36 | "VERSION" => "1.33", | |
37 | 37 | "test" => { |
38 | 38 | "TESTS" => "t/*.t" |
39 | 39 | } |
2 | 2 | an HTTP user agent string |
3 | 3 | |
4 | 4 | VERSION |
5 | version 1.32 | |
5 | version 1.33 | |
6 | 6 | |
7 | 7 | SYNOPSIS |
8 | 8 | use HTTP::BrowserDetect; |
161 | 161 | engine_string() |
162 | 162 | Returns one of the following: |
163 | 163 | |
164 | Gecko, KHTML, MSIE, NetFront | |
165 | ||
166 | Returns undef if no string can be found. | |
164 | Gecko, KHTML, Trident, MSIE, NetFront | |
165 | ||
166 | Returns "undef" if no string can be found. | |
167 | 167 | |
168 | 168 | engine_version() |
169 | 169 | Returns the version number of the rendering engine. Currently this only |
170 | returns a version number for Gecko. Returns undef for all other engines. | |
170 | returns a version number for Gecko and Trident. Returns "undef" for all | |
171 | other engines. | |
171 | 172 | |
172 | 173 | engine_major() |
173 | 174 | Returns the major version number of the rendering engine. Currently this |
174 | only returns a version number for Gecko. Returns undef for all other | |
175 | engines. | |
175 | only returns a version number for Gecko and Trident. Returns "undef" for | |
176 | all other engines. | |
176 | 177 | |
177 | 178 | engine_minor() |
178 | 179 | Returns the minor version number of the rendering engine. Currently this |
179 | only returns a version number for Gecko. Returns undef for all other | |
180 | engines. | |
180 | only returns a version number for Gecko and Trident. Returns "undef" for | |
181 | all other engines. | |
181 | 182 | |
182 | 183 | Detecting OS Platform and Version |
183 | 184 | The following methods are available, each returning a true or false |
383 | 384 | John Oatis |
384 | 385 | |
385 | 386 | TO DO |
386 | The _engine() method currently only handles Gecko. It needs to be | |
387 | expanded to handle other rendering engines. | |
387 | The "_engine()" method currently only handles Gecko and Trident. It | |
388 | needs to be expanded to handle other rendering engines. | |
388 | 389 | |
389 | 390 | POD coverage is also not 100%. |
390 | 391 |
4 | 4 | license = Perl_5 |
5 | 5 | copyright_holder = Lee Semel |
6 | 6 | copyright_year = 2011 |
7 | version = 1.32 | |
7 | version = 1.33 | |
8 | 8 | main_module = lib/HTTP/BrowserDetect.pm |
9 | 9 | |
10 | 10 | [GatherDir] |
0 | 0 | use strict; |
1 | 1 | package HTTP::BrowserDetect; |
2 | 2 | { |
3 | $HTTP::BrowserDetect::VERSION = '1.32'; | |
3 | $HTTP::BrowserDetect::VERSION = '1.33'; | |
4 | 4 | } |
5 | 5 | |
6 | 6 | use vars qw(@ISA @EXPORT @EXPORT_OK @ALL_TESTS); |
59 | 59 | aol3 aol4 aol5 |
60 | 60 | aol6 neoplanet neoplanet2 |
61 | 61 | avantgo emacs mozilla |
62 | gecko r1 elinks | |
63 | netfront mobile_safari | |
62 | r1 elinks netfront | |
63 | mobile_safari | |
64 | ); | |
65 | ||
66 | # Engines | |
67 | push @ALL_TESTS, qw( | |
68 | gecko trident | |
64 | 69 | ); |
65 | 70 | |
66 | 71 | # Firefox variants |
697 | 702 | } |
698 | 703 | } |
699 | 704 | |
705 | # Engines | |
706 | ||
707 | $tests->{TRIDENT} = ( index( $ua, "trident/" ) != -1 ); | |
708 | ||
709 | $self->{engine_version} = $self->{gecko_version}; | |
710 | ||
711 | if ( $ua =~ /trident\/([\w\.\d]*)/ ) { | |
712 | $self->{engine_version} = $1; | |
713 | } | |
714 | ||
700 | 715 | # RealPlayer |
701 | 716 | $tests->{REALPLAYER} |
702 | 717 | = ( index( $ua, "(r1 " ) != -1 || index( $ua, "realplayer" ) != -1 ); |
931 | 946 | return 'Gecko'; |
932 | 947 | } |
933 | 948 | |
949 | if ( $self->trident ) { | |
950 | return 'Trident'; | |
951 | } | |
952 | ||
934 | 953 | if ( $self->ie ) { |
935 | 954 | return 'MSIE'; |
936 | 955 | } |
946 | 965 | |
947 | 966 | my ( $self, $check ) = _self_or_default( @_ ); |
948 | 967 | |
949 | if ( $self->gecko ) { | |
950 | return $self->gecko_version; | |
951 | } | |
952 | ||
953 | return; | |
968 | return $self->{engine_version}; | |
954 | 969 | |
955 | 970 | } |
956 | 971 | |
1133 | 1148 | |
1134 | 1149 | =head1 VERSION |
1135 | 1150 | |
1136 | version 1.32 | |
1151 | version 1.33 | |
1137 | 1152 | |
1138 | 1153 | =head1 SYNOPSIS |
1139 | 1154 | |
1306 | 1321 | |
1307 | 1322 | Returns one of the following: |
1308 | 1323 | |
1309 | Gecko, KHTML, MSIE, NetFront | |
1310 | ||
1311 | Returns undef if no string can be found. | |
1324 | Gecko, KHTML, Trident, MSIE, NetFront | |
1325 | ||
1326 | Returns C<undef> if no string can be found. | |
1312 | 1327 | |
1313 | 1328 | =head2 engine_version() |
1314 | 1329 | |
1315 | 1330 | Returns the version number of the rendering engine. Currently this only |
1316 | returns a version number for Gecko. Returns undef for all other engines. | |
1331 | returns a version number for Gecko and Trident. Returns C<undef> for all | |
1332 | other engines. | |
1317 | 1333 | |
1318 | 1334 | =head2 engine_major() |
1319 | 1335 | |
1320 | 1336 | Returns the major version number of the rendering engine. Currently this only |
1321 | returns a version number for Gecko. Returns undef for all other engines. | |
1337 | returns a version number for Gecko and Trident. Returns C<undef> for all | |
1338 | other engines. | |
1322 | 1339 | |
1323 | 1340 | =head2 engine_minor() |
1324 | 1341 | |
1325 | 1342 | Returns the minor version number of the rendering engine. Currently this only |
1326 | returns a version number for Gecko. Returns undef for all other engines. | |
1343 | returns a version number for Gecko and Trident. Returns C<undef> for all | |
1344 | other engines. | |
1327 | 1345 | |
1328 | 1346 | =head1 Detecting OS Platform and Version |
1329 | 1347 | |
1597 | 1615 | |
1598 | 1616 | =head1 TO DO |
1599 | 1617 | |
1600 | The _engine() method currently only handles Gecko. It needs to be expanded to | |
1601 | handle other rendering engines. | |
1618 | The C<_engine()> method currently only handles Gecko and Trident. It | |
1619 | needs to be expanded to handle other rendering engines. | |
1602 | 1620 | |
1603 | 1621 | POD coverage is also not 100%. |
1604 | 1622 |
359 | 359 | "winnt", |
360 | 360 | "win32", |
361 | 361 | "dotnet", |
362 | "trident", | |
362 | 363 | "ie", |
363 | 364 | "ie8", |
364 | 365 | "ie55up", |
372 | 373 | "public_major" : "8", |
373 | 374 | "public_minor" : "0", |
374 | 375 | "public_version" : "8.0", |
375 | "version" : "8.0" | |
376 | "version" : "8.0", | |
377 | "engine_major" : "4", | |
378 | "engine_minor" : "0", | |
379 | "engine_version" : "4.0", | |
380 | "engine_string" : "Trident" | |
376 | 381 | }, |
377 | 382 | "Mozilla/4.0 (PSP (PlayStation Portable); 2.00)" : { |
378 | 383 | "device_name" : "Sony PlayStation Portable", |
713 | 718 | "win32", |
714 | 719 | "winnt", |
715 | 720 | "dotnet", |
721 | "trident", | |
716 | 722 | "ie", |
717 | 723 | "ie7", |
718 | 724 | "ie4up", |
723 | 729 | "minor" : "0", |
724 | 730 | "no_match" : [ |
725 | 731 | "robot" |
726 | ] | |
732 | ], | |
733 | "engine_major" : "4", | |
734 | "engine_minor" : "0", | |
735 | "engine_version" : "4.0", | |
736 | "engine_string" : "Trident" | |
727 | 737 | }, |
728 | 738 | "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; FunWebProducts; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; SeekmoToolbar 4.8.4)" : { |
729 | 739 | "browser_string" : "MSIE", |
826 | 836 | "winnt", |
827 | 837 | "win32", |
828 | 838 | "dotnet", |
839 | "trident", | |
829 | 840 | "ie", |
830 | 841 | "ie4up", |
831 | 842 | "ie55up", |
835 | 846 | "os" : "WinXP", |
836 | 847 | "public_major" : "8", |
837 | 848 | "public_minor" : "0", |
838 | "public_version" : "8.0" | |
849 | "public_version" : "8.0", | |
850 | "engine_major" : "4", | |
851 | "engine_minor" : "0", | |
852 | "engine_version" : "4.0", | |
853 | "engine_string" : "Trident" | |
839 | 854 | }, |
840 | 855 | "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NETi CLR 3.0.30729; Media Center PC 6.0; MS-RTC LM 8; InfoPath.3; .NET4.0C) chromeframe/4.0" : { |
841 | 856 | "browser_string" : "MSIE", |
846 | 861 | "winnt", |
847 | 862 | "win32", |
848 | 863 | "dotnet", |
864 | "trident", | |
849 | 865 | "ie", |
850 | 866 | "ie8", |
851 | 867 | "ie55up", |
856 | 872 | "no_match" : null, |
857 | 873 | "os" : "Win7", |
858 | 874 | "other" : null, |
859 | "version" : "8.0" | |
875 | "version" : "8.0", | |
876 | "engine_major" : "4", | |
877 | "engine_minor" : "0", | |
878 | "engine_version" : "4.0", | |
879 | "engine_string" : "Trident" | |
860 | 880 | }, |
861 | 881 | "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)": { |
862 | 882 | "browser_string": "MSIE", |
866 | 886 | "win7", |
867 | 887 | "winnt", |
868 | 888 | "win32", |
889 | "trident", | |
869 | 890 | "ie", |
870 | 891 | "ie9", |
871 | 892 | "ie55up", |
876 | 897 | "no_match" : null, |
877 | 898 | "os" : "Win7", |
878 | 899 | "other" : null, |
879 | "version" : "9.0" | |
900 | "version" : "9.0", | |
901 | "engine_major" : "5", | |
902 | "engine_minor" : "0", | |
903 | "engine_version" : "5.0", | |
904 | "engine_string" : "Trident" | |
880 | 905 | }, |
881 | 906 | "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)": { |
882 | 907 | "browser_string": "MSIE", |
886 | 911 | "win7", |
887 | 912 | "winnt", |
888 | 913 | "win32", |
914 | "trident", | |
889 | 915 | "ie", |
890 | 916 | "ie10", |
891 | 917 | "ie55up", |
896 | 922 | "no_match" : null, |
897 | 923 | "os" : "Win7", |
898 | 924 | "other" : null, |
899 | "version" : "10.0" | |
925 | "version" : "10.0", | |
926 | "engine_major" : "6", | |
927 | "engine_minor" : "0", | |
928 | "engine_version" : "6.0", | |
929 | "engine_string" : "Trident" | |
900 | 930 | }, |
901 | 931 | "Mozilla/4.0 (compatible; Opera/3.0; Windows 4.10) 3.50" : { |
902 | 932 | "browser_string" : "Opera", |
2335 | 2365 | "RealPlayer SP, Windows 7: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; (R1 1.6))" : { |
2336 | 2366 | "browser_string" : "RealPlayer", |
2337 | 2367 | "country" : null, |
2338 | "engine_string" : "MSIE", | |
2368 | "engine_string" : "Trident", | |
2339 | 2369 | "language" : null, |
2340 | 2370 | "major" : null, |
2341 | 2371 | "match" : [ |
2345 | 2375 | "win32", |
2346 | 2376 | "dotnet", |
2347 | 2377 | "realplayer", |
2378 | "trident", | |
2348 | 2379 | "ie", |
2349 | 2380 | "ie7", |
2350 | 2381 | "ie55up", |
2691 | 2722 | "ie55up", |
2692 | 2723 | "ie5up", |
2693 | 2724 | "ie8", |
2725 | "trident", | |
2694 | 2726 | "win32", |
2695 | 2727 | "windows", |
2696 | 2728 | "winnt", |
2697 | 2729 | "winxp" |
2698 | 2730 | ] |
2731 | }, | |
2732 | "Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; HTC; T7575)" : { | |
2733 | "browser_string" : "MSIE", | |
2734 | "language" : null, | |
2735 | "match" : [ | |
2736 | "windows", | |
2737 | "winphone", | |
2738 | "mobile", | |
2739 | "trident", | |
2740 | "ie", | |
2741 | "ie4up", | |
2742 | "ie55up", | |
2743 | "ie5up", | |
2744 | "ie7" | |
2745 | ], | |
2746 | "os" : "WinPhone", | |
2747 | "os_string" : "Windows Phone", | |
2748 | "device_name" : "HTC T7575" | |
2749 | }, | |
2750 | "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T7575)" : { | |
2751 | "browser_string": "MSIE", | |
2752 | "language": null, | |
2753 | "match" : [ | |
2754 | "windows", | |
2755 | "winphone", | |
2756 | "mobile", | |
2757 | "trident", | |
2758 | "ie", | |
2759 | "ie4up", | |
2760 | "ie55up", | |
2761 | "ie5up", | |
2762 | "ie9" | |
2763 | ], | |
2764 | "os" : "WinPhone", | |
2765 | "os_string" : "Windows Phone", | |
2766 | "device_name" : "HTC T7575" | |
2699 | 2767 | }, |
2700 | 2768 | "Mozilla/4.0 (compatible; MSIE 8.0; AOL 9.6; AOLBuild 4340.168; Windows NT 5.1; Trident/4.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; IE0006_ver1;EN_US)" : { |
2701 | 2769 | "browser_string" : "AOL Browser", |
2702 | 2770 | "major" : "8", |
2703 | 2771 | "minor" : "0", |
2704 | 2772 | "language" : "EN", |
2705 | "engine_string" : "MSIE", | |
2773 | "engine_string" : "Trident", | |
2706 | 2774 | "match" : [ |
2707 | 2775 | "ie", |
2708 | 2776 | "ie4up", |
2710 | 2778 | "ie5up", |
2711 | 2779 | "ie8", |
2712 | 2780 | "aol", |
2781 | "trident", | |
2713 | 2782 | "win32", |
2714 | 2783 | "windows", |
2715 | 2784 | "winnt", |
2720 | 2789 | }, |
2721 | 2790 | "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; Crossrider130)" : { |
2722 | 2791 | "browser_string" : "MSIE", |
2723 | "engine_string" : "MSIE", | |
2792 | "engine_string" : "Trident", | |
2724 | 2793 | "match" : [ |
2725 | 2794 | "ie", |
2726 | 2795 | "ie4up", |
2727 | 2796 | "ie55up", |
2728 | 2797 | "ie5up", |
2729 | 2798 | "ie8", |
2799 | "trident", | |
2730 | 2800 | "win32", |
2731 | 2801 | "windows", |
2732 | 2802 | "winnt", |