| Index: components/arc/arc_util.cc
|
| diff --git a/components/arc/arc_util.cc b/components/arc/arc_util.cc
|
| index 6a82a7046b5eb813c2bb2f7b40a01205326194f0..9f2b373744e82a231a7cee9964dec556d0840495 100644
|
| --- a/components/arc/arc_util.cc
|
| +++ b/components/arc/arc_util.cc
|
| @@ -10,6 +10,8 @@
|
| #include "base/command_line.h"
|
| #include "base/feature_list.h"
|
| #include "chromeos/chromeos_switches.h"
|
| +#include "chromeos/dbus/dbus_thread_manager.h"
|
| +#include "chromeos/dbus/session_manager_client.h"
|
| #include "components/user_manager/user_manager.h"
|
| #include "ui/aura/client/aura_constants.h"
|
| #include "ui/aura/window.h"
|
| @@ -29,6 +31,12 @@ constexpr char kAvailabilityNone[] = "none";
|
| constexpr char kAvailabilityInstalled[] = "installed";
|
| constexpr char kAvailabilityOfficiallySupported[] = "officially-supported";
|
|
|
| +void SetArcCpuRestrictionCallback(bool success) {
|
| + VLOG(2) << "Finished prioritizing the instance: result=" << success;
|
| + if (!success)
|
| + LOG(ERROR) << "Failed to prioritize ARC";
|
| +}
|
| +
|
| } // namespace
|
|
|
| bool IsArcAvailable() {
|
| @@ -105,4 +113,13 @@ bool IsArcAppWindow(aura::Window* window) {
|
| static_cast<int>(ash::AppType::ARC_APP);
|
| }
|
|
|
| +void PrioritizeArcContainer() {
|
| + VLOG(2) << "Prioritizing the instance";
|
| + chromeos::SessionManagerClient* session_manager_client =
|
| + chromeos::DBusThreadManager::Get()->GetSessionManagerClient();
|
| + session_manager_client->SetArcCpuRestriction(
|
| + login_manager::CONTAINER_CPU_RESTRICTION_FOREGROUND,
|
| + base::Bind(SetArcCpuRestrictionCallback));
|
| +}
|
| +
|
| } // namespace arc
|
|
|