| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2010 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 #ifndef SANDBOX_TESTS_COMMON_CONTROLLER_H_ | 5 #ifndef SANDBOX_TESTS_COMMON_CONTROLLER_H_ |
| 6 #define SANDBOX_TESTS_COMMON_CONTROLLER_H__ | 6 #define SANDBOX_TESTS_COMMON_CONTROLLER_H__ |
| 7 | 7 |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| 11 #include "base/win/scoped_handle.h" | |
| 12 #include "sandbox/src/sandbox.h" | 11 #include "sandbox/src/sandbox.h" |
| 13 | 12 |
| 14 namespace sandbox { | 13 namespace sandbox { |
| 15 | 14 |
| 16 // See winerror.h for details. | 15 // See winerror.h for details. |
| 17 #define SEVERITY_INFO_FLAGS 0x40000000 | 16 #define SEVERITY_INFO_FLAGS 0x40000000 |
| 18 #define SEVERITY_ERROR_FLAGS 0xC0000000 | 17 #define SEVERITY_ERROR_FLAGS 0xC0000000 |
| 19 #define CUSTOMER_CODE 0x20000000 | 18 #define CUSTOMER_CODE 0x20000000 |
| 20 #define SBOX_TESTS_FACILITY 0x05B10000 | 19 #define SBOX_TESTS_FACILITY 0x05B10000 |
| 21 | 20 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 // succeeds. | 84 // succeeds. |
| 86 bool AddFsRule(TargetPolicy::Semantics semantics, const wchar_t* pattern); | 85 bool AddFsRule(TargetPolicy::Semantics semantics, const wchar_t* pattern); |
| 87 | 86 |
| 88 // Starts a child process in the sandbox and ask it to run |command|. Returns | 87 // Starts a child process in the sandbox and ask it to run |command|. Returns |
| 89 // a SboxTestResult. By default, the test runs AFTER_REVERT. | 88 // a SboxTestResult. By default, the test runs AFTER_REVERT. |
| 90 int RunTest(const wchar_t* command); | 89 int RunTest(const wchar_t* command); |
| 91 | 90 |
| 92 // Sets the timeout value for the child to run the command and return. | 91 // Sets the timeout value for the child to run the command and return. |
| 93 void SetTimeout(DWORD timeout_ms); | 92 void SetTimeout(DWORD timeout_ms); |
| 94 | 93 |
| 95 // Sets TestRunner to return without waiting for the process to exit. | |
| 96 void SetAsynchronous(bool is_async) { is_async_ = is_async; } | |
| 97 | |
| 98 // Sets the desired state for the test to run. | 94 // Sets the desired state for the test to run. |
| 99 void SetTestState(SboxTestsState desired_state); | 95 void SetTestState(SboxTestsState desired_state); |
| 100 | 96 |
| 101 // Returns the pointers to the policy object. It can be used to modify | 97 // Returns the pointers to the policy object. It can be used to modify |
| 102 // the policy manually. | 98 // the policy manually. |
| 103 TargetPolicy* GetPolicy(); | 99 TargetPolicy* GetPolicy(); |
| 104 | 100 |
| 105 // Return the process handle for an asynchronous test. | |
| 106 HANDLE process() { return target_process_; } | |
| 107 | |
| 108 // Return the process ID for an asynchronous test. | |
| 109 DWORD process_id() { return target_process_id_; } | |
| 110 | |
| 111 private: | 101 private: |
| 112 // Initializes the data in the object. Sets is_init_ to tree if the | 102 // Initializes the data in the object. Sets is_init_ to tree if the |
| 113 // function succeeds. This is meant to be called from the constructor. | 103 // function succeeds. This is meant to be called from the constructor. |
| 114 void Init(JobLevel job_level, TokenLevel startup_token, | 104 void Init(JobLevel job_level, TokenLevel startup_token, |
| 115 TokenLevel main_token); | 105 TokenLevel main_token); |
| 116 | 106 |
| 117 // The actual runner. | 107 // The actual runner. |
| 118 int InternalRunTest(const wchar_t* command); | 108 int InternalRunTest(const wchar_t* command); |
| 119 | 109 |
| 120 BrokerServices* broker_; | 110 BrokerServices* broker_; |
| 121 TargetPolicy* policy_; | 111 TargetPolicy* policy_; |
| 122 DWORD timeout_; | 112 DWORD timeout_; |
| 123 SboxTestsState state_; | 113 SboxTestsState state_; |
| 124 bool is_init_; | 114 bool is_init_; |
| 125 bool is_async_; | |
| 126 base::win::ScopedHandle target_process_; | |
| 127 DWORD target_process_id_; | |
| 128 }; | 115 }; |
| 129 | 116 |
| 130 // Returns the broker services. | 117 // Returns the broker services. |
| 131 BrokerServices* GetBroker(); | 118 BrokerServices* GetBroker(); |
| 132 | 119 |
| 133 // Constructs a full path to a file inside the system32 (or syswow64) folder. | 120 // Constructs a full path to a file inside the system32 (or syswow64) folder. |
| 134 std::wstring MakePathToSys(const wchar_t* name, bool is_obj_man_path); | 121 std::wstring MakePathToSys(const wchar_t* name, bool is_obj_man_path); |
| 135 | 122 |
| 136 // Runs the given test on the target process. | 123 // Runs the given test on the target process. |
| 137 int DispatchCall(int argc, wchar_t **argv); | 124 int DispatchCall(int argc, wchar_t **argv); |
| 138 | 125 |
| 139 } // namespace sandbox | 126 } // namespace sandbox |
| 140 | 127 |
| 141 #endif // SANDBOX_TESTS_COMMON_CONTROLLER_H_ | 128 #endif // SANDBOX_TESTS_COMMON_CONTROLLER_H_ |
| OLD | NEW |