| Index: chrome/browser/extensions/external_pref_extension_loader.h
|
| diff --git a/chrome/browser/extensions/external_pref_extension_loader.h b/chrome/browser/extensions/external_pref_extension_loader.h
|
| index 37b8196adaa785dac1be85bb236f223fccd46a4f..fbf7001b300719390754420a37ff320ccad224c4 100644
|
| --- a/chrome/browser/extensions/external_pref_extension_loader.h
|
| +++ b/chrome/browser/extensions/external_pref_extension_loader.h
|
| @@ -19,24 +19,38 @@
|
| // thread and they are expecting public method calls from the UI thread.
|
| class ExternalPrefExtensionLoader : public ExternalExtensionLoader {
|
| public:
|
| + enum Options {
|
| + NONE = 0,
|
| +
|
| + // Ensure that only root can force an external install by checking
|
| + // that all components of the path to external extensions files are
|
| + // owned by root and not writable by any non-root user.
|
| + ENSURE_PATH_CONTROLLED_BY_ADMIN = 1 << 0
|
| + };
|
| +
|
| // |base_path_key| is the directory containing the external_extensions.json
|
| // file. Relative file paths to extension files are resolved relative
|
| // to this path.
|
| - explicit ExternalPrefExtensionLoader(int base_path_key);
|
| + explicit ExternalPrefExtensionLoader(int base_path_key, Options options);
|
|
|
| virtual const FilePath GetBaseCrxFilePath();
|
|
|
| protected:
|
| virtual void StartLoading();
|
| + bool IsOptionSet(Options opt) {
|
| + return (options_ & opt);
|
| + }
|
|
|
| private:
|
| friend class base::RefCountedThreadSafe<ExternalExtensionLoader>;
|
|
|
| virtual ~ExternalPrefExtensionLoader() {}
|
|
|
| + DictionaryValue* ReadJsonPrefsFile();
|
| void LoadOnFileThread();
|
|
|
| int base_path_key_;
|
| + Options options_;
|
| FilePath base_path_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ExternalPrefExtensionLoader);
|
|
|