diff options
| author | Nicolas Lempereur <nle@odoo.com> | 2018-02-12 12:46:00 +0100 |
|---|---|---|
| committer | Nicolas Lempereur <nle@odoo.com> | 2018-02-12 18:21:00 +0100 |
| commit | a6e66131ce5b676ccc888ec5b1011d0946dc3907 (patch) | |
| tree | 859c80fb47d425f78e366dd3b0d872b01e4f370b /addons/web_editor/static/src/js/transcoder.js | |
| parent | ce51ad7e69dbc1415eaf5f2ae846bbe89a37f69b (diff) | |
[FIX] web_editor: error on cross domain stylesheet
On latest chromium (as of version 64), accessing rules of a stylesheet
is forbidden for cross-domain.
This commit catch and ignores the error when that happened.
chromium commit: https://chromium.googlesource.com/chromium/src/+/a4ebe08c91
opw-813480
opw-815860
closes #23009
Diffstat (limited to 'addons/web_editor/static/src/js/transcoder.js')
| -rw-r--r-- | addons/web_editor/static/src/js/transcoder.js | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/addons/web_editor/static/src/js/transcoder.js b/addons/web_editor/static/src/js/transcoder.js index b0831832dd6..5772db9bccc 100644 --- a/addons/web_editor/static/src/js/transcoder.js +++ b/addons/web_editor/static/src/js/transcoder.js @@ -13,17 +13,12 @@ var getMatchedCSSRules = function (a) { var sheets = document.styleSheets; for(var i = sheets.length-1; i >= 0 ; i--) { var rules; - if (sheets[i].hasOwnProperty('rules')) { - rules = sheets[i].rules; - } else { - //try...catch because Firefox not able to enumerate document.styleSheets[].cssRules[] for cross-domain stylesheets. - try { - rules = sheets[i].cssRules; - } catch(e) { - console.warn("Can't read the css rules of: " + sheets[i].href, e); - continue; - } - rules = sheets[i].cssRules; + // try...catch because browser may not able to enumerate rules for cross-domain sheets + try { + rules = sheets[i].rules || sheets[i].cssRules; + } catch (e) { + console.warn("Can't read the css rules of: " + sheets[i].href, e); + continue; } if (rules) { for(var r = rules.length-1; r >= 0; r--) { |
