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

Issue 627672 link

Starred by 3 users

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Feature



Sign in to add a comment

Add power on/off display functionality

Reported by jacobwis...@aopen.com, Jul 13 2016

Issue description

UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0

Steps to reproduce the problem:
1. Chrome Power API doesn't power off display separate of system
2. Also the release keep awake function doesn't allow you to release screen and display separately.
3. No API is available to power off displays individually.

What is the expected behavior?
Screens would power off and back on when requested.

What went wrong?
Screen doesn't power off.

Did this work before? No 

Chrome version: <Copy from: 'about:version'>  Channel: n/a
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
Flash Version: Shockwave Flash 22.0 r0

We would like there to be an API to allow us to power off and on displays individually. Ideally this would be a function that is part of the existing system.display API set.
 
Cc: sduraisamy@chromium.org
Components: UI>Shell>Kiosk

Comment 2 by dchan@chromium.org, Jul 19 2016

Cc: -sduraisamy@chromium.org harpreet@chromium.org ka...@chromium.org
Components: OS>Kernel>Power OS>Kernel>Display
Owner: sduraisamy@chromium.org
Status: Assigned (was: Unconfirmed)

Comment 3 by derat@chromium.org, Jul 19 2016

Cc: rdevlin....@chromium.org derat@chromium.org
Components: -UI>Shell>Kiosk -OS>Kernel>Display Platform>Extensions>API
Labels: Needs-Feedback
Status: Unconfirmed (was: Assigned)
You're referring to the chrome.power API (https://developer.chrome.com/extensions/power), right? Could you provide some example use cases describing what you're trying to do and why you want to do it?

Are you trying to do this on Windows or on Chrome OS?

It's already possible to switch between the "system" and "display" keep-awake levels. From the requestKeepAwake documentation: "If a request previously made by the same app is still active, it will be replaced by the new request."
Hi Guys,

Sorry I thought I had replied.

The idea behind this is for Digital Signage, out of hours the displays need to turn off completely. In some cases this is critical because the panels are only rated for 16 hours On / 8 hours Off. If you run the displays for 24 hours it shortens the warranty period.

The issue with request keep awake is that you cannot release the keep awake on an individual "level" you have to release all keep awakes via chrome.power.releaseKeepAwake() and then call chrome.power.requestKeepAwake("system") to ensure that the device doesn't sleep.

In any case I have tested doing the above and the displays still don't turn off/sleep, I believe this is because the keep awake is maintained on the "system" level.

Ideally this would be an api that is part of the chrome.system.display set of APIs. For example: chrome.system.display.powerOff(id) chrome.system.display.powerOn(id), where ID is the unique ID of that display.

In some cases we would want to turn off individual displays attached to a single device.

An example of this use case is:

External facing display runs 24/7 and advertises to the street, whereas the internal facing display is switched off out of hours. This cannot be done with the current API.

There is the following API for sending control messages over HDMI http://elinux.org/CEC_(Consumer_Electronics_Control)_over_HDMI, I imagine there is something similair for DP. For Aopen hardware it is neccessary to have both HDMI & DP control messaging as our chromebox features both HDMI & DP and the Internal Display on the Aopen Chromebase display is run over DP with an external HDMI port available.


I hope this gives you more of an idea of what we are looking for.

Regards
Jacob Wischnat

Comment 5 by derat@chromium.org, Nov 10 2016

> The issue with request keep awake is that you cannot release the keep awake on
> an individual "level" you have to release all keep awakes via
> chrome.power.releaseKeepAwake() and then call
> chrome.power.requestKeepAwake("system") to ensure that the device doesn't
> sleep.

An extension can only have a single request. Calling requestKeepAwake with a new level replaces the current request. https://developer.chrome.com/apps/power seems clear about this:

"Requests that power management be temporarily disabled. |level| describes the degree to which power management should be disabled. If a request previously made by the same app is still active, it will be replaced by the new request."

If your extension previously called chrome.power.requestKeepAwake("display") and you now want it to instead only keep the system awake, just call chrome.power.requestKeepAwake("system"). Is that not working as documented?

Please attach /var/log/power_manager/powerd.LATEST after reproducing the problem (and also mention the timestamps when you tried to switch modes, expected the display to turn off, etc.).

You should be able to get the desired behavior by doing something like the following:

- Call requestKeepAwake("display") when you want the display to turn on.
- Call requestKeepAwake("system") when you want the display to turn off (soon) but the system to remain awake.

If you want "soon" to be shorter, you can set policies to configure it: https://www.chromium.org/administrators/policy-list-3#PowerManagement

(In that case, you can also override the idle action and/or delay so the system will always be awake. Then you can just use requestKeepAwake("display") and releaseKeepAwake() to force the display on or not.)
Sorry, I completely misread the API.

I will test this on our hardware and validate it works as expected.

Hopefully we can still consider extending this API to support the use case I described.

Thanks for your help.

Regards
Jacob.

Comment 7 by derat@chromium.org, Nov 10 2016

Cc: steve...@chromium.org marc...@chromium.org tbarzic@chromium.org h...@chromium.org
Cc-ing some people who modified chrome.system.display to see if there are any plans to support disabling individual displays via e.g. setDisplayProperties.

I think that marcheu@ has told me before that most Chrome OS devices lack hardware support for HDMI-CEC.
The cec pin isn't connected. We can't do it at all.
Hi Guys,

I have done my testing and everything works as expected.

Without CEC support there is nothing we can do surrounding control of individual display state that is fair enough.

In regard to the policies surrounding the power timeout, the page lists those policies as being deprecated, is this the case?

Additionally where are those policies set?

Note: This is for Kiosk Apps on ChromeOS.

Regards
Jacob.


Comment 10 by derat@chromium.org, Nov 11 2016

I believe that PowerManagementIdleSettings replaces the deprecated policies. https://support.google.com/chrome/a/answer/1289314?hl=en has more details about device management.
Ok Thanks, We will look in to this.

Regards
Jacob.
Project Member

Comment 12 by sheriffbot@chromium.org, Nov 18 2016

Labels: -Needs-Feedback Needs-Review
Thank you for providing more feedback. Adding "Needs-Review" label for tracking.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Assigned (was: Unconfirmed)

Comment 14 by derat@chromium.org, Nov 29 2016

Status: WontFix (was: Assigned)

Sign in to add a comment