New issue
Advanced search Search tips

Issue 674773 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

Investigate making shelf view always visible

Project Member Reported by jamescook@chromium.org, Dec 16 2016

Issue description

After https://codereview.chromium.org/2573703003/ lands the shelf will be created later, after login. This means the shelf view probably doesn't need to support being SetVisible(false) any more.

If that's true then some of the shelf visibility code can be simplified (e.g. IsShelfVisible can go away).

 
  // TODO(jamescook): The IsActiveUserSessionStarted() check may not be needed
  // because the shelf is only created after the first user session is active.
  // The ShelfView seems to always be visible after login. At the lock screen
  // the shelf is hidden because its container is hidden. During auto-hide it is
  // hidden because ShelfWidget is transparent. Some of the ShelfView visibility
  // code could be simplified.  http://crbug.com/674773 

Status: Started (was: Assigned)
I might try to do this while working on moving ShelfView initialization earlier, see  Issue 717559 

Project Member

Comment 3 by bugdroid1@chromium.org, May 18 2017

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

commit 788b4fcb1909904cda962cac4a637ffecfa90c1a
Author: jamescook <jamescook@chromium.org>
Date: Thu May 18 16:16:06 2017

chromeos: Refactor shelf to create ShelfView earlier in startup

Currently ShelfView is created in the middle of login, after the profile
loads, whereas the ShelfWidget and StatusAreaWidget are created on display
initialization. We also have complex logic around showing and hiding the
shelf based on login state, supervised user creation flows, etc. This makes
it difficult to reason about the state of the shelf.

Instead, always create the ShelfView when the widget is created. The view
stays hidden at login because its window container is hidden. This makes it
easier to reason about ShelfView (it's always there). We also want this
because we want to replace the Web UI "fake shelf" during OOBE and login
with a views-based shelf. It may help with Clusterfuzz crashes we're
seeing due to shelf not being fully initialized during the tests.

This is a refactor and should not cause behavior changes.

BUG= 717559 , 674773 
TEST=ash_unittests, browser_tests, manually testing login, ChromeVox, and
adding/removing displays
TBR=tsepez@chromium.org for rename

Review-Url: https://codereview.chromium.org/2889673002
Cr-Commit-Position: refs/heads/master@{#472832}

[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/public/interfaces/shelf.mojom
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/root_window_controller.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/root_window_controller.h
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shelf/shelf_controller.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shelf/shelf_controller.h
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shelf/shelf_layout_manager.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shelf/shelf_locking_manager.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shelf/shelf_locking_manager.h
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shelf/shelf_locking_manager_unittest.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shelf/shelf_widget.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shelf/shelf_widget.h
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shelf/shelf_widget_unittest.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shelf/wm_shelf.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shelf/wm_shelf.h
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shell.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/shell.h
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/wm/workspace/workspace_layout_manager.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/ash/wm/workspace_controller.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/chrome/browser/chromeos/accessibility/accessibility_manager.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/chrome/browser/chromeos/accessibility/chromevox_panel.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/chrome/browser/chromeos/accessibility/chromevox_panel.h
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
[modify] https://crrev.com/788b4fcb1909904cda962cac4a637ffecfa90c1a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.h

Status: Fixed (was: Started)
Status: Verified (was: Fixed)

Sign in to add a comment