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
85
86
87
88
89
90
91
92
|
--- chrome/common/chrome_paths.cc.orig 2021-04-14 18:40:56 UTC
+++ chrome/common/chrome_paths.cc
@@ -44,15 +44,23 @@
namespace {
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
// The path to the external extension <id>.json files.
// /usr/share seems like a good choice, see: http://www.pathname.com/fhs/
const base::FilePath::CharType kFilepathSinglePrefExtensions[] =
+#if defined(OS_BSD)
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+ FILE_PATH_LITERAL("/usr/local/share/google-chrome/extensions");
+#else
+ FILE_PATH_LITERAL("/usr/local/share/chromium/extensions");
+#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
+#else
+#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
FILE_PATH_LITERAL("/usr/share/google-chrome/extensions");
#else
FILE_PATH_LITERAL("/usr/share/chromium/extensions");
#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
+#endif
#endif // defined(OS_LINUX) || defined(OS_CHROMEOS)
@@ -175,7 +183,7 @@ bool PathProvider(int key, base::FilePath* result) {
return false;
break;
case chrome::DIR_DEFAULT_DOWNLOADS_SAFE:
-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
if (!GetUserDownloadsDirectorySafe(&cur))
return false;
break;
@@ -425,6 +433,9 @@ bool PathProvider(int key, base::FilePath* result) {
case chrome::DIR_POLICY_FILES: {
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
cur = base::FilePath(FILE_PATH_LITERAL("/etc/opt/chrome/policies"));
+#elif defined(OS_BSD)
+ cur = base::FilePath(FILE_PATH_LITERAL(
+ "/usr/local/etc/chrome/policies"));
#else
cur = base::FilePath(FILE_PATH_LITERAL("/etc/chromium/policies"));
#endif
@@ -436,7 +447,7 @@ bool PathProvider(int key, base::FilePath* result) {
#if BUILDFLAG(IS_CHROMEOS_ASH) || \
((defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
BUILDFLAG(CHROMIUM_BRANDING)) || \
- defined(OS_MAC)
+ defined(OS_MAC) || defined(OS_BSD)
case chrome::DIR_USER_EXTERNAL_EXTENSIONS: {
if (!base::PathService::Get(chrome::DIR_USER_DATA, &cur))
return false;
@@ -444,7 +455,7 @@ bool PathProvider(int key, base::FilePath* result) {
break;
}
#endif
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
case chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS: {
cur = base::FilePath(kFilepathSinglePrefExtensions);
break;
@@ -479,7 +490,7 @@ bool PathProvider(int key, base::FilePath* result) {
#endif
break;
-#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || defined(OS_BSD)
case chrome::DIR_NATIVE_MESSAGING:
#if defined(OS_MAC)
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
@@ -493,6 +504,9 @@ bool PathProvider(int key, base::FilePath* result) {
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
cur = base::FilePath(FILE_PATH_LITERAL(
"/etc/opt/chrome/native-messaging-hosts"));
+#elif defined(OS_BSD)
+ cur = base::FilePath(FILE_PATH_LITERAL(
+ "/usr/local/etc/chrome/native-messaging-hosts"));
#else
cur = base::FilePath(FILE_PATH_LITERAL(
"/etc/chromium/native-messaging-hosts"));
@@ -505,7 +519,7 @@ bool PathProvider(int key, base::FilePath* result) {
return false;
cur = cur.Append(FILE_PATH_LITERAL("NativeMessagingHosts"));
break;
-#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC)
+#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || defined(OS_BSD)
#if !defined(OS_ANDROID)
case chrome::DIR_GLOBAL_GCM_STORE:
if (!base::PathService::Get(chrome::DIR_USER_DATA, &cur))
|