1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
content / public / browser / service_process_host.cc [blame]
// 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.
#include "content/public/browser/service_process_host.h"
#include "base/strings/utf_string_conversions.h"
#include "content/public/common/content_client.h"
namespace content {
ServiceProcessHost::Options::Options() = default;
ServiceProcessHost::Options::~Options() = default;
ServiceProcessHost::Options::Options(Options&&) = default;
ServiceProcessHost::Options& ServiceProcessHost::Options::WithDisplayName(
const std::string& name) {
display_name = base::UTF8ToUTF16(name);
return *this;
}
ServiceProcessHost::Options& ServiceProcessHost::Options::WithDisplayName(
const std::u16string& name) {
display_name = name;
return *this;
}
ServiceProcessHost::Options& ServiceProcessHost::Options::WithDisplayName(
int resource_id) {
display_name = GetContentClient()->GetLocalizedString(resource_id);
return *this;
}
ServiceProcessHost::Options& ServiceProcessHost::Options::WithSite(
const GURL& url) {
site = url;
return *this;
}
ServiceProcessHost::Options& ServiceProcessHost::Options::WithChildFlags(
int flags) {
child_flags = flags;
return *this;
}
ServiceProcessHost::Options&
ServiceProcessHost::Options::WithExtraCommandLineSwitches(
std::vector<std::string> switches) {
extra_switches = std::move(switches);
return *this;
}
ServiceProcessHost::Options& ServiceProcessHost::Options::WithProcessCallback(
base::OnceCallback<void(const base::Process&)> callback) {
process_callback = std::move(callback);
return *this;
}
#if BUILDFLAG(IS_WIN)
ServiceProcessHost::Options&
ServiceProcessHost::Options::WithPreloadedLibraries(
std::vector<base::FilePath> preloads,
base::PassKey<ServiceProcessHostPreloadLibraries> passkey) {
preload_libraries = std::move(preloads);
return *this;
}
#endif // #if BUILDFLAG(IS_WIN)
ServiceProcessHost::Options& ServiceProcessHost::Options::WithGpuClient(
base::PassKey<ServiceProcessHostGpuClient> passkey) {
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || \
BUILDFLAG(IS_MAC)
allow_gpu_client = true;
#endif
return *this;
}
ServiceProcessHost::Options ServiceProcessHost::Options::Pass() {
return std::move(*this);
}
} // namespace content