summaryrefslogtreecommitdiffstats
path: root/chrome/common/chrome_paths.cc
diff options
context:
space:
mode:
authorfinnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-02 11:07:29 +0000
committerfinnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-02 11:07:29 +0000
commited7bbb53170c3d54dfbd393c79fae6539fbab358 (patch)
treea700fc4826de8bcf622d8670d1b56db214b8e6d8 /chrome/common/chrome_paths.cc
parent3afa6af5c62863d3e4beafce49cb189e4e418d05 (diff)
downloadchromium_src-ed7bbb53170c3d54dfbd393c79fae6539fbab358.zip
chromium_src-ed7bbb53170c3d54dfbd393c79fae6539fbab358.tar.gz
chromium_src-ed7bbb53170c3d54dfbd393c79fae6539fbab358.tar.bz2
This is based on a patch from Alexandre Abreu (http://codereview.chromium.org/9963120/) that I've modified slightly to work on Windows.
Modifies the external extension preferences loader to load not only external_extensions.json but also extensions based on standalone per-extension json files. The new json files should be named <extension-id>.json and formatted as such: { "external_crx": "<relative path from the .json file>", "external_version": "x.x" } Also, for Linux, added a new search path: /usr/share/[chromium|google-chrome]/extensions. And finally, modifies the documentation to account for that change and to deprecate the external_extension.json files uses. BUG=75174 TEST=None Review URL: https://chromiumcodereview.appspot.com/10260010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134892 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/chrome_paths.cc')
-rw-r--r--chrome/common/chrome_paths.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc
index 3cacef7..37d1d92 100644
--- a/chrome/common/chrome_paths.cc
+++ b/chrome/common/chrome_paths.cc
@@ -71,6 +71,18 @@ const FilePath::CharType kGTalkPluginFileName[] =
FILE_PATH_LITERAL("pepper/libppgoogletalk.so");
#endif // defined(OS_POSIX) && !defined(OS_MACOSX)
+
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+// The path to the external extension <id>.json files.
+// /usr/share seems like a good choice, see: http://www.pathname.com/fhs/
+const char kFilepathSinglePrefExtensions[] =
+#if defined(GOOGLE_CHROME_BUILD)
+ FILE_PATH_LITERAL("/usr/share/google-chrome/extensions");
+#else
+ FILE_PATH_LITERAL("/usr/share/chromium/extensions");
+#endif // defined(GOOGLE_CHROME_BUILD)
+#endif // defined(OS_LINUX) && !defined(OS_CHROMEOS)
+
} // namespace
namespace chrome {
@@ -361,6 +373,12 @@ bool PathProvider(int key, FilePath* result) {
break;
}
#endif
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ case chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS: {
+ cur = FilePath(FILE_PATH_LITERAL(kFilepathSinglePrefExtensions));
+ break;
+ }
+#endif
case chrome::DIR_EXTERNAL_EXTENSIONS:
#if defined(OS_MACOSX)
if (!chrome::GetGlobalApplicationSupportDirectory(&cur))