OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_COMMON_EXTENSIONS_EXTENSION_FILE_UTIL_H_ | 5 #ifndef CHROME_COMMON_EXTENSIONS_EXTENSION_FILE_UTIL_H_ |
6 #define CHROME_COMMON_EXTENSIONS_EXTENSION_FILE_UTIL_H_ | 6 #define CHROME_COMMON_EXTENSIONS_EXTENSION_FILE_UTIL_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <map> | 9 #include <map> |
10 | 10 |
11 #include "chrome/common/extensions/extension.h" | 11 #include "chrome/common/extensions/extension.h" |
12 #include "chrome/common/extensions/message_bundle.h" | 12 #include "chrome/common/extensions/message_bundle.h" |
13 | 13 |
14 class FilePath; | 14 class FilePath; |
15 class GURL; | 15 class GURL; |
16 | 16 |
17 namespace base { | 17 namespace base { |
18 class DictionaryValue; | 18 class DictionaryValue; |
19 } | 19 } |
20 | 20 |
21 namespace extensions { | 21 namespace extensions { |
22 class MessageBundle; | 22 class MessageBundle; |
23 } | 23 } |
24 | 24 |
25 // Utilities for manipulating the on-disk storage of extensions. | 25 // Utilities for manipulating the on-disk storage of extensions. |
26 namespace extension_file_util { | 26 namespace extension_file_util { |
27 | 27 |
28 // The name of the directory inside the profile that we store installed | |
29 // extension in. | |
30 extern const char kInstallDirectoryName[]; | |
31 | |
32 // Copies |unpacked_source_dir| into the right location under |extensions_dir|. | 28 // Copies |unpacked_source_dir| into the right location under |extensions_dir|. |
33 // The destination directory is returned on success, or empty path is returned | 29 // The destination directory is returned on success, or empty path is returned |
34 // on failure. | 30 // on failure. |
35 FilePath InstallExtension(const FilePath& unpacked_source_dir, | 31 FilePath InstallExtension(const FilePath& unpacked_source_dir, |
36 const std::string& id, | 32 const std::string& id, |
37 const std::string& version, | 33 const std::string& version, |
38 const FilePath& extensions_dir); | 34 const FilePath& extensions_dir); |
39 | 35 |
40 // Removes all versions of the extension with |id| from |extensions_dir|. | 36 // Removes all versions of the extension with |id| from |extensions_dir|. |
41 void UninstallExtension(const FilePath& extensions_dir, | 37 void UninstallExtension(const FilePath& extensions_dir, |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 bool CheckForIllegalFilenames(const FilePath& extension_path, | 108 bool CheckForIllegalFilenames(const FilePath& extension_path, |
113 std::string* error); | 109 std::string* error); |
114 | 110 |
115 // Get a relative file path from a chrome-extension:// URL. | 111 // Get a relative file path from a chrome-extension:// URL. |
116 FilePath ExtensionURLToRelativeFilePath(const GURL& url); | 112 FilePath ExtensionURLToRelativeFilePath(const GURL& url); |
117 | 113 |
118 // Get a full file path from a chrome-extension-resource:// URL, If the URL | 114 // Get a full file path from a chrome-extension-resource:// URL, If the URL |
119 // points a file outside of root, this function will return empty FilePath. | 115 // points a file outside of root, this function will return empty FilePath. |
120 FilePath ExtensionResourceURLToFilePath(const GURL& url, const FilePath& root); | 116 FilePath ExtensionResourceURLToFilePath(const GURL& url, const FilePath& root); |
121 | 117 |
122 // Get a path to a temp directory for unpacking an extension. | 118 // Returns a path to a temporary directory for unpacking an extension that will |
123 // This is essentially PathService::Get(chrome::DIR_USER_DATA_TEMP, ...), | 119 // be installed into |extensions_dir|. Creates the directory if necessary. |
124 // with a histogram that allows us to understand why it is failing. | 120 // The directory will be on the same file system as |extensions_dir| so |
125 // Return an empty file path on failure. | 121 // that the extension directory can be efficiently renamed into place. Returns |
126 FilePath GetUserDataTempDir(); | 122 // an empty file path on failure. |
| 123 FilePath GetInstallTempDir(const FilePath& extensions_dir); |
127 | 124 |
128 // Helper function to delete files. This is used to avoid ugly casts which | 125 // Helper function to delete files. This is used to avoid ugly casts which |
129 // would be necessary with PostMessage since file_util::Delete is overloaded. | 126 // would be necessary with PostMessage since file_util::Delete is overloaded. |
130 // TODO(skerner): Make a version of Delete that is not overloaded in file_util. | 127 // TODO(skerner): Make a version of Delete that is not overloaded in file_util. |
131 void DeleteFile(const FilePath& path, bool recursive); | 128 void DeleteFile(const FilePath& path, bool recursive); |
132 | 129 |
133 } // namespace extension_file_util | 130 } // namespace extension_file_util |
134 | 131 |
135 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_FILE_UTIL_H_ | 132 #endif // CHROME_COMMON_EXTENSIONS_EXTENSION_FILE_UTIL_H_ |
OLD | NEW |