summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/js/transcoder.js
diff options
context:
space:
mode:
authorNicolas Lempereur <nle@odoo.com>2018-02-12 12:46:00 +0100
committerNicolas Lempereur <nle@odoo.com>2018-02-12 18:21:00 +0100
commita6e66131ce5b676ccc888ec5b1011d0946dc3907 (patch)
tree859c80fb47d425f78e366dd3b0d872b01e4f370b /addons/web_editor/static/src/js/transcoder.js
parentce51ad7e69dbc1415eaf5f2ae846bbe89a37f69b (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.js17
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--) {