| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTERNAL_PREF_EXTENSION_LOADER_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTERNAL_PREF_EXTENSION_LOADER_H_ |
| 6 #define CHROME_BROWSER_EXTENSIONS_EXTERNAL_PREF_EXTENSION_LOADER_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_EXTERNAL_PREF_EXTENSION_LOADER_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include "chrome/browser/extensions/external_extension_loader.h" | 9 #include "chrome/browser/extensions/external_extension_loader.h" |
| 10 | 10 |
| 11 #include <string> | 11 #include <string> |
| 12 | 12 |
| 13 #include "base/scoped_ptr.h" | 13 #include "base/scoped_ptr.h" |
| 14 #include "base/values.h" | 14 #include "base/values.h" |
| 15 | 15 |
| 16 // A specialization of the ExternalExtensionLoader that uses a json file to | 16 // A specialization of the ExternalExtensionLoader that uses a json file to |
| 17 // look up which external extensions are registered. | 17 // look up which external extensions are registered. |
| 18 // Instances of this class are expected to be created and destroyed on the UI | 18 // Instances of this class are expected to be created and destroyed on the UI |
| 19 // thread and they are expecting public method calls from the UI thread. | 19 // thread and they are expecting public method calls from the UI thread. |
| 20 class ExternalPrefExtensionLoader : public ExternalExtensionLoader { | 20 class ExternalPrefExtensionLoader : public ExternalExtensionLoader { |
| 21 public: | 21 public: |
| 22 ExternalPrefExtensionLoader(); | 22 // |base_path_key| is the directory containing the external_extensions.json |
| 23 // file. Relative file paths to extension files are resolved relative |
| 24 // to this path. |
| 25 explicit ExternalPrefExtensionLoader(int base_path_key); |
| 26 |
| 27 virtual const FilePath GetBaseCrxFilePath(); |
| 23 | 28 |
| 24 protected: | 29 protected: |
| 25 virtual void StartLoading(); | 30 virtual void StartLoading(); |
| 26 | 31 |
| 27 private: | 32 private: |
| 28 friend class base::RefCountedThreadSafe<ExternalExtensionLoader>; | 33 friend class base::RefCountedThreadSafe<ExternalExtensionLoader>; |
| 29 | 34 |
| 30 virtual ~ExternalPrefExtensionLoader() {} | 35 virtual ~ExternalPrefExtensionLoader() {} |
| 31 | 36 |
| 32 void LoadOnFileThread(); | 37 void LoadOnFileThread(); |
| 33 | 38 |
| 39 int base_path_key_; |
| 40 FilePath base_path_; |
| 41 |
| 34 DISALLOW_COPY_AND_ASSIGN(ExternalPrefExtensionLoader); | 42 DISALLOW_COPY_AND_ASSIGN(ExternalPrefExtensionLoader); |
| 35 }; | 43 }; |
| 36 | 44 |
| 37 // A simplified version of ExternalPrefExtensionLoader that loads the dictionary | 45 // A simplified version of ExternalPrefExtensionLoader that loads the dictionary |
| 38 // from json data specified in a string. | 46 // from json data specified in a string. |
| 39 class ExternalTestingExtensionLoader : public ExternalExtensionLoader { | 47 class ExternalTestingExtensionLoader : public ExternalExtensionLoader { |
| 40 public: | 48 public: |
| 41 explicit ExternalTestingExtensionLoader(const std::string& json_data); | 49 ExternalTestingExtensionLoader( |
| 50 const std::string& json_data, |
| 51 const FilePath& fake_base_path); |
| 52 |
| 53 virtual const FilePath GetBaseCrxFilePath(); |
| 42 | 54 |
| 43 protected: | 55 protected: |
| 44 virtual void StartLoading(); | 56 virtual void StartLoading(); |
| 45 | 57 |
| 46 private: | 58 private: |
| 47 friend class base::RefCountedThreadSafe<ExternalExtensionLoader>; | 59 friend class base::RefCountedThreadSafe<ExternalExtensionLoader>; |
| 48 | 60 |
| 49 virtual ~ExternalTestingExtensionLoader() {} | 61 virtual ~ExternalTestingExtensionLoader() {} |
| 50 | 62 |
| 63 FilePath fake_base_path_; |
| 51 scoped_ptr<DictionaryValue> testing_prefs_; | 64 scoped_ptr<DictionaryValue> testing_prefs_; |
| 52 | 65 |
| 53 DISALLOW_COPY_AND_ASSIGN(ExternalTestingExtensionLoader); | 66 DISALLOW_COPY_AND_ASSIGN(ExternalTestingExtensionLoader); |
| 54 }; | 67 }; |
| 55 | 68 |
| 56 #endif // CHROME_BROWSER_EXTENSIONS_EXTERNAL_PREF_EXTENSION_LOADER_H_ | 69 #endif // CHROME_BROWSER_EXTENSIONS_EXTERNAL_PREF_EXTENSION_LOADER_H_ |
| OLD | NEW |