OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/policy/remote_commands/device_commands_factory
_chromeos.h" | 5 #include "chrome/browser/chromeos/policy/remote_commands/device_commands_factory
_chromeos.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "base/threading/sequenced_worker_pool.h" | 10 #include "base/task_scheduler/post_task.h" |
11 #include "chrome/browser/chromeos/policy/remote_commands/device_command_fetch_st
atus_job.h" | 11 #include "chrome/browser/chromeos/policy/remote_commands/device_command_fetch_st
atus_job.h" |
12 #include "chrome/browser/chromeos/policy/remote_commands/device_command_reboot_j
ob.h" | 12 #include "chrome/browser/chromeos/policy/remote_commands/device_command_reboot_j
ob.h" |
13 #include "chrome/browser/chromeos/policy/remote_commands/device_command_screensh
ot_job.h" | 13 #include "chrome/browser/chromeos/policy/remote_commands/device_command_screensh
ot_job.h" |
14 #include "chrome/browser/chromeos/policy/remote_commands/device_command_set_volu
me_job.h" | 14 #include "chrome/browser/chromeos/policy/remote_commands/device_command_set_volu
me_job.h" |
15 #include "chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.h" | 15 #include "chrome/browser/chromeos/policy/remote_commands/screenshot_delegate.h" |
16 #include "chromeos/dbus/dbus_thread_manager.h" | 16 #include "chromeos/dbus/dbus_thread_manager.h" |
17 #include "components/policy/core/common/remote_commands/remote_command_job.h" | 17 #include "components/policy/core/common/remote_commands/remote_command_job.h" |
18 #include "components/policy/proto/device_management_backend.pb.h" | 18 #include "components/policy/proto/device_management_backend.pb.h" |
19 #include "content/public/browser/browser_thread.h" | |
20 | 19 |
21 namespace em = enterprise_management; | 20 namespace em = enterprise_management; |
22 | 21 |
23 namespace policy { | 22 namespace policy { |
24 | 23 |
25 DeviceCommandsFactoryChromeOS::DeviceCommandsFactoryChromeOS() { | 24 DeviceCommandsFactoryChromeOS::DeviceCommandsFactoryChromeOS() { |
26 } | 25 } |
27 | 26 |
28 DeviceCommandsFactoryChromeOS::~DeviceCommandsFactoryChromeOS() { | 27 DeviceCommandsFactoryChromeOS::~DeviceCommandsFactoryChromeOS() { |
29 } | 28 } |
30 | 29 |
31 std::unique_ptr<RemoteCommandJob> | 30 std::unique_ptr<RemoteCommandJob> |
32 DeviceCommandsFactoryChromeOS::BuildJobForType(em::RemoteCommand_Type type) { | 31 DeviceCommandsFactoryChromeOS::BuildJobForType(em::RemoteCommand_Type type) { |
33 switch (type) { | 32 switch (type) { |
34 case em::RemoteCommand_Type_DEVICE_REBOOT: | 33 case em::RemoteCommand_Type_DEVICE_REBOOT: |
35 return base::WrapUnique<RemoteCommandJob>(new DeviceCommandRebootJob( | 34 return base::WrapUnique<RemoteCommandJob>(new DeviceCommandRebootJob( |
36 chromeos::DBusThreadManager::Get()->GetPowerManagerClient())); | 35 chromeos::DBusThreadManager::Get()->GetPowerManagerClient())); |
37 case em::RemoteCommand_Type_DEVICE_SCREENSHOT: | 36 case em::RemoteCommand_Type_DEVICE_SCREENSHOT: |
38 return base::WrapUnique<RemoteCommandJob>( | 37 return base::WrapUnique<RemoteCommandJob>( |
39 new DeviceCommandScreenshotJob(base::MakeUnique<ScreenshotDelegate>( | 38 new DeviceCommandScreenshotJob(base::MakeUnique<ScreenshotDelegate>( |
40 content::BrowserThread::GetBlockingPool()->GetSequencedTaskRunner( | 39 base::CreateSequencedTaskRunnerWithTraits( |
41 content::BrowserThread::GetBlockingPool() | 40 base::TaskTraits() |
42 ->GetSequenceToken())))); | 41 .MayBlock() |
| 42 .WithPriority(base::TaskPriority::BACKGROUND) |
| 43 .WithShutdownBehavior( |
| 44 base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN))))); |
43 case em::RemoteCommand_Type_DEVICE_SET_VOLUME: | 45 case em::RemoteCommand_Type_DEVICE_SET_VOLUME: |
44 return base::WrapUnique<RemoteCommandJob>( | 46 return base::WrapUnique<RemoteCommandJob>( |
45 new DeviceCommandSetVolumeJob()); | 47 new DeviceCommandSetVolumeJob()); |
46 case em::RemoteCommand_Type_DEVICE_FETCH_STATUS: | 48 case em::RemoteCommand_Type_DEVICE_FETCH_STATUS: |
47 return base::WrapUnique<RemoteCommandJob>( | 49 return base::WrapUnique<RemoteCommandJob>( |
48 new DeviceCommandFetchStatusJob()); | 50 new DeviceCommandFetchStatusJob()); |
49 default: | 51 default: |
50 return nullptr; | 52 return nullptr; |
51 } | 53 } |
52 } | 54 } |
53 | 55 |
54 } // namespace policy | 56 } // namespace policy |
OLD | NEW |