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

Issue 839242 link

Starred by 15 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Feature



Sign in to add a comment

Create HiDPI UI toggle

Project Member Reported by tbuck...@chromium.org, May 3 2018

Issue description

Users should be able to choose per-app whether to use HiDPI. This should be via a control in the right-click menu of the Launcher. I'll confirm with UI leads.

By default, only a set of whitelisted applications will use HiDPI (because an app being blurry is more usable than an app that is super tiny).
 
Components: OS>Systems>Containers
Components: OS>Systems>Containers
Labels: Hotlist-Crostini-UI

Comment 4 by vapier@chromium.org, May 23 2018

Labels: -Restrict-View-Google
Labels: -M-68 M-70
Owner: timzheng@chromium.org
Status: Started (was: Assigned)
Labels: -M-70 M-71
Project Member

Comment 9 by bugdroid1@chromium.org, Sep 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/containers/cros-container-guest-tools/+/916c18c19d4ecb6ef09608249f8db221fa850d43

commit 916c18c19d4ecb6ef09608249f8db221fa850d43
Author: Tim Zheng <timzheng@google.com>
Date: Sun Sep 16 11:04:32 2018

Add low density instances of sommelier.

This change add a low density instance of sommelier and a low density
instance of sommelier X11.

They are used to support scaling up Crostini app windows.

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

Change-Id: Id0bcb09e784c52c7e18ee1ec460a24dfae951cc5
Reviewed-on: https://chromium-review.googlesource.com/1226150
Commit-Ready: Tim Zheng <timzheng@chromium.org>
Tested-by: Tim Zheng <timzheng@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Stephen Barber <smbarber@chromium.org>

[modify] https://crrev.com/916c18c19d4ecb6ef09608249f8db221fa850d43/cros-sommelier-config/prerm
[add] https://crrev.com/916c18c19d4ecb6ef09608249f8db221fa850d43/cros-sommelier-config/cros-sommelier-low-density-override.conf
[modify] https://crrev.com/916c18c19d4ecb6ef09608249f8db221fa850d43/cros-sommelier/BUILD
[modify] https://crrev.com/916c18c19d4ecb6ef09608249f8db221fa850d43/cros-sommelier/sommelier-x@.service
[modify] https://crrev.com/916c18c19d4ecb6ef09608249f8db221fa850d43/cros-sommelier/sommelier.sh
[modify] https://crrev.com/916c18c19d4ecb6ef09608249f8db221fa850d43/cros-sommelier-config/postinst
[modify] https://crrev.com/916c18c19d4ecb6ef09608249f8db221fa850d43/cros-sommelier-config/conffiles
[modify] https://crrev.com/916c18c19d4ecb6ef09608249f8db221fa850d43/cros-sommelier-config/BUILD
[modify] https://crrev.com/916c18c19d4ecb6ef09608249f8db221fa850d43/cros-sommelier/sommelier@.service

Project Member

Comment 10 by bugdroid1@chromium.org, Sep 18

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/system_api/+/48093e2673c64d27062da7df353d7f7cf2aa398f

commit 48093e2673c64d27062da7df353d7f7cf2aa398f
Author: Tim Zheng <timzheng@google.com>
Date: Tue Sep 18 21:04:20 2018

Add a display density parameter.

This change add a display density parameter to
vm_tools.cicerone.LaunchContainerApplicationRequest.

This is used to enlarge Crostini windows for some older Linux apps that
don't show well on HiDPI displays by user preferences.

BUG=chromium:839242
TEST=New proto buffer field added and it still compiles.

Change-Id: I963f1bf60281b16110e515891e3a44a3fab6505e
Reviewed-on: https://chromium-review.googlesource.com/1226168
Commit-Ready: Tim Zheng <timzheng@chromium.org>
Tested-by: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com>
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/48093e2673c64d27062da7df353d7f7cf2aa398f/dbus/vm_cicerone/cicerone_service.proto

Project Member

Comment 11 by bugdroid1@chromium.org, Sep 19

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

commit 4502604563367f5c9fea5f1a20c1da56f86059c2
Author: Tim Zheng <timzheng@google.com>
Date: Wed Sep 19 00:26:39 2018

Roll src/third_party/cros_system_api/ b03af0353..48093e267 (2 commits)

https://chromium.googlesource.com/chromiumos/platform/system_api.git/+log/b03af0353854..48093e2673c6

$ git log b03af0353..48093e267 --date=short --no-merges --format='%ad %ae %s'
2018-09-14 timzheng Add a display density parameter.
2018-09-07 iby Add package info for Crostini apps

Created with:
  roll-dep src/third_party/cros_system_api

Bug: chromium:839242
Change-Id: I518308ae7ca60ae0cf7110aef7cc2692e8e148fb
Reviewed-on: https://chromium-review.googlesource.com/1232208
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Commit-Queue: May Lippert <maybelle@chromium.org>
Reviewed-by: May Lippert <maybelle@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592279}
[modify] https://crrev.com/4502604563367f5c9fea5f1a20c1da56f86059c2/DEPS

Project Member

Comment 12 by bugdroid1@chromium.org, Sep 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/aba3d92c43cadd905804ebec6e579f43b30fb3aa

commit aba3d92c43cadd905804ebec6e579f43b30fb3aa
Author: Tim Zheng <timzheng@google.com>
Date: Wed Sep 19 19:18:19 2018

vm_tools: Launch apps with display scaling.

This CL adds an parameter |display_scaling| in
LaunchContainerApplicationRequest, which will be passed to the container
and used to launch apps with the given display scaling setting.

BUG=chromium:839242
TEST=Manually verified on a eve device with other CLs.
CQ-DEPEND=CL:1226168

Change-Id: Iba7d260b6ab310a917fa06c9f3e0378835906964
Reviewed-on: https://chromium-review.googlesource.com/1228600
Commit-Ready: Tim Zheng <timzheng@chromium.org>
Tested-by: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com>

[modify] https://crrev.com/aba3d92c43cadd905804ebec6e579f43b30fb3aa/vm_tools/cicerone/service.cc
[modify] https://crrev.com/aba3d92c43cadd905804ebec6e579f43b30fb3aa/vm_tools/garcon/service_impl.cc
[modify] https://crrev.com/aba3d92c43cadd905804ebec6e579f43b30fb3aa/vm_tools/proto/container_guest.proto
[modify] https://crrev.com/aba3d92c43cadd905804ebec6e579f43b30fb3aa/vm_tools/cicerone/container.cc
[modify] https://crrev.com/aba3d92c43cadd905804ebec6e579f43b30fb3aa/vm_tools/cicerone/container.h

Project Member

Comment 13 by bugdroid1@chromium.org, Sep 19

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

commit c74f09ab9795d0b0c4db0193d5b2d4355bc167d6
Author: Tim Zheng <timzheng@google.com>
Date: Wed Sep 19 22:50:18 2018

Add "scaled" property to Crostini app registration.

This new property is used to record a user's preference for display
window scaling. When it's true the app window will be scaled up. This is
used to adjustment some older Linux apps that don't show well on HiDPI
displays.

BUG=chromium:839242
TEST=Unit tests added.

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

Project Member

Comment 14 by bugdroid1@chromium.org, Sep 19

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

commit bea79a0f8a940ce217758ee2e4cacc63ffdc8362
Author: Tim Zheng <timzheng@google.com>
Date: Wed Sep 19 22:53:44 2018

Launch Crostini apps with display scaled up.

This CL adds logic to check the app preference and to send app launch
request with display scaled up if the preference is set to scaled
display.

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

Change-Id: I054d384161219a1596aee4366d9bc56962b87eb3
Reviewed-on: https://chromium-review.googlesource.com/1232754
Reviewed-by: Nicholas Verne <nverne@chromium.org>
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592587}
[modify] https://crrev.com/bea79a0f8a940ce217758ee2e4cacc63ffdc8362/chrome/browser/chromeos/crostini/crostini_manager.cc
[modify] https://crrev.com/bea79a0f8a940ce217758ee2e4cacc63ffdc8362/chrome/browser/chromeos/crostini/crostini_manager.h
[modify] https://crrev.com/bea79a0f8a940ce217758ee2e4cacc63ffdc8362/chrome/browser/chromeos/crostini/crostini_util.cc

Tim mentioned a couple references:

> One pager: go/crostini-dpi
> Technical Note: https://docs.google.com/document/d/14akGQXgVkYdXef4KmXvaNHQveF2F9bYVs88iL0opTJA

Is there a way for ordinary users to read these?
no, but they really aren't that interesting. it's debating whether to default to scaling windows all the time or not.
> no, but they really aren't that interesting. it's debating whether to default to scaling windows all the time or not.

Thanks Mike.

I'm sure that scaling all the time would simplify things immensely, but it would be a shame since it makes everything fuzzy. Also, I'm not sure what other people are seeing, but on my system (Eve with external 24" UHD monitor) X11 apps get scaled to unusably large sizes.

If there's a way that users could provide testing and feedback for the scaling features you're building into crostini and sommelier, I'd be happy to do that.
If you're on a dev channel build then it should have this in there already. You can verify by just running 'export' in a terminal and seeing if DISPLAY_LOW_DENSITY and WAYLAND_DISPLAY_LOW_DENSITY are set.  If they are, then you can run an app in scaled mode by executing from the terminal:

DISPLAY=:1; WAYLAND_DISPLAY=wayland-1; gimp  (or whatever command)
It seems like both DISPLAY and DISPLAY_LOW_DENSITY are scaling. My screen is 3840x2160 and the native DPI would be ~186. Here's what I see from xdpyinfo and xrdb though:


$ xdpyinfo | grep -C1 dimensions
screen #0:
  dimensions:    1920x1080 pixels (305x171 millimeters)
  resolution:    160x160 dots per inch

$ xrdb -query
Xft.dpi:        160


$ DISPLAY=$DISPLAY_LOW_DENSITY xdpyinfo | grep -C1 dimensions
screen #0:
  dimensions:    960x540 pixels (339x190 millimeters)
  resolution:    72x72 dots per inch

$ DISPLAY=$DISPLAY_LOW_DENSITY xrdb -query
Xft.dpi:        72


In other words, with either $DISPLAY or $DISPLAY_LOW_DENSITY I'm seeing that applications are scaled. Is there a way to run Linux apps with native pixels?
By default they are run with native pixels....if you use DISPLAY=:0 (or don't set it), then there should be no scaling for an X11 app unless there is something in the app itself doing it (like Wayland apps that are HiDPI aware). Can you add screenshots to demonstrate what you're seeing?
Here are three screenshots:

1. slack-chrome.png is slack running in a normal chrome window. This is the baseline for scaling and sharpness.

2. slack-linux-default.png is slack running with $DISPLAY and default settings:

    sudo apt-get install flatpak
    sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
    sudo flatpak install flathub com.slack.Slack
    flatpak run com.slack.Slack

3. slack-linux-96.png tweaks the above to change the apparent DPI so the application's internal scaling (electron or gtk) approximately matches what we're getting in the chrome window.


If you compare especially the first and last, you can see that the Linux app is fuzzy. I think that what's happening is that the Linux app is rendering for 96 DPI and then sommelier is doubling the pixels. In any case, it doesn't appear to be running with native pixels, because then it would be sharp.
slack-chrome.png
613 KB View Download
slack-linux-default.png
720 KB View Download
slack-linux-96.png
751 KB View Download
How exactly are you doing this part? "tweaks the above to change the apparent DPI so the application's internal scaling (electron or gtk) approximately matches what we're getting in the chrome window."
Sorry, I meant to include that:

    echo Xft.dpi: 96 | xrdb -merge
    flatpak run com.slack.Slack
When I run slack like you do it renders like it does in your Chrome screenshot with no blurriness.

What happens if you don't do this on the external monitor...but on the internal display instead (w/out the external connected)?
> What happens if you don't do this on the external monitor...but on the internal display instead (w/out the external connected)?

Slack is sharp (app renders with native pixels) if I "vmc start termina" while the laptop panel is open. This works with or without the external monitor connected, and continues to work when I subsequently close the laptop. xdpyinfo reports full pixel dimensions on the external monitor:

$ xdpyinfo | grep -C1 dimensions
screen #0:
  dimensions:    3840x2160 pixels (609x342 millimeters)
  resolution:    160x160 dots per inch

So it appears that the problem occurs when termina launches while the laptop panel is closed. Then xdpyinfo reports the UHD screen as 1920x1080, and everything gets scaled to the natural 3840 resolution.

Thanks jkardatzke. It would be nice if this works without needing the laptop open eventually, but this is a completely usable workaround for now.
nice work tracking that down. I think we'll want to create a new issue to track it rather than double up here.
This is a know issue and what you see when closing the lid is currently the expected behavior. See this issue for more details:

https://bugs.chromium.org/p/chromium/issues/detail?id=860685

It's not trivial to solve. You can find a possible solution in the description of that issue.
Project Member

Comment 28 by bugdroid1@chromium.org, Oct 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/6396351e91d0e49f51f5ad2de96913586229ead3

commit 6396351e91d0e49f51f5ad2de96913586229ead3
Author: Tim Zheng <timzheng@google.com>
Date: Fri Oct 12 22:16:58 2018

vm_tools: Garcon set the right XCURSOR_SIZE.

Garcon sets the current XCURSOR_SIZE when launching a Crostini app. The
cursor size differs when the app windows are scaled.

BUG=chromium:839242
TEST=Manually verified on an eve device.

Change-Id: I131f81cac2bce49cb143c32f110747808e27f2fc
Reviewed-on: https://chromium-review.googlesource.com/1277885
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com>

[modify] https://crrev.com/6396351e91d0e49f51f5ad2de96913586229ead3/vm_tools/garcon/service_impl.cc

Labels: -M-71 M-72
Project Member

Comment 30 by bugdroid1@chromium.org, Oct 27

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

commit c36d6a51efbcb7aeee9a8d29f056e8e341cd32d8
Author: Tim Zheng <timzheng@google.com>
Date: Sat Oct 27 01:05:38 2018

Add shelf menu item to switch display density.

This CL adds a context menu item for swtiching display density to
Crostini app shelf item. It also adds a dialog to give user choice of
restarting the app.

BUG=chromium:839242
TEST=Manually tested on an eve device

Change-Id: Ia1a9ad335711e39305d147c43d001186c2b86f58
Reviewed-on: https://chromium-review.googlesource.com/c/1287255
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603278}
[modify] https://crrev.com/c36d6a51efbcb7aeee9a8d29f056e8e341cd32d8/ash/public/cpp/app_menu_constants.h
[modify] https://crrev.com/c36d6a51efbcb7aeee9a8d29f056e8e341cd32d8/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/c36d6a51efbcb7aeee9a8d29f056e8e341cd32d8/chrome/browser/ui/ash/launcher/crostini_app_window_shelf_controller.cc
[modify] https://crrev.com/c36d6a51efbcb7aeee9a8d29f056e8e341cd32d8/chrome/browser/ui/ash/launcher/crostini_app_window_shelf_controller.h
[modify] https://crrev.com/c36d6a51efbcb7aeee9a8d29f056e8e341cd32d8/chrome/browser/ui/ash/launcher/crostini_shelf_context_menu.cc
[modify] https://crrev.com/c36d6a51efbcb7aeee9a8d29f056e8e341cd32d8/chrome/browser/ui/browser_dialogs.h
[add] https://crrev.com/c36d6a51efbcb7aeee9a8d29f056e8e341cd32d8/chrome/browser/ui/views/crostini/crostini_app_restart_view.cc
[add] https://crrev.com/c36d6a51efbcb7aeee9a8d29f056e8e341cd32d8/chrome/browser/ui/views/crostini/crostini_app_restart_view.h
[modify] https://crrev.com/c36d6a51efbcb7aeee9a8d29f056e8e341cd32d8/ui/strings/ui_strings.grd

Project Member

Comment 31 by bugdroid1@chromium.org, Oct 31

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

commit 183c06ca7b38cfcc9eada1a9fff7756e2f195a15
Author: Tim Zheng <timzheng@google.com>
Date: Wed Oct 31 16:15:35 2018

No menu item for display density for the terminal.

The default Crostini terminal app is crosh in a Chrome window and the
display density toggle doesn't apply.

BUG=chromium:839242;chromium:900032
TEST=Manually tested on an eve device

Change-Id: I5d7007009803b63590864e107ece80082f9cfb9b
Reviewed-on: https://chromium-review.googlesource.com/c/1308416
Reviewed-by: Michael Wasserman <msw@chromium.org>
Reviewed-by: Timothy Loh <timloh@chromium.org>
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604278}
[modify] https://crrev.com/183c06ca7b38cfcc9eada1a9fff7756e2f195a15/chrome/browser/chromeos/crostini/crostini_registry_service.h
[modify] https://crrev.com/183c06ca7b38cfcc9eada1a9fff7756e2f195a15/chrome/browser/ui/ash/launcher/crostini_shelf_context_menu.cc

Project Member

Comment 32 by bugdroid1@chromium.org, Dec 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/724131ae90f8c7a5a8c12e866cb82afd124f8f94

commit 724131ae90f8c7a5a8c12e866cb82afd124f8f94
Author: Tim Zheng <timzheng@google.com>
Date: Tue Dec 11 05:47:44 2018

vm_tools: sommelier: Add window name to x11_demo app.

This add "x11_demo" as the window name so that the title is set. This
should help tast javascript to identify the window.

BUG=chromium:839242
TEST=Manually run the updated app and verified that the window title is
set.

Change-Id: I0cc4eec7294a4bee89f1f4db45349d7c6b4181f1
Reviewed-on: https://chromium-review.googlesource.com/1368790
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com>

[modify] https://crrev.com/724131ae90f8c7a5a8c12e866cb82afd124f8f94/vm_tools/sommelier/demos/x11_demo.cc

Project Member

Comment 33 by bugdroid1@chromium.org, Dec 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/b93ae6dc0075985cace155d40acd5f50fab417f5

commit b93ae6dc0075985cace155d40acd5f50fab417f5
Author: Tim Zheng <timzheng@google.com>
Date: Sat Dec 15 06:40:47 2018

vm_tools: Add flag for wayland_demo window title.

This adds a flag to set the wayland_demo app window title. This is
useful to identify a particular wayland_demo instance window during tast
tests.

BUG=chromium:839242
TEST=Manually run the updated app and verified the title is used in
Chrome OS shelf.

Change-Id: Ic23a323a9fbbfda93240fcd0f2897eba302646d5
Reviewed-on: https://chromium-review.googlesource.com/1378020
Commit-Ready: Tim Zheng <timzheng@chromium.org>
Tested-by: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com>

[modify] https://crrev.com/b93ae6dc0075985cace155d40acd5f50fab417f5/vm_tools/sommelier/demos/wayland_demo.cc

Project Member

Comment 34 by bugdroid1@chromium.org, Dec 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/9f429a148a2feceb0ad94fcacb6a5f8940edb74a

commit 9f429a148a2feceb0ad94fcacb6a5f8940edb74a
Author: Tim Zheng <timzheng@google.com>
Date: Mon Dec 17 00:26:18 2018

vm_tools: Add flag for x11_demo app window title.

This adds a flag to set the x11_demo app window title. This is
useful to identify x11_demo app window instances during tests. The tast
tests are asynchronous between the controlling machine and the DUT.
Using a different title between invocations will make sure that the
right window is measured without the need for the control program to
sleep for a fixed time.

BUG=chromium:839242
TEST=Manually run the updated app and verified the title flag.
Change-Id: Ia9486b065b692964f3b94040f5ae8b72fb54453f
Reviewed-on: https://chromium-review.googlesource.com/1377577
Commit-Ready: Tim Zheng <timzheng@chromium.org>
Tested-by: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com>

[modify] https://crrev.com/9f429a148a2feceb0ad94fcacb6a5f8940edb74a/vm_tools/sommelier/demos/x11_demo.cc

We need this capability for Android apps as well, especially after this functionality was deliberately removed and then the ticket closed without discussion.

https://bugs.chromium.org/p/chromium/issues/detail?id=842004
this bug is only about Crostini.  please keep Android discussion on the other bug.
Project Member

Comment 37 by bugdroid1@chromium.org, Jan 3

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

commit 72508a5fde16bc4c116a8616e3395a7ec434a6c4
Author: Tim Zheng <timzheng@google.com>
Date: Thu Jan 03 20:02:03 2019

Add autotest API for setting a Crostini app scaled.

To set a Crostini app scaled is to set the property in the Crostini app
registry so that when the app launches it'll use low display density.

BUG=chromium:839242
TEST=unit test included in this CL

Change-Id: I1428a49cce918930f8b5d4083fbc9ba208e8b101
Reviewed-on: https://chromium-review.googlesource.com/c/1393547
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619728}
[modify] https://crrev.com/72508a5fde16bc4c116a8616e3395a7ec434a6c4/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
[modify] https://crrev.com/72508a5fde16bc4c116a8616e3395a7ec434a6c4/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.h
[modify] https://crrev.com/72508a5fde16bc4c116a8616e3395a7ec434a6c4/chrome/common/extensions/api/autotest_private.idl
[modify] https://crrev.com/72508a5fde16bc4c116a8616e3395a7ec434a6c4/chrome/test/data/extensions/api_test/autotest_private/test.js
[modify] https://crrev.com/72508a5fde16bc4c116a8616e3395a7ec434a6c4/extensions/browser/extension_function_histogram_value.h
[modify] https://crrev.com/72508a5fde16bc4c116a8616e3395a7ec434a6c4/tools/metrics/histograms/enums.xml

Project Member

Comment 38 by bugdroid1@chromium.org, Jan 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/557f3bfe01e8a2eafb4de441dce40244e299058a

commit 557f3bfe01e8a2eafb4de441dce40244e299058a
Author: Tim Zheng <timzheng@google.com>
Date: Sat Jan 05 22:52:13 2019

vm_tools: Fix a bug on command line handling.

The x11_demo title is not working right.

The return value of std::string::c_str() changes with the string itself.
The demo programs incorrectly hold the pointer that can be invalidated
when further command line processing is done.

BUG=chromium:839242
TEST=Manually run the updated apps and verified the title flag.

Change-Id: Ib5b96b23425f45047683cfb1ed46690617671ea8
Reviewed-on: https://chromium-review.googlesource.com/1395783
Commit-Ready: Tim Zheng <timzheng@chromium.org>
Tested-by: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com>
Reviewed-by: Stephen Barber <smbarber@chromium.org>

[modify] https://crrev.com/557f3bfe01e8a2eafb4de441dce40244e299058a/vm_tools/sommelier/demos/wayland_demo.cc
[modify] https://crrev.com/557f3bfe01e8a2eafb4de441dce40244e299058a/vm_tools/sommelier/demos/x11_demo.cc

Project Member

Comment 39 by bugdroid1@chromium.org, Jan 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/containers/cros-container-guest-tools/+/914c4a3159e6af0943b074118444124411897aa9

commit 914c4a3159e6af0943b074118444124411897aa9
Author: Tim Zheng <timzheng@google.com>
Date: Wed Jan 09 03:25:46 2019

cros-tast-tests: Add sized demo app desktop files.

This CL adds 2 desktop files. One for the x11_demo and the other for the
wayland_demo. These 2 desktop files specify the window size to be
100X100. These are useful to test app display density settings.

BUG=chromium:839242
TEST=Built the deb file successfully.

Change-Id: Iad986d24dd310b0294412c2f42e1a60ed2661191
Reviewed-on: https://chromium-review.googlesource.com/1395951
Commit-Ready: Tim Zheng <timzheng@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Tested-by: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com>

[add] https://crrev.com/914c4a3159e6af0943b074118444124411897aa9/cros-tast-tests/wayland_demo_fixed_size.desktop
[modify] https://crrev.com/914c4a3159e6af0943b074118444124411897aa9/cros-tast-tests/BUILD
[add] https://crrev.com/914c4a3159e6af0943b074118444124411897aa9/cros-tast-tests/x11_demo_fixed_size.desktop

Project Member

Comment 40 by bugdroid1@chromium.org, Jan 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/tast-tests/+/b903ad21d6b7b1c2599bb90f2a2957f9fe4d8cd6

commit b903ad21d6b7b1c2599bb90f2a2957f9fe4d8cd6
Author: Tim Zheng <timzheng@google.com>
Date: Wed Jan 09 19:55:41 2019

tast: Add Crostini app display density toggle tast.

This change add a tast test to verify that both the x11_demo and the
wayland_demo app windows are enlarged when using low display density.

BUG=chromium:839242
TEST=To be finalized once the updated x11_demo and wayland_demo are
built into the deb file in release package.

Change-Id: Ia758c3620f5b15655f13f0d5934ea23498d61e9e
Reviewed-on: https://chromium-review.googlesource.com/1379005
Commit-Ready: Tim Zheng <timzheng@chromium.org>
Tested-by: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>

[add] https://crrev.com/b903ad21d6b7b1c2599bb90f2a2957f9fe4d8cd6/src/chromiumos/tast/local/bundles/cros/vm/subtest/display_density.go
[modify] https://crrev.com/b903ad21d6b7b1c2599bb90f2a2957f9fe4d8cd6/src/chromiumos/tast/local/bundles/cros/vm/crostini_start_everything.go

Project Member

Comment 41 by bugdroid1@chromium.org, Jan 15

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

commit e9e40edb957ebc015b04a175b27e6836d461a4aa
Author: Tim Zheng <timzheng@google.com>
Date: Tue Jan 15 03:25:17 2019

Add autotest API for getting scale factor.

To get the primary display's scale factor. This is helpful in determine
if the Crostini wayland_demo app window size actually scale up when in
low display density mode.

BUG=chromium:839242; chromium:920701
TEST=unit test included in this CL

Change-Id: Iea55dc0d6e3cb47aacbac7fe21ceed9a81b9188e
Reviewed-on: https://chromium-review.googlesource.com/c/1407959
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622709}
[modify] https://crrev.com/e9e40edb957ebc015b04a175b27e6836d461a4aa/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
[modify] https://crrev.com/e9e40edb957ebc015b04a175b27e6836d461a4aa/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.h
[modify] https://crrev.com/e9e40edb957ebc015b04a175b27e6836d461a4aa/chrome/common/extensions/api/autotest_private.idl
[modify] https://crrev.com/e9e40edb957ebc015b04a175b27e6836d461a4aa/chrome/test/data/extensions/api_test/autotest_private/test.js
[modify] https://crrev.com/e9e40edb957ebc015b04a175b27e6836d461a4aa/extensions/browser/extension_function_histogram_value.h
[modify] https://crrev.com/e9e40edb957ebc015b04a175b27e6836d461a4aa/tools/metrics/histograms/enums.xml

Project Member

Comment 42 by bugdroid1@chromium.org, Jan 18 (5 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/tast-tests/+/aec7d36aaf9cbceed439a7e4b80f51256ac7d3d4

commit aec7d36aaf9cbceed439a7e4b80f51256ac7d3d4
Author: Tim Zheng <timzheng@google.com>
Date: Fri Jan 18 04:20:38 2019

tast: Fix Crostini app display density test.

The Crostini app display density test is failing on the boards that have
primary display scale factor of 1.0. The X11_demo app shows the same
window size in high or low display density setting on that condition.
This fix uses the scale factor to treat those boards differently.
BUG=chromium:839242; chromium:920701
TEST=Ran the tast test on both eve and kefka machines.

Change-Id: I3dd833b83a666824c952dc0bd404cba7919b66dc
Reviewed-on: https://chromium-review.googlesource.com/1413872
Commit-Ready: Tim Zheng <timzheng@chromium.org>
Tested-by: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com>

[modify] https://crrev.com/aec7d36aaf9cbceed439a7e4b80f51256ac7d3d4/src/chromiumos/tast/local/bundles/cros/vm/subtest/display_density.go

Sign in to add a comment