Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(826)

Unified Diff: chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc

Issue 2293183002: ash: Remove ash::Shelf in favor of ash::WmShelf (Closed)
Patch Set: rebase again Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc
index 5eaee8fdf60c61d4d1b4ce6f51700dfdd90f9dc0..281ce11f9082ca3c68d0192ff32a838f4a187291 100644
--- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc
+++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl.cc
@@ -10,8 +10,8 @@
#include "ash/common/ash_switches.h"
#include "ash/common/multi_profile_uma.h"
-#include "ash/common/shelf/shelf.h"
#include "ash/common/shelf/shelf_model.h"
+#include "ash/common/shelf/shelf_widget.h"
#include "ash/common/shelf/wm_shelf.h"
#include "ash/common/system/tray/system_tray_delegate.h"
#include "ash/common/wm_shell.h"
@@ -823,7 +823,7 @@ LauncherItemController* ChromeLauncherControllerImpl::GetLauncherItemController(
}
bool ChromeLauncherControllerImpl::ShelfBoundsChangesProbablyWithUser(
- ash::Shelf* shelf,
+ ash::WmShelf* shelf,
const AccountId& account_id) const {
Profile* other_profile = multi_user_util::GetProfileFromAccountId(account_id);
if (!other_profile || other_profile == profile_)
@@ -834,7 +834,7 @@ bool ChromeLauncherControllerImpl::ShelfBoundsChangesProbablyWithUser(
// no window on desktop, multi user, ..) the shelf could be shown - or not.
PrefService* prefs = profile_->GetPrefs();
PrefService* other_prefs = other_profile->GetPrefs();
- const int64_t display = GetDisplayIDForShelf(shelf->wm_shelf());
+ const int64_t display = GetDisplayIDForShelf(shelf);
const bool currently_shown =
ash::SHELF_AUTO_HIDE_BEHAVIOR_NEVER ==
ash::launcher::GetShelfAutoHideBehaviorPref(prefs, display);
@@ -1311,11 +1311,13 @@ void ChromeLauncherControllerImpl::UpdateAppLaunchersFromPref() {
void ChromeLauncherControllerImpl::SetShelfAutoHideBehaviorFromPrefs() {
for (ash::WmWindow* window : ash::WmShell::Get()->GetAllRootWindows()) {
- ash::Shelf* shelf = ash::Shelf::ForWindow(window);
- if (shelf) {
- shelf->wm_shelf()->SetAutoHideBehavior(
- ash::launcher::GetShelfAutoHideBehaviorPref(
- profile_->GetPrefs(), GetDisplayIDForShelf(shelf->wm_shelf())));
+ ash::WmShelf* shelf = ash::WmShelf::ForWindow(window);
+ // TODO(jamescook): This check should not be necessary, but otherwise this
+ // tries to set autohide state on a secondary display during login before
+ // the ShelfView is created, which is not allowed.
+ if (shelf->IsShelfInitialized()) {
+ shelf->SetAutoHideBehavior(ash::launcher::GetShelfAutoHideBehaviorPref(
+ profile_->GetPrefs(), GetDisplayIDForShelf(shelf)));
}
}
}
@@ -1325,10 +1327,13 @@ void ChromeLauncherControllerImpl::SetShelfAlignmentFromPrefs() {
return;
for (ash::WmWindow* window : ash::WmShell::Get()->GetAllRootWindows()) {
- ash::Shelf* shelf = ash::Shelf::ForWindow(window);
- if (shelf) {
- shelf->wm_shelf()->SetAlignment(ash::launcher::GetShelfAlignmentPref(
- profile_->GetPrefs(), GetDisplayIDForShelf(shelf->wm_shelf())));
+ ash::WmShelf* shelf = ash::WmShelf::ForWindow(window);
+ // TODO(jamescook): This check should not be necessary, but otherwise this
+ // tries to set the alignment on a secondary display during login before the
+ // ShelfLockingManager and ShelfView are created, which is not allowed.
+ if (shelf->IsShelfInitialized()) {
+ shelf->SetAlignment(ash::launcher::GetShelfAlignmentPref(
+ profile_->GetPrefs(), GetDisplayIDForShelf(shelf)));
}
}
}
@@ -1647,9 +1652,9 @@ void ChromeLauncherControllerImpl::OnDisplayConfigurationChanged() {
// In BOTTOM_LOCKED state, ignore the call of SetShelfBehaviorsFromPrefs.
// Because it might be called by some operations, like crbug.com/627040
// rotating screen.
- ash::Shelf* shelf = ash::Shelf::ForPrimaryDisplay();
- if (!shelf ||
- shelf->wm_shelf()->alignment() != ash::SHELF_ALIGNMENT_BOTTOM_LOCKED)
+ ash::WmShelf* shelf =
+ ash::WmShelf::ForWindow(ash::WmShell::Get()->GetPrimaryRootWindow());
+ if (shelf->alignment() != ash::SHELF_ALIGNMENT_BOTTOM_LOCKED)
SetShelfBehaviorsFromPrefs();
}

Powered by Google App Engine
This is Rietveld 408576698