loleaflet/js/global.js |   35 +++++++++++++++++++++++------------
 1 file changed, 23 insertions(+), 12 deletions(-)

New commits:
commit f8f6189bdd0c75b86d12268cfa97a7090ddbbe4d
Author:     mert <mert.tu...@collabora.com>
AuthorDate: Wed Jun 24 19:39:32 2020 +0300
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Mon Jun 29 08:33:27 2020 +0200

    Fix url errors on backgroundImage in css files for proxy
    
    Current replacing url strings method works fine,
    however, it does not cover all the rules
    for cases like when @media or @import are used.
    They have a subset of their own rules which must
    be covered as well.
    
    Change-Id: Ib10f7cc361aea5cd3b855f64e3a64566a6c51a12
    Signed-off-by: mert <mert.tu...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97071
    Tested-by: Jenkins
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Andras Timar <andras.ti...@collabora.com>

diff --git a/loleaflet/js/global.js b/loleaflet/js/global.js
index 3420b9c13..0ed660e69 100644
--- a/loleaflet/js/global.js
+++ b/loleaflet/js/global.js
@@ -571,20 +571,16 @@
        {
                // re-write relative URLs in CSS - somewhat grim.
                window.addEventListener('load', function() {
-                       var sheets = document.styleSheets;
-                       for (var i = 0; i < sheets.length; ++i) {
-                               var relBases = sheets[i].href.split('/');
-                               relBases.pop(); // bin last - css name.
-                               var replaceBase = 'url("' + relBases.join('/') 
+ '/images/';
+                       var replaceUrls = function(rules, replaceBase) {
+                               if (!rules)
+                                       return;
 
-                               var rules;
-                               try {
-                                       rules = sheets[i].cssRules || 
sheets[i].rules;
-                               } catch (err) {
-                                       console.log('Missing CSS from ' + 
sheets[i].href);
-                                       continue;
-                               }
                                for (var r = 0; r < rules.length; ++r) {
+                                       // check subset of rules like @media or 
@import
+                                       if (rules[r] && rules[r].type != 1) {
+                                               replaceUrls(rules[r].cssRules 
|| rules[r].rules, replaceBase);
+                                               continue;
+                                       }
                                        if (!rules[r] || !rules[r].style)
                                                continue;
                                        var img = 
rules[r].style.backgroundImage;
@@ -596,6 +592,21 @@
                                                        
img.replace('url("images/', replaceBase);
                                        }
                                }
+                       };
+                       var sheets = document.styleSheets;
+                       for (var i = 0; i < sheets.length; ++i) {
+                               var relBases = sheets[i].href.split('/');
+                               relBases.pop(); // bin last - css name.
+                               var replaceBase = 'url("' + relBases.join('/') 
+ '/images/';
+
+                               var rules;
+                               try {
+                                       rules = sheets[i].cssRules || 
sheets[i].rules;
+                               } catch (err) {
+                                       console.log('Missing CSS from ' + 
sheets[i].href);
+                                       continue;
+                               }
+                               replaceUrls(rules, replaceBase);
                        }
                }, false);
        }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to