Make WordPress Core

Ticket #6979: flash10.diff

File flash10.diff, 3.8 KB (added by ryan, 16 years ago)

Disable flash uploader if flash 10

  • trunk/wp-admin/includes/media.php

     
    969969<script type="text/javascript">
    970970<!--
     971var FlashDetect = new function(){
     972        var self = this;
     973        self.installed = false;
     974        self.raw = "";
     975        self.major = -1;
     976        self.minor = -1;
     977        self.revision = -1;
     978        self.revisionStr = "";
     979        var activeXDetectRules = [
     980                {
     981                        "name":"ShockwaveFlash.ShockwaveFlash.7",
     982                        "version":function(obj){
     983                                return getActiveXVersion(obj);
     984                        }
     985                },
     986                {
     987                        "name":"ShockwaveFlash.ShockwaveFlash.6",
     988                        "version":function(obj){
     989                                var version = "6,0,21";
     990                                try{
     991                                        obj.AllowScriptAccess = "always";
     992                                        version = getActiveXVersion(obj);
     993                                }catch(err){}
     994                                return version;
     995                        }
     996                },
     997                {
     998                        "name":"ShockwaveFlash.ShockwaveFlash",
     999                        "version":function(obj){
     1000                                return getActiveXVersion(obj);
     1001                        }
     1002                }
     1003        ];
     1004        var getActiveXVersion = function(activeXObj){
     1005                var version = -1;
     1006                try{
     1007                        version = activeXObj.GetVariable("$version");
     1008                }catch(err){}
     1009                return version;
     1010        };
     1011        var getActiveXObject = function(name){
     1012                var obj = -1;
     1013                try{
     1014                        obj = new ActiveXObject(name);
     1015                }catch(err){}
     1016                return obj;
     1017        };
     1018        var parseActiveXVersion = function(str){
     1019                var versionArray = str.split(",");//replace with regex
     1020                return {
     1021                        "raw":str,
     1022                        "major":parseInt(versionArray[0].split(" ")[1], 10),
     1023                        "minor":parseInt(versionArray[1], 10),
     1024                        "revision":parseInt(versionArray[2], 10),
     1025                        "revisionStr":versionArray[2]
     1026                };
     1027        };
     1028        var parseStandardVersion = function(str){
     1029                var descParts = str.split(/ +/);
     1030                var majorMinor = descParts[2].split(/\./);
     1031                var revisionStr = descParts[3];
     1032                return {
     1033                        "raw":str,
     1034                        "major":parseInt(majorMinor[0], 10),
     1035                        "minor":parseInt(majorMinor[1], 10),
     1036                        "revisionStr":revisionStr,
     1037                        "revision":parseRevisionStrToInt(revisionStr)
     1038                };
     1039        };
     1040        var parseRevisionStrToInt = function(str){
     1041                return parseInt(str.replace(/[a-zA-Z]/g, ""), 10) || self.revision;
     1042        };
     1043        self.majorAtLeast = function(version){
     1044                return self.major >= version;
     1045        };
     1046        self.FlashDetect = function(){
     1047                if(navigator.plugins && navigator.plugins.length>0){
     1048                        var type = 'application/x-shockwave-flash';
     1049                        var mimeTypes = navigator.mimeTypes;
     1050                        if(mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description){
     1051                                var version = mimeTypes[type].enabledPlugin.description;
     1052                                var versionObj = parseStandardVersion(version);
     1053                                self.raw = versionObj.raw;
     1054                                self.major = versionObj.major;
     1055                                self.minor = versionObj.minor;
     1056                                self.revisionStr = versionObj.revisionStr;
     1057                                self.revision = versionObj.revision;
     1058                                self.installed = true;
     1059                        }
     1060                }else if(navigator.appVersion.indexOf("Mac")==-1 && window.execScript){
     1061                        var version = -1;
     1062                        for(var i=0; i<activeXDetectRules.length && version==-1; i++){
     1063                                var obj = getActiveXObject(activeXDetectRules[i].name);
     1064                                if(typeof obj == "object"){
     1065                                        self.installed = true;
     1066                                        version = activeXDetectRules[i].version(obj);
     1067                                        if(version!=-1){
     1068                                                var versionObj = parseActiveXVersion(version);
     1069                                                self.raw = versionObj.raw;
     1070                                                self.major = versionObj.major;
     1071                                                self.minor = versionObj.minor;
     1072                                                self.revision = versionObj.revision;
     1073                                                self.revisionStr = versionObj.revisionStr;
     1074                                        }
     1075                                }
     1076                        }
     1077                }
     1078        }();
     1079};
     1080FlashDetect.release = "1.0.3";
     1081
     1082
     1083
     1084if( FlashDetect.installed && FlashDetect.major < 10 ) {
     1085
    9711086jQuery(function($){
    9721087        swfu = new SWFUpload({
     
    10001115        $("#flash-browse-button").bind( "click", function(){swfu.selectFiles();});
    10011116});
     1117
     1118} // Flash detect condition
    10021119//-->
    10031120</script>