From e52f82253e31ebe18569941587c3d7b68c95183f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Monlla=C3=B3?= Date: Thu, 22 Dec 2011 16:34:32 +0100 Subject: [PATCH] MDL-30876 filter_mediaplugin Wrapping the style sheets access with try & catch Conflicts: lib/javascript-static.js --- lib/javascript-static.js | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/lib/javascript-static.js b/lib/javascript-static.js index 5640b44247f..66af6218bd0 100644 --- a/lib/javascript-static.js +++ b/lib/javascript-static.js @@ -1771,15 +1771,27 @@ M.util.load_flowplayer = function() { var rule; for (var j=0; j < document.styleSheets.length; j++) { - if (typeof (document.styleSheets[j].rules) != 'undefined') { - var allrules = document.styleSheets[j].rules; - } else if (typeof (document.styleSheets[j].cssRules) != 'undefined') { - var allrules = document.styleSheets[j].cssRules; - } else { - // why?? + + // To avoid javascript security violation accessing cross domain stylesheets + var allrules = false; + try { + if (typeof (document.styleSheets[j].rules) != 'undefined') { + allrules = document.styleSheets[j].rules; + } else if (typeof (document.styleSheets[j].cssRules) != 'undefined') { + allrules = document.styleSheets[j].cssRules; + } else { + // why?? + continue; + } + } catch (e) { continue; } - if (!allrules) continue; + + // On cross domain style sheets Chrome V8 allows access to rules but returns null + if (!allrules) { + continue; + } + for(var i=0; i