OLD | NEW |
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 | 4 |
5 #include "chrome/browser/chromeos/arc/arc_session_manager.h" | 5 #include "chrome/browser/chromeos/arc/arc_session_manager.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "ash/common/shelf/shelf_delegate.h" | 9 #include "ash/common/shelf/shelf_delegate.h" |
10 #include "ash/common/wm_shell.h" | 10 #include "ash/common/wm_shell.h" |
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
450 if (support_host_) { | 450 if (support_host_) { |
451 support_host_->Close(); | 451 support_host_->Close(); |
452 support_host_->RemoveObserver(this); | 452 support_host_->RemoveObserver(this); |
453 support_host_.reset(); | 453 support_host_.reset(); |
454 } | 454 } |
455 context_.reset(); | 455 context_.reset(); |
456 profile_ = nullptr; | 456 profile_ = nullptr; |
457 SetState(State::NOT_INITIALIZED); | 457 SetState(State::NOT_INITIALIZED); |
458 } | 458 } |
459 | 459 |
460 | |
461 void ArcSessionManager::ShutdownSession() { | 460 void ArcSessionManager::ShutdownSession() { |
462 arc_sign_in_timer_.Stop(); | 461 arc_sign_in_timer_.Stop(); |
463 playstore_launcher_.reset(); | 462 playstore_launcher_.reset(); |
464 terms_of_service_negotiator_.reset(); | 463 terms_of_service_negotiator_.reset(); |
465 android_management_checker_.reset(); | 464 android_management_checker_.reset(); |
466 arc_session_runner_->RequestStop(); | 465 arc_session_runner_->RequestStop(); |
467 // TODO(hidehiko): The ARC instance's stopping is asynchronous, so it might | 466 // TODO(hidehiko): The ARC instance's stopping is asynchronous, so it might |
468 // still be running when we return from this function. Do not set the | 467 // still be running when we return from this function. Do not set the |
469 // STOPPED state immediately here. | 468 // STOPPED state immediately here. |
470 if (state_ != State::NOT_INITIALIZED && state_ != State::REMOVING_DATA_DIR) | 469 if (state_ != State::NOT_INITIALIZED && state_ != State::REMOVING_DATA_DIR) |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
588 prefs->SetBoolean(prefs::kArcTermsAccepted, true); | 587 prefs->SetBoolean(prefs::kArcTermsAccepted, true); |
589 | 588 |
590 // Skip to show UI asking users to set up ARC OptIn preferences, if all of | 589 // Skip to show UI asking users to set up ARC OptIn preferences, if all of |
591 // them are managed by the admin policy. Note that the ToS agreement is anyway | 590 // them are managed by the admin policy. Note that the ToS agreement is anyway |
592 // not shown in the case of the managed ARC. | 591 // not shown in the case of the managed ARC. |
593 if (IsArcPlayStoreEnabledPreferenceManagedForProfile(profile_) && | 592 if (IsArcPlayStoreEnabledPreferenceManagedForProfile(profile_) && |
594 AreArcAllOptInPreferencesManagedForProfile(profile_)) { | 593 AreArcAllOptInPreferencesManagedForProfile(profile_)) { |
595 prefs->SetBoolean(prefs::kArcTermsAccepted, true); | 594 prefs->SetBoolean(prefs::kArcTermsAccepted, true); |
596 } | 595 } |
597 | 596 |
598 // If it is marked that sign in has been successfully done, then directly | 597 // If it is marked that sign in has been successfully done, if ARC has been |
599 // start ARC. | 598 // set up to always start, then directly start ARC. |
600 // For testing, and for Kiosk mode, we also skip ToS negotiation procedure. | 599 // For testing, and for Kiosk mode, we also skip ToS negotiation procedure. |
601 // For backward compatibility, this check needs to be prior to the | 600 // For backward compatibility, this check needs to be prior to the |
602 // kArcTermsAccepted check below. | 601 // kArcTermsAccepted check below. |
603 if (prefs->GetBoolean(prefs::kArcSignedIn) || | 602 if (prefs->GetBoolean(prefs::kArcSignedIn) || ShouldArcAlwaysStart() || |
604 IsArcOptInVerificationDisabled() || IsArcKioskMode()) { | 603 IsArcOptInVerificationDisabled() || IsArcKioskMode()) { |
605 StartArc(); | 604 StartArc(); |
606 // Check Android management in parallel. | 605 // Check Android management in parallel. |
607 // Note: StartBackgroundAndroidManagementCheck() may call | 606 // Note: StartBackgroundAndroidManagementCheck() may call |
608 // OnBackgroundAndroidManagementChecked() synchronously (or | 607 // OnBackgroundAndroidManagementChecked() synchronously (or |
609 // asynchornously). In the callback, Google Play Store enabled preference | 608 // asynchornously). In the callback, Google Play Store enabled preference |
610 // can be set to false if managed, and it triggers RequestDisable() via | 609 // can be set to false if managed, and it triggers RequestDisable() via |
611 // ArcPlayStoreEnabledPreferenceHandler. | 610 // ArcPlayStoreEnabledPreferenceHandler. |
612 // Thus, StartArc() should be called so that disabling should work even | 611 // Thus, StartArc() should be called so that disabling should work even |
613 // if synchronous call case. | 612 // if synchronous call case. |
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
913 | 912 |
914 #undef MAP_STATE | 913 #undef MAP_STATE |
915 | 914 |
916 // Some compilers report an error even if all values of an enum-class are | 915 // Some compilers report an error even if all values of an enum-class are |
917 // covered exhaustively in a switch statement. | 916 // covered exhaustively in a switch statement. |
918 NOTREACHED() << "Invalid value " << static_cast<int>(state); | 917 NOTREACHED() << "Invalid value " << static_cast<int>(state); |
919 return os; | 918 return os; |
920 } | 919 } |
921 | 920 |
922 } // namespace arc | 921 } // namespace arc |
OLD | NEW |