OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // Defines InterceptionManager, the class in charge of setting up interceptions | 5 // Defines InterceptionManager, the class in charge of setting up interceptions |
6 // for the sandboxed process. For more details see | 6 // for the sandboxed process. For more details see |
7 // http://dev.chromium.org/developers/design-documents/sandbox . | 7 // http://dev.chromium.org/developers/design-documents/sandbox . |
8 | 8 |
9 #ifndef SANDBOX_SRC_INTERCEPTION_H_ | 9 #ifndef SANDBOX_SRC_INTERCEPTION_H_ |
10 #define SANDBOX_SRC_INTERCEPTION_H_ | 10 #define SANDBOX_SRC_INTERCEPTION_H_ |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 // the child that may cause it to resume momentarily, such as injecting | 127 // the child that may cause it to resume momentarily, such as injecting |
128 // threads or APCs. | 128 // threads or APCs. |
129 // | 129 // |
130 // This function must be called only once, after all interceptions have been | 130 // This function must be called only once, after all interceptions have been |
131 // set up using AddToPatchedFunctions. | 131 // set up using AddToPatchedFunctions. |
132 bool InitializeInterceptions(); | 132 bool InitializeInterceptions(); |
133 | 133 |
134 private: | 134 private: |
135 // Used to store the interception information until the actual set-up. | 135 // Used to store the interception information until the actual set-up. |
136 struct InterceptionData { | 136 struct InterceptionData { |
| 137 InterceptionData(); |
| 138 ~InterceptionData(); |
| 139 |
137 InterceptionType type; // Interception type. | 140 InterceptionType type; // Interception type. |
138 InterceptorId id; // Interceptor id. | 141 InterceptorId id; // Interceptor id. |
139 base::string16 dll; // Name of dll to intercept. | 142 base::string16 dll; // Name of dll to intercept. |
140 std::string function; // Name of function to intercept. | 143 std::string function; // Name of function to intercept. |
141 std::string interceptor; // Name of interceptor function. | 144 std::string interceptor; // Name of interceptor function. |
142 const void* interceptor_address; // Interceptor's entry point. | 145 const void* interceptor_address; // Interceptor's entry point. |
143 }; | 146 }; |
144 | 147 |
145 // Calculates the size of the required configuration buffer. | 148 // Calculates the size of the required configuration buffer. |
146 size_t GetBufferSize() const; | 149 size_t GetBufferSize() const; |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 // |TargetServices::InitCalled()| returns true, because it is only then that | 275 // |TargetServices::InitCalled()| returns true, because it is only then that |
273 // we are guaranteed that our IAT has been initialized. | 276 // we are guaranteed that our IAT has been initialized. |
274 #define INTERCEPT_EAT(manager, dll, function, id, num_params) \ | 277 #define INTERCEPT_EAT(manager, dll, function, id, num_params) \ |
275 manager->AddToPatchedFunctions(dll, #function, sandbox::INTERCEPTION_EAT, \ | 278 manager->AddToPatchedFunctions(dll, #function, sandbox::INTERCEPTION_EAT, \ |
276 MAKE_SERVICE_NAME(function), id) | 279 MAKE_SERVICE_NAME(function), id) |
277 #endif // SANDBOX_EXPORTS | 280 #endif // SANDBOX_EXPORTS |
278 | 281 |
279 } // namespace sandbox | 282 } // namespace sandbox |
280 | 283 |
281 #endif // SANDBOX_SRC_INTERCEPTION_H_ | 284 #endif // SANDBOX_SRC_INTERCEPTION_H_ |
OLD | NEW |