allowedMimeRegExp with dom objects

Ask for help about NoScript, no registration needed to post
79c36abbb2587a1bfd2a
Posts: 5
Joined: Sun Feb 23, 2014 1:08 pm

allowedMimeRegExp with dom objects

Post by 79c36abbb2587a1bfd2a »

pre: noscript 2.6.8.14, greasemonkey 1.15beta2

what about this one? in case of gmail compact noscript interprets next code (notification sound) as blocked object, with <AUDIO> tag and audio/ogg@data:audio/ogg;base64 la-la-la url

Code: Select all

160:    , "audio.js": 'var AUDIO={"gc-mail.ogg":"data:audio/ogg;base64,T2dn ... SOYHWAA4="};'
167:    , "js/chrome.js": 
        
        ... function getChromeURL(a)

        ...
        if (!CHROME || a.match(/\\/favicons\\ //)) 
            {
                var b = a.split("/");
                try {
                    if (AUDIO && a.match(/\\.(?:mp3|ogg|wav)$/)) {
                        if (AUDIO[b[b.length - 1]]) {
                            return AUDIO[b[b.length - 1]]
                        }
                    }
                } catch (e) {} 
        ...
172:  , "js/class/gmailcompact.class.js":

        ... $.audioMail=$.createDom("audio",{id:"gc:mailsound",src:getChromeURL("/audio/gc-mail.ogg")}); ...
    
        ...
        function mailSoundPlaying(a) {
            a = a || $.win.event
        }

        function mailSoundCompleted(a) {
            a = a || $.win.event;
            this.pause();
            this.currentTime = 0
        }

        function prepareSound() {
            $.gmail.body.appendChild($.audioMail);
            $.audioMail.addEventListener("playing", mailSoundPlaying, false);
            $.audioMail.addEventListener("ended", mailSoundCompleted, false)
        }
        ...
        function titleChanged(a) {
            a = a || $.win.event;
            var b = a.target;
            if ($.settings.faviconchat) {
                var c = false;
                var d = b.data || b.text || b.textContent;
                for (var i = 0; i < SAYS.length; i++) {
                    if (d.indexOf(SAYS[i]) == (d.length - SAYS[i].length)) {
                        if ($.hangoutSays.indexOf(d) == -1) {
                            $.hangoutSays.push(d)
                        }
                        generateFavicon(0, "chat", $.settings.usechaticon);
                        c = true;
                        break
                    }
                }
                if (!c) {
                    if ($.settings.faviconmail) {
                        generateFavicon($.gmail.menuLinksCount["#inbox"], "mail", $.settings.usemailicon)
                    } else {
                        setFavicon($.defaultFavicon)
                    }
                }
            }
        }

        function updateMenuLinks(a) {
            setAbsoluteMenuLinkNames([a]);
            var b = fetchUnreadMails(a);
            var c = a.href.substr(a.href.indexOf("#"));
            if ($.gmail.menuLinksCount[c] != b || !$.gmail.menuLinksCount[c]) {
                switch (c) {
                case "#inbox":
                    if (a.hasClass("removeMe")) {
                        b = $.gmail.menuLinksCount[c];
                        a.parentNode.removeNode()
                    }
                    if ($.settings.faviconmail) {
                        generateFavicon(b, "mail", $.settings.usemailicon)
                    } else {
                        setFavicon($.defaultFavicon)
                    }
                    if ($.settings.soundmail && $.gmail.menuLinksCount[c] < b) {
                        if (!$.settings.dontdisturbmail.now || !currentTimeIsBetween($.settings.dontdisturbmail)) {
                            if ($.audioMail.paused) {
                                $.audioMail.play()
                            }
                        }
                    }
                    break;
                case "#drafts":
                    break;
                case "#spam":
                    break
                }
                $.gmail.menuLinksCount[c] = b
            }
        }
        ...

Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.12
79c36abbb2587a1bfd2a
Posts: 5
Joined: Sun Feb 23, 2014 1:08 pm

Re: allowedMimeRegExp with dom objects

Post by 79c36abbb2587a1bfd2a »

huh, seems address field is just empty that's why simple "audio/ogg@[\W]{0,0}" works fine... but! giorgio, can you add in future releases - when current hell will normalise - a variable for temporarily allowed objects (like noscript.temp\noscript.gtemp)?
Post Reply