Index: chrome/browser/chromeos/gdata/gdata_util.h |
diff --git a/chrome/browser/chromeos/gdata/gdata_util.h b/chrome/browser/chromeos/gdata/gdata_util.h |
index a7f5cd86ebc68d9ae30d359f96764de67a8f10cd..7829a1b9ffee61bf7433fbccaf9b8b58f1961a3a 100644 |
--- a/chrome/browser/chromeos/gdata/gdata_util.h |
+++ b/chrome/browser/chromeos/gdata/gdata_util.h |
@@ -62,6 +62,29 @@ void SetPermissionsForGDataCacheFiles(Profile* profile, |
// Returns true if gdata is currently active with the specified profile. |
bool IsGDataAvailable(Profile* profile); |
+ |
+// Escapes a file name in GData cache. |
+// Replaces percent ('%'), period ('.') and slash ('/') with %XX (hex) |
+std::string EscapeCacheFileName(const std::string& filename); |
+ |
+// Unescapes a file path in GData cache. |
+// This is the inverse of EscapeCacheFileName. |
+std::string UnescapeCacheFileName(const std::string& filename); |
+ |
+// Extracts resource_id, md5, and extra_extension from cache path. |
+// Case 1: Pinned and outgoing symlinks only have resource_id. |
+// Example: path="/user/GCache/v1/pinned/pdf:a1b2" => |
+// resource_id="pdf:a1b2", md5="", extra_extension=""; |
+// Case 2: Normal files have both resource_id and md5. |
+// Example: path="/user/GCache/v1/tmp/pdf:a1b2.01234567" => |
+// resource_id="pdf:a1b2", md5="01234567", extra_extension=""; |
+// Case 3: Mounted files have all three parts. |
+// Example: path="/user/GCache/v1/persistent/pdf:a1b2.01234567.mounted" => |
+// resource_id="pdf:a1b2", md5="01234567", extra_extension="mounted". |
+void ParseCacheFilePath(const FilePath& path, |
+ std::string* resource_id, |
+ std::string* md5, |
+ std::string* extra_extension); |
} // namespace util |
} // namespace gdata |