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 "sandbox/win/src/top_level_dispatcher.h" | 5 #include "sandbox/win/src/top_level_dispatcher.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 #include <string.h> | 8 #include <string.h> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 | 55 |
56 dispatcher = new RegistryDispatcher(policy_); | 56 dispatcher = new RegistryDispatcher(policy_); |
57 ipc_targets_[IPC_NTCREATEKEY_TAG] = dispatcher; | 57 ipc_targets_[IPC_NTCREATEKEY_TAG] = dispatcher; |
58 ipc_targets_[IPC_NTOPENKEY_TAG] = dispatcher; | 58 ipc_targets_[IPC_NTOPENKEY_TAG] = dispatcher; |
59 registry_dispatcher_.reset(dispatcher); | 59 registry_dispatcher_.reset(dispatcher); |
60 | 60 |
61 dispatcher = new ProcessMitigationsWin32KDispatcher(policy_); | 61 dispatcher = new ProcessMitigationsWin32KDispatcher(policy_); |
62 ipc_targets_[IPC_GDI_GDIDLLINITIALIZE_TAG] = dispatcher; | 62 ipc_targets_[IPC_GDI_GDIDLLINITIALIZE_TAG] = dispatcher; |
63 ipc_targets_[IPC_GDI_GETSTOCKOBJECT_TAG] = dispatcher; | 63 ipc_targets_[IPC_GDI_GETSTOCKOBJECT_TAG] = dispatcher; |
64 ipc_targets_[IPC_USER_REGISTERCLASSW_TAG] = dispatcher; | 64 ipc_targets_[IPC_USER_REGISTERCLASSW_TAG] = dispatcher; |
| 65 ipc_targets_[IPC_USER_ENUMDISPLAYMONITORS_TAG] = dispatcher; |
| 66 ipc_targets_[IPC_USER_ENUMDISPLAYDEVICES_TAG] = dispatcher; |
| 67 ipc_targets_[IPC_USER_GETMONITORINFO_TAG] = dispatcher; |
| 68 ipc_targets_[IPC_GDI_CREATEOPMPROTECTEDOUTPUTS_TAG] = dispatcher; |
| 69 ipc_targets_[IPC_GDI_GETCERTIFICATE_TAG] = dispatcher; |
| 70 ipc_targets_[IPC_GDI_GETCERTIFICATESIZE_TAG] = dispatcher; |
| 71 ipc_targets_[IPC_GDI_DESTROYOPMPROTECTEDOUTPUT_TAG] = dispatcher; |
| 72 ipc_targets_[IPC_GDI_CONFIGUREOPMPROTECTEDOUTPUT_TAG] = dispatcher; |
| 73 ipc_targets_[IPC_GDI_GETOPMINFORMATION_TAG] = dispatcher; |
| 74 ipc_targets_[IPC_GDI_GETOPMRANDOMNUMBER_TAG] = dispatcher; |
| 75 ipc_targets_[IPC_GDI_GETSUGGESTEDOPMPROTECTEDOUTPUTARRAYSIZE_TAG] = |
| 76 dispatcher; |
| 77 ipc_targets_[IPC_GDI_SETOPMSIGNINGKEYANDSEQUENCENUMBERS_TAG] = dispatcher; |
65 process_mitigations_win32k_dispatcher_.reset(dispatcher); | 78 process_mitigations_win32k_dispatcher_.reset(dispatcher); |
66 } | 79 } |
67 | 80 |
68 TopLevelDispatcher::~TopLevelDispatcher() {} | 81 TopLevelDispatcher::~TopLevelDispatcher() {} |
69 | 82 |
70 // When an IPC is ready in any of the targets we get called. We manage an array | 83 // When an IPC is ready in any of the targets we get called. We manage an array |
71 // of IPC dispatchers which are keyed on the IPC tag so we normally delegate | 84 // of IPC dispatchers which are keyed on the IPC tag so we normally delegate |
72 // to the appropriate dispatcher unless we can handle the IPC call ourselves. | 85 // to the appropriate dispatcher unless we can handle the IPC call ourselves. |
73 Dispatcher* TopLevelDispatcher::OnMessageReady(IPCParams* ipc, | 86 Dispatcher* TopLevelDispatcher::OnMessageReady(IPCParams* ipc, |
74 CallbackGeneric* callback) { | 87 CallbackGeneric* callback) { |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 } | 145 } |
133 | 146 |
134 Dispatcher* TopLevelDispatcher::GetDispatcher(int ipc_tag) { | 147 Dispatcher* TopLevelDispatcher::GetDispatcher(int ipc_tag) { |
135 if (ipc_tag >= IPC_LAST_TAG || ipc_tag <= IPC_UNUSED_TAG) | 148 if (ipc_tag >= IPC_LAST_TAG || ipc_tag <= IPC_UNUSED_TAG) |
136 return NULL; | 149 return NULL; |
137 | 150 |
138 return ipc_targets_[ipc_tag]; | 151 return ipc_targets_[ipc_tag]; |
139 } | 152 } |
140 | 153 |
141 } // namespace sandbox | 154 } // namespace sandbox |
OLD | NEW |