New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 854911 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 19
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Some Crostini apps don't get shelf items or don't properly get matched to desktop files

Project Member Reported by timloh@chromium.org, Jun 21 2018

Issue description

I installed a variety of Crostini apps to test shelf integration. Below is a (obviously incomplete) list of apps which didn't integrate with the shelf properly.

The following apps open windows but don't get shelf items for them:
- gnome-calculator
- abiword
- gnumeric
- evince

The following apps get shelf items but are not matched to the desktop file:
- okular
- musescore
- octave
- calibre ebook viewer (Calibre installs a few desktop files, including one titled "E-Book Viewer" -- opening this matches against Calibre)
- konqueror
- amarok

Currently these apps result in the spinner not being dismissed (it can be manually dismissed). The other effect is that windows will not get associated with their pins, and you will not be able to pin these from the shelf.

I haven't dug into these so I don't know whether it's the fault of Chrome or the apps themselves, but we should probably have a look when there's time.
 

Comment 1 by hcindyl@google.com, Jun 21 2018

Add a few more apps with mismatched shelf items

nautilus
xnview (https://www.xnview.com/en/)

The spinner bug started with the latest Chrome 69 update 69.0.3464.0 (Official Build) dev (64-bit)

Comment 2 by vapier@chromium.org, Jun 21 2018

Components: OS>Systems>Containers
Cc: timloh@chromium.org jkardatzke@chromium.org
Labels: -Pri-2 M-69 Pri-1
Owner: timzheng@chromium.org
Status: Assigned (was: Untriaged)
Status: Started (was: Assigned)
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/988359198bd6731d2a1461bcbb8e1564b0faec4f

commit 988359198bd6731d2a1461bcbb8e1564b0faec4f
Author: Tim Zheng <timzheng@google.com>
Date: Wed Jun 27 22:46:17 2018

Use startup ID first to get Crostini app ID.

This change stops quiting simply because window_app_id doesn't exists.
When startup_id exists, we prefer to use it to find the app_id from the
registry.

This change fixes the shelf integration for the following apps.
gnome-calculator
abiword
gnumeric

BUG= chromium:854911 
TEST=Manually tested on an eve device; Pass unit tests.

Change-Id: I2d1c76b2570c5df01851c9dae9a78135dce92802
Reviewed-on: https://chromium-review.googlesource.com/1115965
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Reviewed-by: Timothy Loh <timloh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570917}
[modify] https://crrev.com/988359198bd6731d2a1461bcbb8e1564b0faec4f/chrome/browser/chromeos/crostini/crostini_registry_service.cc
[modify] https://crrev.com/988359198bd6731d2a1461bcbb8e1564b0faec4f/chrome/browser/chromeos/crostini/crostini_registry_service.h
[modify] https://crrev.com/988359198bd6731d2a1461bcbb8e1564b0faec4f/chrome/browser/chromeos/crostini/crostini_registry_service_unittest.cc
[modify] https://crrev.com/988359198bd6731d2a1461bcbb8e1564b0faec4f/chrome/browser/ui/ash/launcher/crostini_app_window_shelf_controller.cc

I investigated the rest of the list. My note on them here.

evince
It is not added to the launcher. It can be launched from the command line. On the window there is no application_id or startup_id set.

octave
Startup notification is not implemented.
There is application_id which is org.chromium.termina.wmclass.Octave-gui.
Desktop file ID is www.octave.org-octave.
App name is "GNU Octave" which also mismatches "Octave-gui".

okular
Startup notification is not implemented.
Window application_id is org.chromium.termina.wmclass.Okular.
There are several apps installed all with the same app name "Okular". Their desktop file IDs are kde4-okularApplication_pdf, kde4-okularApplication_fb, etc.

musescore
Startup notification is not implemented.
Window application_id is org.chromium.termina.wmclass.MuseScore2.
Desktop file ID is mscore.
App name is "MuseScore 2", which mistmatches the window application_id by a white space.

calibre
Startup notification is not implemented.
Window application_id is org.chromium.termina.wmclass.calibre.
Multiple apps are installed. Desktop file IDs are lrfviewer and ebook-viewer.
App names are "E-Book Viewer" and "Document Viewer".

konqueror
Startup notification is not implemented.
Multiple apps installed.
Window application_id org.chromium.termina.wmclass.Konqueror and startup_id 0.
Desktop file ID kde4-kongbrwoser.
App name Kongqueror. 

amarok
Startup notification is not implemented.
Multiple apps installed.
Window application_id org.chromium.termina.wmclass.Amarok startup_id 0.
While we can try to fix this issue for more apps, I think the more urgent piece is to deal with the spinners. Maybe we can stop all Crostini spinners once one Crostini app window is started.

Tim Loh, are you working on the spinner fix? Is this something easy to do?
Cc: rjwright@chromium.org
Thanks for investigating! cc-ing Renee who is looking at the spinners now. I think on the thread we ended up decided that the spinners would go away when the container had started, so this won't be an issue.
I tested the above listed apps on my corp gLinux workstation. The apps mostly have newer versions on corp workstation. On corp workstation these apps are supported by the UI with the exception that 2 of them are not added to app list.

octave, corp version 4.2.2-4, Crostini version 4.0.3-3.
evince, corp version 3.26.0-3, Crostini version 3.22.1-3+deb9u1.
okular, corp version 4:16.08.2-1+b1, Crostini version 4:16.08.2-1+b1. Same version. Corp workstation doesn't list app in "Menu" launcher.
musescore, corp version 2.1.0+dfsg1-0.2, Crostini version 2.0.3+dfsg1-2+b1.
calibre, corp version 3.19.0+dfsg-1, Crostini version 2.75.1+dfsg-1.
konqueror, corp version 4:16.08.3-1, Crostini version 4:16.08.3-1. Samve version. Corp workstation doesn't list app in UI launcher.
amarok, corp version 2.8.0-8, Crostini version 2.8.0-8. Same version.
I think it's fair to ignore any applications that don't work properly in other standard Linux desktop environments (like our corp workstations).
Agreed that we don't need to worry about apps that aren't picked up by standard Linux desktop environments.
Cc: reve...@chromium.org
I plan to implement some kind of fuzzy matching using the wmclass against the installed app desktop file ID or names.

David, do you think there is some easy sommelier fix for this? Please see comment #6 for the detailed app list.

I agree with #10. don't worry about apps that fail on other linux systems. for the ones that work on gLinux but not in Crostini, what does the launcher do differently there?
Project Member

Comment 14 by bugdroid1@chromium.org, Jul 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/24a82a300dc26c359c878fa08fa03e341e3233f2

commit 24a82a300dc26c359c878fa08fa03e341e3233f2
Author: Tim Zheng <timzheng@google.com>
Date: Fri Jul 13 02:14:33 2018

Remove spinners when app fails to identify.

This change removes from the shelf all Crostini spinners when one
Crostini app is starting in a window but fails to uniquely identify app
ID.

BUG= chromium:854911 
TEST=Manually tested on an even device.

Change-Id: I2924e33ac5f0e0b0bd34d4ed05307d3aa0512cdf
Reviewed-on: https://chromium-review.googlesource.com/1135837
Reviewed-by: Nicholas Verne <nverne@chromium.org>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574818}
[modify] https://crrev.com/24a82a300dc26c359c878fa08fa03e341e3233f2/chrome/browser/chromeos/crostini/crostini_registry_service.cc
[modify] https://crrev.com/24a82a300dc26c359c878fa08fa03e341e3233f2/chrome/browser/chromeos/crostini/crostini_registry_service.h
[modify] https://crrev.com/24a82a300dc26c359c878fa08fa03e341e3233f2/chrome/browser/ui/ash/launcher/crostini_app_window_shelf_controller.cc
[modify] https://crrev.com/24a82a300dc26c359c878fa08fa03e341e3233f2/chrome/browser/ui/ash/launcher/shelf_spinner_controller.cc
[modify] https://crrev.com/24a82a300dc26c359c878fa08fa03e341e3233f2/chrome/browser/ui/ash/launcher/shelf_spinner_controller.h

Project Member

Comment 15 by bugdroid1@chromium.org, Jul 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/191e0f8228217e52b3cdec31c2e5c23a16d749cc

commit 191e0f8228217e52b3cdec31c2e5c23a16d749cc
Author: Tim Zheng <timzheng@google.com>
Date: Mon Jul 16 17:37:57 2018

Skip no display apps when matching with name.

Some Linux apps create multiple desktop files that invoke the same
binary and use the same icon but with different parameters. They have
one main desktop file that doesn't include 'NoDisplay=true'.

This change skip over the apps with no display set to true when matching
using the app names.

This change fixes the shelf integration for the following apps.
okular
calibre
konqueror
amarok

BUG= chromium:854911 
TEST=Manually tested on an eve device; Unit test cases added.

Change-Id: I8615b0be08139243915f7e21f71fe61b2023b5a7
Reviewed-on: https://chromium-review.googlesource.com/1137331
Reviewed-by: Timothy Loh <timloh@chromium.org>
Reviewed-by: Nicholas Verne <nverne@chromium.org>
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575330}
[modify] https://crrev.com/191e0f8228217e52b3cdec31c2e5c23a16d749cc/chrome/browser/chromeos/crostini/crostini_registry_service.cc
[modify] https://crrev.com/191e0f8228217e52b3cdec31c2e5c23a16d749cc/chrome/browser/chromeos/crostini/crostini_registry_service_unittest.cc
[modify] https://crrev.com/191e0f8228217e52b3cdec31c2e5c23a16d749cc/chrome/browser/chromeos/crostini/crostini_test_helper.cc
[modify] https://crrev.com/191e0f8228217e52b3cdec31c2e5c23a16d749cc/chrome/browser/chromeos/crostini/crostini_test_helper.h

To follow up on the question from comment 13, what does the Cinnamon launcher do differently?
They get the pid of the program from the window and use it to find the app. That's something for X11.
https://github.com/linuxmint/Cinnamon/blob/master/src/cinnamon-window-tracker.c
Project Member

Comment 17 by bugdroid1@chromium.org, Jul 18

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7dbb56c0796b3fb3b3976a562d88e6d597610914

commit 7dbb56c0796b3fb3b3976a562d88e6d597610914
Author: Tim Zheng <timzheng@google.com>
Date: Wed Jul 18 18:29:53 2018

Hard code some Crostini app wmclass to name map.

Unfortunately some Linux apps don't abide to the desktop specification.
This change add some hard coded mapping so that those apps can be
identified.

BUG= chromium:854911 
TEST=Manually tested on a eve device.

Change-Id: Id53c889d46337766b77802682d964d5e2bda85dd
Reviewed-on: https://chromium-review.googlesource.com/1141055
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Nicholas Verne <nverne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576143}
[modify] https://crrev.com/7dbb56c0796b3fb3b3976a562d88e6d597610914/chrome/browser/chromeos/crostini/crostini_registry_service.cc

Project Member

Comment 18 by bugdroid1@chromium.org, Jul 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9a34d2ac18b5cca293493fa7a23d4b851adde1cc

commit 9a34d2ac18b5cca293493fa7a23d4b851adde1cc
Author: Tim Zheng <timzheng@google.com>
Date: Thu Jul 19 17:01:07 2018

Igonore spaces in Crostini app names.

This change ignores white space in Crostini app names when trying to
find the app ID with the application_id from the aura window.

This fixes the identity matching for MuseScore 2 app.

BUG= chromium:854911 
TEST=Manually tested on an eve device.

Change-Id: I8a1654edbca90f2a1ddab78b6f0c3eaa3299d224
Reviewed-on: https://chromium-review.googlesource.com/1140792
Reviewed-by: Nicholas Verne <nverne@chromium.org>
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576530}
[modify] https://crrev.com/9a34d2ac18b5cca293493fa7a23d4b851adde1cc/chrome/browser/chromeos/crostini/crostini_registry_service.cc

Status: Fixed (was: Started)

Sign in to add a comment