| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CONTENT_CHILD_BROWSER_EXPOSED_CHILD_INTERFACES_H_ |
| #define CONTENT_CHILD_BROWSER_EXPOSED_CHILD_INTERFACES_H_ |
| |
| #include "base/memory/scoped_refptr.h" |
| |
| namespace base { |
| class SequencedTaskRunner; |
| } |
| |
| namespace mojo { |
| class BinderMap; |
| } |
| |
| namespace content { |
| |
| // Populates |*binders| with callbacks to expose interface to the browser |
| // process from all child processes (including renderers, GPU, service |
| // processes, etc.). Interfaces exposed here can be acquired in the browser via |
| // |RenderProcessHost::BindReceiver()| or |ChildProcessHost::BindReceiver()|. |
| // |
| // |in_browser_process| is true if the child process is running in the browser |
| // process. For example, single-process mode, or in-process gpu mode (forced |
| // by low-end device mode) makes all child processes or gpu process run in |
| // the browser process. If the services depend on whether the child process |
| // is running in the browser process or not (e.g. if using a process-wide |
| // global variables and |in_browser_process| is true, the browser process and |
| // the child process will use the same global variables. |
| void ExposeChildInterfacesToBrowser( |
| scoped_refptr<base::SequencedTaskRunner> io_task_runner, |
| bool in_browser_process, |
| mojo::BinderMap* binders); |
| |
| } // namespace content |
| |
| #endif // CONTENT_CHILD_BROWSER_EXPOSED_CHILD_INTERFACES_H_ |