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

Side by Side Diff: chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.cc

Issue 2391253004: Use mojo Shelf interfaces for both mash and classic ash. (Closed)
Patch Set: Address comments. Created 4 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 #include "chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.h" 4 #include "chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.h"
5 5
6 #include <string> 6 #include <string>
7 7
8 #include "ash/aura/wm_window_aura.h" 8 #include "ash/aura/wm_window_aura.h"
9 #include "ash/common/shelf/shelf_delegate.h" 9 #include "ash/common/shelf/shelf_delegate.h"
10 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h" 10 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h"
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 ArcAppWindowLauncherItemController* controller_ = nullptr; 252 ArcAppWindowLauncherItemController* controller_ = nullptr;
253 // Unowned pointer, represents host Arc window. 253 // Unowned pointer, represents host Arc window.
254 254
255 DISALLOW_COPY_AND_ASSIGN(AppWindow); 255 DISALLOW_COPY_AND_ASSIGN(AppWindow);
256 }; 256 };
257 257
258 ArcAppWindowLauncherController::ArcAppWindowLauncherController( 258 ArcAppWindowLauncherController::ArcAppWindowLauncherController(
259 ChromeLauncherController* owner, 259 ChromeLauncherController* owner,
260 ash::ShelfDelegate* shelf_delegate) 260 ash::ShelfDelegate* shelf_delegate)
261 : AppWindowLauncherController(owner), shelf_delegate_(shelf_delegate) { 261 : AppWindowLauncherController(owner), shelf_delegate_(shelf_delegate) {
262 if (arc::ArcAuthService::IsAllowedForProfile(owner->GetProfile())) { 262 if (arc::ArcAuthService::IsAllowedForProfile(owner->profile())) {
263 observed_profile_ = owner->GetProfile(); 263 observed_profile_ = owner->profile();
264 StartObserving(observed_profile_); 264 StartObserving(observed_profile_);
265 } 265 }
266 } 266 }
267 267
268 ArcAppWindowLauncherController::~ArcAppWindowLauncherController() { 268 ArcAppWindowLauncherController::~ArcAppWindowLauncherController() {
269 if (observed_profile_) 269 if (observed_profile_)
270 StopObserving(observed_profile_); 270 StopObserving(observed_profile_);
271 if (observing_shell_) 271 if (observing_shell_)
272 ash::WmShell::Get()->RemoveShellObserver(this); 272 ash::WmShell::Get()->RemoveShellObserver(this);
273 } 273 }
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 chrome::MultiUserWindowManager::GetInstance()->SetWindowOwner( 343 chrome::MultiUserWindowManager::GetInstance()->SetWindowOwner(
344 window, 344 window,
345 user_manager::UserManager::Get()->GetPrimaryUser()->GetAccountId()); 345 user_manager::UserManager::Get()->GetPrimaryUser()->GetAccountId());
346 } 346 }
347 347
348 // The application id property should be set at this time. It is important to 348 // The application id property should be set at this time. It is important to
349 // have window->IsVisible set to true before attaching to a controller because 349 // have window->IsVisible set to true before attaching to a controller because
350 // the window is registered in multi-user manager and this manager may 350 // the window is registered in multi-user manager and this manager may
351 // consider this new window as hidden for current profile. Multi-user manager 351 // consider this new window as hidden for current profile. Multi-user manager
352 // uses OnWindowVisibilityChanging event to update window state. 352 // uses OnWindowVisibilityChanging event to update window state.
353 if (visible && observed_profile_ == owner()->GetProfile()) 353 if (visible && observed_profile_ == owner()->profile())
354 AttachControllerToWindowIfNeeded(window); 354 AttachControllerToWindowIfNeeded(window);
355 } 355 }
356 356
357 void ArcAppWindowLauncherController::OnWindowDestroying(aura::Window* window) { 357 void ArcAppWindowLauncherController::OnWindowDestroying(aura::Window* window) {
358 auto it = 358 auto it =
359 std::find(observed_windows_.begin(), observed_windows_.end(), window); 359 std::find(observed_windows_.begin(), observed_windows_.end(), window);
360 DCHECK(it != observed_windows_.end()); 360 DCHECK(it != observed_windows_.end());
361 observed_windows_.erase(it); 361 observed_windows_.erase(it);
362 window->RemoveObserver(this); 362 window->RemoveObserver(this);
363 363
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 int task_id, 468 int task_id,
469 const std::string& package_name, 469 const std::string& package_name,
470 const std::string& activity_name) { 470 const std::string& activity_name) {
471 DCHECK(!GetAppWindowForTask(task_id)); 471 DCHECK(!GetAppWindowForTask(task_id));
472 const std::string arc_app_id = 472 const std::string arc_app_id =
473 ArcAppListPrefs::GetAppId(package_name, activity_name); 473 ArcAppListPrefs::GetAppId(package_name, activity_name);
474 const std::string shelf_app_id = GetShelfAppIdFromArcAppId(arc_app_id); 474 const std::string shelf_app_id = GetShelfAppIdFromArcAppId(arc_app_id);
475 task_id_to_app_window_info_[task_id] = 475 task_id_to_app_window_info_[task_id] =
476 base::MakeUnique<AppWindowInfo>(shelf_app_id); 476 base::MakeUnique<AppWindowInfo>(shelf_app_id);
477 // Don't create shelf icon for non-primary user. 477 // Don't create shelf icon for non-primary user.
478 if (observed_profile_ != owner()->GetProfile()) 478 if (observed_profile_ != owner()->profile())
479 return; 479 return;
480 480
481 AttachControllerToWindowsIfNeeded(); 481 AttachControllerToWindowsIfNeeded();
482 482
483 // Some tasks can be started in background and might have no window until 483 // Some tasks can be started in background and might have no window until
484 // pushed to the front. We need its representation on the shelf to give a user 484 // pushed to the front. We need its representation on the shelf to give a user
485 // control over it. 485 // control over it.
486 AttachControllerToTask(shelf_app_id, task_id); 486 AttachControllerToTask(shelf_app_id, task_id);
487 } 487 }
488 488
(...skipping 14 matching lines...) Expand all
503 if (!controller->window_count()) { 503 if (!controller->window_count()) {
504 owner()->CloseLauncherItem(controller->shelf_id()); 504 owner()->CloseLauncherItem(controller->shelf_id());
505 app_controller_map_.erase(it_controller); 505 app_controller_map_.erase(it_controller);
506 } 506 }
507 } 507 }
508 508
509 task_id_to_app_window_info_.erase(it); 509 task_id_to_app_window_info_.erase(it);
510 } 510 }
511 511
512 void ArcAppWindowLauncherController::OnTaskSetActive(int32_t task_id) { 512 void ArcAppWindowLauncherController::OnTaskSetActive(int32_t task_id) {
513 if (observed_profile_ != owner()->GetProfile()) { 513 if (observed_profile_ != owner()->profile()) {
514 active_task_id_ = task_id; 514 active_task_id_ = task_id;
515 return; 515 return;
516 } 516 }
517 517
518 AppWindow* previous_app_window = GetAppWindowForTask(active_task_id_); 518 AppWindow* previous_app_window = GetAppWindowForTask(active_task_id_);
519 if (previous_app_window) { 519 if (previous_app_window) {
520 owner()->SetItemStatus(previous_app_window->shelf_id(), 520 owner()->SetItemStatus(previous_app_window->shelf_id(),
521 ash::STATUS_RUNNING); 521 ash::STATUS_RUNNING);
522 previous_app_window->SetFullscreenMode( 522 previous_app_window->SetFullscreenMode(
523 previous_app_window->widget() && 523 previous_app_window->widget() &&
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 716
717 if (orientation_lock == arc::mojom::OrientationLock::CURRENT) { 717 if (orientation_lock == arc::mojom::OrientationLock::CURRENT) {
718 // Resolve the orientation when it first resolved. 718 // Resolve the orientation when it first resolved.
719 orientation_lock = GetCurrentOrientation(); 719 orientation_lock = GetCurrentOrientation();
720 info->set_requested_orientation_lock(orientation_lock); 720 info->set_requested_orientation_lock(orientation_lock);
721 } 721 }
722 ash::Shell* shell = ash::Shell::GetInstance(); 722 ash::Shell* shell = ash::Shell::GetInstance();
723 shell->screen_orientation_controller()->LockOrientationForWindow( 723 shell->screen_orientation_controller()->LockOrientationForWindow(
724 window, BlinkOrientationLockFromMojom(orientation_lock)); 724 window, BlinkOrientationLockFromMojom(orientation_lock));
725 } 725 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698