#1004716 Icon=chromium-browser but /usr/share/pixmaps/chromium.png

Package:
chromium
Source:
chromium
Description:
web browser
Submitter:
"Trent W. Buck"
Date:
2023-08-23 09:09:03 UTC
Severity:
minor
Tags:
#1004716#5
Date:
2022-02-01 03:57:30 UTC
From:
To:
Chromium ships an icon called "chromium",

    /usr/share/pixmaps/chromium.png

But Chromium creates an XDG menu set to Icon=chromium-browser:

    root@tweak:~# cat /home/prisoners/p123/.local/share/desktop-directories/chrome-apps.directory
    [Desktop Entry]
    Version=1.0
    Type=Directory
    Name=Chromium Apps
    Icon=chromium-browser

To reproduce this the interactive recipe is:

  * open chromium
  * browse to https://example.edu/
  * click ⋮  > More Tools > Create shortcut > Create
  * open Applications menu in xfce4-panel (or other XDG menu client)

To reproduce this the automatic recipe is:

  cat <<-'EOF' >/etc/chromium/policies/managed/01-Startup.json
  {"WebAppInstallForceList": [{"url": "https://example.edu/", "create_desktop_shortcut": true}]}
  EOF
  chromium &
  sleep 60   # wait for chromium to start enforcing its group policy
  kill %1
  xfce4-popup-applicationsmenu  # open XFCE start menu

I'm not sure where in C++ this .directory is created.
This inconsistency also happens in e.g. WM_CLASS (seen in xprop).
Rather than trying to fix upstream to be consistent,
I think the easy answer is to just to make a symlink in here:

https://sources.debian.org/src/chromium/97.0.4692.71-0.1~deb11u1/debian/chromium.links/

A patch to this effect is attached.

#1004716#10
Date:
2022-09-05 19:40:42 UTC
From:
To:
On Tue, 01 Feb 2022 14:57:30 +1100 "Trent W. Buck"  <trentbuck@gmail.com> wrote:
 > Package: chromium
 > Version: 97.0.4692.99-1~deb11u2
 > Severity: minor
 > Tags: patch
 >
 > Chromium ships an icon called "chromium",
 >
 >     /usr/share/pixmaps/chromium.png
 >
 > But Chromium creates an XDG menu set to Icon=chromium-browser:
 >
 >     root@tweak:~# cat
/home/prisoners/p123/.local/share/desktop-directories/chrome-apps.directory
 >     [Desktop Entry]
 >     Version=1.0
 >     Type=Directory
 >     Name=Chromium Apps
 >     Icon=chromium-browser
 >
 > To reproduce this the interactive recipe is:
 >
 >   * open chromium
 >   * browse to https://example.edu/
 >   * click ⋮  > More Tools > Create shortcut > Create
 >   * open Applications menu in xfce4-panel (or other XDG menu client)
 >
 > To reproduce this the automatic recipe is:
 >
 >   cat <<-'EOF' >/etc/chromium/policies/managed/01-Startup.json
 >   {"WebAppInstallForceList": [{"url": "https://example.edu/",
"create_desktop_shortcut": true}]}
 >   EOF
 >   chromium &
 >   sleep 60   # wait for chromium to start enforcing its group policy
 >   kill %1
 >   xfce4-popup-applicationsmenu  # open XFCE start menu
 >
 > I'm not sure where in C++ this .directory is created.
 > This inconsistency also happens in e.g. WM_CLASS (seen in xprop).
 > Rather than trying to fix upstream to be consistent,
 > I think the easy answer is to just to make a symlink in here:
 >
 >
https://sources.debian.org/src/chromium/97.0.4692.71-0.1~deb11u1/debian/chromium.links/
 >
 > A patch to this effect is attached.
 >
 >
 > -- System Information:
 > Debian Release: 11.2
 >   APT prefers stable-updates
 >   APT policy: (500, 'stable-updates'), (500, 'stable-security'),
(500, 'proposed-updates'), (500, 'stable')
 > Architecture: amd64 (x86_64)
 >
 > Kernel: Linux 5.14.0-0.bpo.2-amd64 (SMP w/8 CPU threads)
 > Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE,
TAINT_UNSIGNED_MODULE
 > Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8),
LANGUAGE not set
 > Shell: /bin/sh linked to /usr/bin/dash
 > Init: systemd (via /run/systemd/system)
 > LSM: AppArmor: enabled
 >
 > Versions of packages chromium-common depends on:
 > ii  libc6       2.31-13+deb11u2


Does this still happen? I couldn't reproduce it on cinnamon in debian
stable with the latest version of chromium; at least, it shows the
correct icon.

#1004716#15
Date:
2023-08-23 09:01:26 UTC
From:
To:
I tested this again today and I realized I described the problem poorly.
Even I didn't understand what I wrote back then!

The launcher itself DOESN'T have a problem:
The problem is not this Icon= .desktop file:

    s@desktop-staff:~$ grep -r Icon= .local/share/applications/
    .local/share/applications/chrome-jjabmijabmlnfpabpjhhlghhlbjjfedc-Default.desktop:Icon=chrome-jjabmijabmlnfpabpjhhlghhlbjjfedc-Default

But the menu it creates has a problem:

    s@desktop-staff:~$ grep -r Icon= .local/share/desktop-directories/
    .local/share/desktop-directories/chrome-apps.directory:Icon=chromium-browser

I cannot explain why you do not see this on Cinnamon.

The icon is not created by chromium when it creates the .directory file:

    s@desktop-staff:~$ find ~ -xdev -name 'chromium-browser.*'
    [no matches]

And it is not created by Debian when chrome is installed:

    root@desktop-staff:~# find / -xdev -name 'chromium-browser.*'
    [no matches]

Maybe you do not see it on Cinnamon because you have a non-default icon theme installed and enabled?

For example these provide the icon but only when that theme is enabled:

    bash5$ apt-file search chromium-browser.
    deepin-icon-theme:        /usr/share/icons/Sea/apps/scalable/chromium-browser.svg
    deepin-icon-theme:        /usr/share/icons/bloom-classic/apps/48/chromium-browser.svg
    deepin-icon-theme:        /usr/share/icons/bloom/apps/48/chromium-browser.svg
    faenza-icon-theme:        /usr/share/icons/Faenza/apps/scalable/chromium-browser.svg
    mint-y-icons:             /usr/share/icons/Mint-Y/apps/48/chromium-browser.png
    moka-icon-theme:          /usr/share/icons/Moka/48x48/apps/chromium-browser.png
    numix-icon-theme-circle:  /usr/share/icons/Numix-Circle/48/apps/chromium-browser.svg
    obsidian-icon-theme:      /usr/share/icons/Obsidian/apps/48/chromium-browser.png
    paper-icon-theme:         /usr/share/icons/Paper/48x48/apps/chromium-browser.png
    papirus-icon-theme:       /usr/share/icons/Papirus/48x48/apps/chromium-browser.svg

My testing is (and was) using the default GTK3 icon theme, Adwaita.

As a test, I installed faenza-icon-theme and switched to it, and
having done so, the problem seems to go away.

In other words, this problem is still reproducible on Debian 12 with
Chromium and XFCE in their *default* configuration, but
not if you customize the icon theme.

Maybe this bug should actually be reported against whatever provides the "default" GTK icons -- Adwaita and High Contrast?
But they do not provide chromium.png either.  It is chromium itself which provides that:

    chromium: /usr/share/pixmaps/chromium.png
    chromium: /usr/share/icons/hicolor/128x128/apps/chromium.png
    chromium: /usr/share/icons/hicolor/64x64/apps/chromium.png
    chromium: /usr/share/icons/hicolor/24x24/apps/chromium.png
    chromium: /usr/share/icons/hicolor/32x32/apps/chromium.png
    chromium: /usr/share/icons/hicolor/16x16/apps/chromium.png
    chromium: /usr/share/icons/hicolor/48x48/apps/chromium.png
    chromium: /usr/share/icons/hicolor/256x256/apps/chromium.png

I think the short version is:

 1. chromium ships /usr/share/icon/*/chromium.png but NOT chromium-browser.png
 2. chromium creates chrome-apps.directory with Icon=chromium-browser NOT Icon=chromium
 3. some icon themes provide chromium-browser.png, but NOT all of them.
 4. Either

    a. chromium should ship chromium-browser.png -> chromium.png symlinks; or
    b. chromium should create Icon=chromium NOT Icon=chromium-browser.

The former should be pretty easy to add to

https://sources.debian.org/src/chromium/116.0.5845.96-2/debian/chromium.links/

The minimum patch is

    usr/share/icons/hicolor/48x48/apps/chromium.png usr/share/pixmaps/chromium.png
   +usr/share/icons/hicolor/48x48/apps/chromium.png usr/share/pixmaps/chromium-browser.png

A more complete patch would be

    usr/share/icons/hicolor/48x48/apps/chromium.png usr/share/pixmaps/chromium.png
   +usr/share/icons/hicolor/48x48/apps/chromium.png usr/share/pixmaps/chromium-browser.png
   +usr/share/icons/hicolor/128x128/apps/chromium.png usr/share/icons/hicolor/128x128/apps/chromium-browser.png
   +usr/share/icons/hicolor/64x64/apps/chromium.png usr/share/icons/hicolor/64x64/apps/chromium-browser.png
   +usr/share/icons/hicolor/24x24/apps/chromium.png usr/share/icons/hicolor/24x24/apps/chromium-browser.png
   +usr/share/icons/hicolor/32x32/apps/chromium.png usr/share/icons/hicolor/32x32/apps/chromium-browser.png
   +usr/share/icons/hicolor/16x16/apps/chromium.png usr/share/icons/hicolor/16x16/apps/chromium-browser.png
   +usr/share/icons/hicolor/48x48/apps/chromium.png usr/share/icons/hicolor/48x48/apps/chromium-browser.png
   +usr/share/icons/hicolor/256x256/apps/chromium.png usr/share/icons/hicolor/256x256/apps/chromium-browser.png