Commit 2899c1de authored by timeless%mac.com's avatar timeless%mac.com

Bugzilla Bug 107672 Browser OS/Platform discrimination alg sucks

r=bbaetz, jake Windows XP references are #'d because of bug 92763
parent d5a7a714
...@@ -138,17 +138,41 @@ sub pickplatform { ...@@ -138,17 +138,41 @@ sub pickplatform {
} }
if ( Param('usebrowserinfo') ) { if ( Param('usebrowserinfo') ) {
for ($ENV{'HTTP_USER_AGENT'}) { for ($ENV{'HTTP_USER_AGENT'}) {
/Mozilla.*\(Windows/ && do {return "PC";}; #PowerPC
/Mozilla.*\(Macintosh/ && do {return "Macintosh";}; /\(.*PowerPC.*\)/i && do {return "Macintosh";};
/Mozilla.*\(Win/ && do {return "PC";}; /\(.*PPC.*\)/ && do {return "Macintosh";};
/Mozilla.*Windows NT/ && do {return "PC";}; /\(.*AIX.*\)/ && do {return "Macintosh";};
/Mozilla.*Linux.*86/ && do {return "PC";}; #Intel x86
/Mozilla.*BSD.*86/ && do {return "PC";}; /\(.*[ix0-9]86.*\)/ && do {return "PC";};
/Mozilla.*Linux.*alpha/ && do {return "DEC";}; #Versions of Windows that only run on Intel x86
/Mozilla.*OSF/ && do {return "DEC";}; /\(.*Windows 9.*\)/ && do {return "PC";};
/Mozilla.*HP-UX/ && do {return "HP";}; /\(.*Win9.*\)/ && do {return "PC";};
/Mozilla.*IRIX/ && do {return "SGI";}; /\(.*Windows 3.*\)/ && do {return "PC";};
/Mozilla.*(SunOS|Solaris)/ && do {return "Sun";}; /\(.*Win16.*\)/ && do {return "PC";};
#Sparc
/\(.*sparc.*\)/ && do {return "Sun";};
/\(.*sun4.*\)/ && do {return "Sun";};
#Alpha
/\(.*Alpha.*\)/i && do {return "DEC";};
#MIPS
/\(.*IRIX.*\)/i && do {return "SGI";};
/\(.*MIPS.*\)/i && do {return "SGI";};
#68k
/\(.*68K.*\)/ && do {return "Macintosh";};
/\(.*680[x0]0.*\)/ && do {return "Macintosh";};
#ARM
# /\(.*ARM.*\) && do {return "ARM";};
#Stereotypical and broken
/\(.*Macintosh.*\)/ && do {return "Macintosh";};
/\(.*Mac OS [89].*\)/ && do {return "Macintosh";};
/\(Win.*\)/ && do {return "PC";};
/\(.*Windows NT.*\)/ && do {return "PC";};
/\(.*OSF.*\)/ && do {return "DEC";};
/\(.*HP-?UX.*\)/i && do {return "HP";};
/\(.*IRIX.*\)/i && do {return "SGI";};
/\(.*(SunOS|Solaris).*\)/ && do {return "Sun";};
#Braindead old browsers who didn't follow convention:
/Amiga/ && do {return "Macintosh";};
} }
} }
# default # default
...@@ -197,24 +221,41 @@ sub pickos { ...@@ -197,24 +221,41 @@ sub pickos {
} }
if ( Param('usebrowserinfo') ) { if ( Param('usebrowserinfo') ) {
for ($ENV{'HTTP_USER_AGENT'}) { for ($ENV{'HTTP_USER_AGENT'}) {
/Mozilla.*\(.*;.*; IRIX.*\)/ && do {return "IRIX";}; /\(.*IRIX.*\)/ && do {return "IRIX";};
/Mozilla.*\(.*;.*; 32bit.*\)/ && do {return "Windows 95";}; /\(.*OSF.*\)/ && do {return "OSF/1";};
/Mozilla.*\(.*;.*; 16bit.*\)/ && do {return "Windows 3.1";}; /\(.*Linux.*\)/ && do {return "Linux";};
/Mozilla.*\(.*;.*; 68K.*\)/ && do {return "Mac System 8.5";}; /\(.*SunOS 5.*\)/ && do {return "Solaris";};
/Mozilla.*\(.*;.*; PPC.*\)/ && do {return "Mac System 8.5";}; /\(.*SunOS.*\)/ && do {return "SunOS";};
/Mozilla.*\(.*;.*; OSF.*\)/ && do {return "OSF/1";}; /\(.*HP-?UX.*\)/ && do {return "HP-UX";};
/Mozilla.*\(.*;.*; Linux.*\)/ && do {return "Linux";}; /\(.*BSD\/OS.*\)/ && do {return "BSDI";};
/Mozilla.*\(.*;.*; SunOS 5.*\)/ && do {return "Solaris";}; /\(.*FreeBSD.*\)/ && do {return "FreeBSD";};
/Mozilla.*\(.*;.*; SunOS.*\)/ && do {return "SunOS";}; /\(.*OpenBSD.*\)/ && do {return "OpenBSD";};
/Mozilla.*\(.*;.*; HP-UX.*\)/ && do {return "HP-UX";}; /\(.*NetBSD.*\)/ && do {return "NetBSD";};
/Mozilla.*\(.*;.*; BSD\/OS.*\)/ && do {return "BSDI";}; /\(.*BeOS.*\)/ && do {return "BeOS";};
/Mozilla.*\(.*;.*; FreeBSD.*\)/ && do {return "FreeBSD";}; /\(.*AIX.*\)/ && do {return "AIX";};
/Mozilla.*\(Win16.*\)/ && do {return "Windows 3.1";}; /\(.*IBM.*\)/ && do {return "OS/2";};
/Mozilla.*\(.*Win95.*\)/ && do {return "Windows 95";}; /\(.*QNX.*\)/ && do {return "Neutrino";};
/Mozilla.*\(.*Win98.*\)/ && do {return "Windows 98";}; /\(.*VMS.*\)/ && do {return "OpenVMS";};
/Mozilla.*\(.*WinNT.*\)/ && do {return "Windows NT";}; # /\(.*Windows XP.*\)/ && do {return "Windows XP";};
/Mozilla.*Windows NT 5.*\)/ && do {return "Windows 2000";}; # /\(.*Windows NT 5\.1.*\)/ && do {return "Windows XP";};
/Mozilla.*\(Windows.*NT/ && do {return "Windows NT";}; /\(.*Windows 2000.*\)/ && do {return "Windows 2000";};
/Windows NT 5.*\)/ && do {return "Windows 2000";};
/\(Windows.*NT/ && do {return "Windows NT";};
/\(.*Win.*98.*4\.9.*\)/ && do {return "Windows ME";};
/\(.*Win98.*\)/ && do {return "Windows 98";};
/\(.*Win95.*\)/ && do {return "Windows 95";};
/\(.*Win16.*\)/ && do {return "Windows 3.1";};
/\(.*WinNT.*\)/ && do {return "Windows NT";};
/\(.*32bit.*\)/ && do {return "Windows 95";};
/\(.*16bit.*\)/ && do {return "Windows 3.1";};
/\(.*Macintosh.*\)/ && do {return "Macintosh";};
/\(.*Mac OS 9.*\)/ && do {return "Mac System 9.x";};
/\(.*Mac OS 8\.6.*\)/ && do {return "Mac System 8.6";};
/\(.*Mac OS 8.*\)/ && do {return "Mac System 8.5";};
#evil
/Amiga/i && do {return "other";};
/\(.*68K.*\)/ && do {return "Mac System 8.5";};
/\(.*PPC.*\)/ && do {return "Mac System 8.5";};
} }
} }
# default # default
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment