relative path resolution is incorrect in imported CSS files used in Gnome Shell themes

Bug #1457689 reported by Hoss
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
GNOME Shell
Confirmed
Medium
gnome-shell (Ubuntu)
Won't Fix
Undecided
Unassigned

Bug Description

The CSS engine being used by Gnome Shell v3.14.4 for dealing with themes seems to have broken behavior when:
 * CSS file X is imported by another CSS file Y
 * CSS file X uses relative paths via "url(...)" to refer to resources (such as images or svg files)

In this situation, syslog records continuous "Error opening file: No such file or directory" messages related to incorrect paths for the resources refered to by relative url. The CSS engine seems to be trying to resolve these relative paths with respect to the user's home directory, instead of relative to the path of the included CSS file where the the "url(...)" declaration exists (per sec 6.4 of the w3c REC-CSS1 specification: http://www.w3.org/TR/REC-CSS1/#url ).

NOTE: as far as I can tell, the theme still *looks* correct, suggesting that perhaps the CSS engine is in fact finding these resources in the correct paths, *after* logging these errors?

This bug did not exist in the previous version I upgraded from: Gnome Shell v3.4.1

I discovered this bug because I use a "custom" theme which includes the gnome-shell.css file from default theme and then overrides a few select properties -- as mentioned, this worked fine with Gnome Shell v3.4.1.

Steps to reproduce:

1) Install Ubuntu-Gnome 15.04 containing Gnome Shell 3.14.4

$ lsb_release -rd
Description: Ubuntu 15.04
Release: 15.04
$ uname -a
Linux tray 3.19.0-16-generic #16-Ubuntu SMP Thu Apr 30 16:09:58 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ gnome-shell --version
GNOME Shell 3.14.4
$ apt-cache policy gnome-shell
gnome-shell:
  Installed: 3.14.4-0ubuntu1
  Candidate: 3.14.4-0ubuntu1
  Version table:
 *** 3.14.4-0ubuntu1 0
        500 http://us.archive.ubuntu.com/ubuntu/ vivid/universe amd64 Packages
        100 /var/lib/dpkg/status

2) create a new user named "gnomeshellbug" and login as that user

3) create the following .themes directory for the gnomeshellbug user...

$ find /home/gnomeshellbug/.themes/
/home/gnomeshellbug/.themes/
/home/gnomeshellbug/.themes/BuggyCssImportShellTheme
/home/gnomeshellbug/.themes/BuggyCssImportShellTheme/gnome-shell
/home/gnomeshellbug/.themes/BuggyCssImportShellTheme/gnome-shell/gnome-shell.css
$ cat /home/gnomeshellbug/.themes/BuggyCssImportShellTheme/gnome-shell/gnome-shell.css
@import url("/usr/share/gnome-shell/theme/gnome-shell.css");

.panel-button {
    /* not so much damn padding */
    -natural-hpadding: 6px;
    -minimum-hpadding: 4px;
}

4) Note that the imported file /usr/share/gnome-shell/theme/gnome-shell.css mentioned above contains url refrences to files which exist in the same /usr/share/gnome-shell/theme/ directory...

$ grep message-tray-background.png /usr/share/gnome-shell/theme/gnome-shell.css
    background: #2e3436 url(message-tray-background.png);
$ ls -l /usr/share/gnome-shell/theme/message-tray-background.png
-rw-r--r-- 1 root root 19246 Mar 23 16:13 /usr/share/gnome-shell/theme/message-tray-background.png

5) Use the tweak-tool to enable the "User Themes" extension

6) Use the tweak-tool to select BuggyCssImportShellTheme as the Shell theme

7) observe log messages like these in syslog....

May 21 15:08:06 tray gnome-session[16490]: Gjs-Message: JS LOG: loading user theme: /home/gnomeshellbug/.themes/BuggyCssImportShellTheme/gnome-shell/gnome-shell.css
May 21 15:08:06 tray gnome-session[16490]: (gnome-shell:16670): GdkPixbuf-WARNING **: GdkPixbufLoader finalized without calling gdk_pixbuf_loader_close() - this is not allowed. You must explicitly end the data stream to the loader before dropping the last reference.
May 21 15:08:06 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/message-tray-background.png: Error opening file: No such file or directory
May 21 15:08:14 tray gnome-session[16490]: message repeated 4 times: [ (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/message-tray-background.png: Error opening file: No such file or directory]

8) As you interact with the UI -- clicking on the menu's for example -- note that many more similar error messages will start getting logged continuously...

May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-border.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-highlight-wide.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/message-tray-background.png: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-border.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-highlight-wide.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/message-tray-background.png: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-border.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-highlight-wide.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-border.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-highlight-wide.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-border.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-highlight-wide.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-border.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-highlight-wide.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-border.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-highlight-wide.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-border.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-highlight-wide.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-border.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-highlight-wide.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-border.svg: Error opening file: No such file or directory
May 21 15:08:20 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-highlight-wide.svg: Error opening file: No such file or directory
May 21 15:08:23 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-border.svg: Error opening file: No such file or directory
May 21 15:08:23 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-highlight-wide.svg: Error opening file: No such file or directory
May 21 15:08:23 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/message-tray-background.png: Error opening file: No such file or directory
May 21 15:08:25 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-border.svg: Error opening file: No such file or directory
May 21 15:08:25 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/panel-button-highlight-wide.svg: Error opening file: No such file or directory
May 21 15:08:26 tray gnome-session[16490]: (gnome-shell:16670): St-WARNING **: Failed to load /home/gnomeshellbug/message-tray-background.png: Error opening file: No such file or directory
...

Changed in gnome-shell:
importance: Unknown → Medium
status: Unknown → Confirmed
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Thank you for reporting this bug to Ubuntu.
Ubuntu 15.04 (vivid) reached end-of-life on February 4, 2016.

See this document for currently supported Ubuntu releases:
https://wiki.ubuntu.com/Releases

We appreciate that this bug may be old and you might not be interested in discussing it any more. But if you are then please upgrade to the latest Ubuntu version and re-test.

Changed in gnome-shell (Ubuntu):
status: New → Incomplete
Changed in gnome-shell (Ubuntu):
status: Incomplete → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.