Some Crostini apps don't get shelf items or don't properly get matched to desktop files |
|||||||
Issue descriptionI 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.
,
Jun 21 2018
,
Jun 25 2018
,
Jun 25 2018
,
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
,
Jul 3
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.
,
Jul 3
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?
,
Jul 4
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.
,
Jul 9
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.
,
Jul 9
I think it's fair to ignore any applications that don't work properly in other standard Linux desktop environments (like our corp workstations).
,
Jul 10
Agreed that we don't need to worry about apps that aren't picked up by standard Linux desktop environments.
,
Jul 10
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.
,
Jul 10
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?
,
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
,
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
,
Jul 16
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
,
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
,
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
,
Jul 19
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by hcindyl@google.com
, Jun 21 2018