OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 CONTENT_PUBLIC_BROWSER_UTILITY_PROCESS_MOJO_CLIENT_H_ | 5 #ifndef CONTENT_PUBLIC_BROWSER_UTILITY_PROCESS_MOJO_CLIENT_H_ |
6 #define CONTENT_PUBLIC_BROWSER_UTILITY_PROCESS_MOJO_CLIENT_H_ | 6 #define CONTENT_PUBLIC_BROWSER_UTILITY_PROCESS_MOJO_CLIENT_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 void set_disable_sandbox() { disable_sandbox_ = true; } | 117 void set_disable_sandbox() { disable_sandbox_ = true; } |
118 | 118 |
119 #if defined(OS_WIN) | 119 #if defined(OS_WIN) |
120 void set_run_elevated() { | 120 void set_run_elevated() { |
121 disable_sandbox_ = true; | 121 disable_sandbox_ = true; |
122 run_elevated_ = true; | 122 run_elevated_ = true; |
123 } | 123 } |
124 #endif // defined(OS_WIN) | 124 #endif // defined(OS_WIN) |
125 | 125 |
126 private: | 126 private: |
127 // Starts the utility process and connects to the remote Mojo service. | 127 // Starts the utility process and binds the specified interface. |
128 void StartOnIOThread(const std::string& mojo_interface_name, | 128 void StartOnIOThread(const std::string& interface_name, |
129 mojo::ScopedMessagePipeHandle interface_pipe) { | 129 mojo::ScopedMessagePipeHandle interface_pipe) { |
130 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 130 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
131 | 131 |
132 utility_host_ = UtilityProcessHost::Create(nullptr, nullptr)->AsWeakPtr(); | 132 utility_host_ = UtilityProcessHost::Create(nullptr, nullptr)->AsWeakPtr(); |
133 utility_host_->SetName(process_name_); | 133 utility_host_->SetName(process_name_); |
134 | 134 |
135 if (!exposed_directory_.empty()) | 135 if (!exposed_directory_.empty()) |
136 utility_host_->SetExposedDir(exposed_directory_); | 136 utility_host_->SetExposedDir(exposed_directory_); |
137 | 137 |
138 if (disable_sandbox_) | 138 if (disable_sandbox_) |
139 utility_host_->DisableSandbox(); | 139 utility_host_->DisableSandbox(); |
140 #if defined(OS_WIN) | 140 #if defined(OS_WIN) |
141 if (run_elevated_) { | 141 if (run_elevated_) { |
142 DCHECK(disable_sandbox_); | 142 DCHECK(disable_sandbox_); |
143 utility_host_->ElevatePrivileges(); | 143 utility_host_->ElevatePrivileges(); |
144 } | 144 } |
145 #endif // defined(OS_WIN) | 145 #endif // defined(OS_WIN) |
146 | 146 |
147 utility_host_->Start(); | 147 utility_host_->Start(); |
148 | 148 |
149 utility_host_->GetRemoteInterfaces()->GetInterface( | 149 utility_host_->BindInterface(interface_name, std::move(interface_pipe)); |
150 mojo_interface_name, std::move(interface_pipe)); | |
151 } | 150 } |
152 | 151 |
153 // Properties of the utility process. | 152 // Properties of the utility process. |
154 base::string16 process_name_; | 153 base::string16 process_name_; |
155 base::FilePath exposed_directory_; | 154 base::FilePath exposed_directory_; |
156 bool disable_sandbox_ = false; | 155 bool disable_sandbox_ = false; |
157 #if defined(OS_WIN) | 156 #if defined(OS_WIN) |
158 bool run_elevated_ = false; | 157 bool run_elevated_ = false; |
159 #endif // defined(OS_WIN) | 158 #endif // defined(OS_WIN) |
160 | 159 |
(...skipping 15 matching lines...) Expand all Loading... |
176 | 175 |
177 // Checks that this class is always accessed from the same thread. | 176 // Checks that this class is always accessed from the same thread. |
178 base::ThreadChecker thread_checker_; | 177 base::ThreadChecker thread_checker_; |
179 | 178 |
180 DISALLOW_COPY_AND_ASSIGN(UtilityProcessMojoClient); | 179 DISALLOW_COPY_AND_ASSIGN(UtilityProcessMojoClient); |
181 }; | 180 }; |
182 | 181 |
183 } // namespace content | 182 } // namespace content |
184 | 183 |
185 #endif // CONTENT_PUBLIC_BROWSER_UTILITY_PROCESS_MOJO_CLIENT_H_ | 184 #endif // CONTENT_PUBLIC_BROWSER_UTILITY_PROCESS_MOJO_CLIENT_H_ |
OLD | NEW |