New issue
Advanced search Search tips

Issue 790720 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug

Blocking:
issue 607844
issue 805046



Sign in to add a comment

Closing lid triggers mirror mode

Project Member Reported by weidongg@chromium.org, Nov 30 2017

Issue description

What steps will reproduce the problem?
(1) Connect two external displays
(2) Close chromebook lid

What is the expected result?
The external displays should not be in mirror mode.

What happens instead?
The external displays is in mirror mode.

Reason:
Closing lid incorrectly triggers tablet mode entering and exiting. Entering tablet mode turns on mirror mode and exiting turns off mirror mode. Since mirror mode toggling is an asynchronous operation, 'mirror-off' request is dropped before 'mirror-on' request is complete.

 
Labels: OS-Chrome

Comment 2 by warx@chromium.org, Jan 30 2018

Blocking: 805046
Cc: flackr@chromium.org jonr...@chromium.org
+jonross@
Do you know when |tablet_mode_switch_is_on| [1] will be turned on? Whether it works for all devices?

I tested on eve, it looks like it is set to true when lid angle goes larger than 300 degree and it is set to false when lid angle goes smaller than 230 degree. Not sure whether this also applies to other device as well?

[1] https://cs.chromium.org/chromium/src/ash/wm/tablet_mode/tablet_mode_controller.h?sq=package:chromium&dr&l=216

Comment 4 by flackr@chromium.org, Jan 31 2018

I know it's a hardware signal sent from powerd by supporting devices. My understanding is that it is generated by physical switch that doesn't exist on some older devices (e.g. glimmer, clapper, minnie).
Cc: derat@chromium.org
+derat@ for comments on powerd

That switch should only be triggering on newer convertible devices. (flackr@ lists the exclusions) It also shouldn't be triggering on non-convertibles.

If that signal is arriving during lid closure sounds like there's a bug. Since Chrome receives it from powerd derat@ might know more

Comment 6 by flackr@chromium.org, Jan 31 2018

Oh that's not the issue - this is just in the context of resolving accelerometer flakiness I pointed out in the review that we can't rely on that signal existing on all hardware so we would need to detect its existence if we're going to filter more aggressively and rely on the tablet mode switch.

Comment 7 by derat@chromium.org, Jan 31 2018

powerd just forwards these events on from the kernel. I didn't realize that there's a physical switch on newer hardware rather than a fake switch that the EC derives from accelerometer readings, though.

So just to be clear, are incorrect tablet mode switch events being received when the lid is closed or not? The "reason" section in the original description suggests that they are, and that that's why the system is entering mirror mode.

Comment 8 by osh...@chromium.org, Jan 31 2018

Isn't this same as crbug.com/741939 ?
Re #7: No the tablet mode switch event is not received when the lid is closed.
What happens is: When closing the lid, the lid angle readings look like: [100, 50, 5, 2, 358]. So incorrect readings (due to hardware inaccuracy?) "358" is received before close lid event is received. That's why it triggers tablet mode here [1].

[1] https://cs.chromium.org/chromium/src/ash/wm/tablet_mode/tablet_mode_controller.cc?dr&l=378
Status: Started (was: Assigned)
Re #8, Yes, I think this is the same issue as this bug.
please dup, to or from, whichever you like, then.
Issue 741939 has been merged into this issue.
Project Member

Comment 13 by bugdroid1@chromium.org, Feb 7 2018

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

commit 208b44ca364b93b73286b3364f1700009197afc6
Author: Weidong Guo <weidongg@chromium.org>
Date: Wed Feb 07 23:13:48 2018

Fix entering mirror mode on docked

Background:
Mirror mode is turned on upon entering tablet mode. Tablet mode is
entered when lid angle is larger than 200 degree. However, closing lid
triggers erroneous accelerometer reading which makes the lid appear to
be fully open (e.g. 359 degree). So mirror mode is incorrectly turned
on.

Changes:
Ignore unstable lid angle for 2 seconds and only use unstable lid
angle to turn on/off tablet mode after that.

Bug:  790720 
Change-Id: I009901ee88e88fc6df864ceb10263c596c8ed063
Reviewed-on: https://chromium-review.googlesource.com/814936
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Reviewed-by: Stefan Kuhne <skuhne@chromium.org>
Commit-Queue: Weidong Guo <weidongg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535181}
[modify] https://crrev.com/208b44ca364b93b73286b3364f1700009197afc6/ash/wm/tablet_mode/tablet_mode_controller.cc
[modify] https://crrev.com/208b44ca364b93b73286b3364f1700009197afc6/ash/wm/tablet_mode/tablet_mode_controller.h
[modify] https://crrev.com/208b44ca364b93b73286b3364f1700009197afc6/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc

Status: Fixed (was: Started)
Labels: Merge-Request-65
Labels: -Pri-3 Pri-2
Project Member

Comment 17 by sheriffbot@chromium.org, Feb 21 2018

Labels: -Merge-Request-65 Merge-Review-65 Hotlist-Merge-Review
This bug requires manual review: We are only 12 days from stable.
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), bhthompson@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Hotlist-Merge-Review -Merge-Review-65 Merge-Approved-65
Project Member

Comment 19 by bugdroid1@chromium.org, Feb 22 2018

Labels: -merge-approved-65 merge-merged-3325
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ed2f05d4e7fdc00e1a3a69b02dc934a3f43acc3d

commit ed2f05d4e7fdc00e1a3a69b02dc934a3f43acc3d
Author: Weidong Guo <weidongg@chromium.org>
Date: Thu Feb 22 23:09:07 2018

Fix entering mirror mode on docked

Background:
Mirror mode is turned on upon entering tablet mode. Tablet mode is
entered when lid angle is larger than 200 degree. However, closing lid
triggers erroneous accelerometer reading which makes the lid appear to
be fully open (e.g. 359 degree). So mirror mode is incorrectly turned
on.

Changes:
Ignore unstable lid angle for 2 seconds and only use unstable lid
angle to turn on/off tablet mode after that.

Bug:  790720 

TBR=afakhry@chromium.org,skuhne@chromium.org

(cherry picked from commit 208b44ca364b93b73286b3364f1700009197afc6)

Change-Id: I1d9fa6394350303730062136c7bfe7a5a6fe98f5
Reviewed-on: https://chromium-review.googlesource.com/814936
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Reviewed-by: Stefan Kuhne <skuhne@chromium.org>
Commit-Queue: Weidong Guo <weidongg@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#535181}
Reviewed-on: https://chromium-review.googlesource.com/927213
Reviewed-by: Weidong Guo <weidongg@chromium.org>
Cr-Commit-Position: refs/branch-heads/3325@{#559}
Cr-Branched-From: bc084a8b5afa3744a74927344e304c02ae54189f-refs/heads/master@{#530369}
[modify] https://crrev.com/ed2f05d4e7fdc00e1a3a69b02dc934a3f43acc3d/ash/wm/tablet_mode/tablet_mode_controller.cc
[modify] https://crrev.com/ed2f05d4e7fdc00e1a3a69b02dc934a3f43acc3d/ash/wm/tablet_mode/tablet_mode_controller.h
[modify] https://crrev.com/ed2f05d4e7fdc00e1a3a69b02dc934a3f43acc3d/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc

Sign in to add a comment