| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 virtual void didFail(int code) | 106 virtual void didFail(int code) |
| 107 { | 107 { |
| 108 m_result->m_failed = true; | 108 m_result->m_failed = true; |
| 109 m_result->m_code = code; | 109 m_result->m_code = code; |
| 110 } | 110 } |
| 111 | 111 |
| 112 virtual ~CreateFileHelper() | 112 virtual ~CreateFileHelper() |
| 113 { | 113 { |
| 114 } | 114 } |
| 115 | 115 |
| 116 void didReadMetadata(const FileMetadata& metadata) | 116 virtual void didCreateSnapshotFile(const FileMetadata& metadata, PassRefPtr<
BlobDataHandle> snapshot) |
| 117 { | 117 { |
| 118 // For regular filesystem types (temporary or persistent), we should not
cache file metadata as it could change File semantics. | 118 // For regular filesystem types (temporary or persistent), we should not
cache file metadata as it could change File semantics. |
| 119 // For other filesystem types (which could be platform-specific ones), t
here's a chance that the files are on remote filesystem. If the port has returne
d metadata just pass it to File constructor (so we may cache the metadata). | 119 // For other filesystem types (which could be platform-specific ones), t
here's a chance that the files are on remote filesystem. |
| 120 // If the port has returned metadata just pass it to File constructor (s
o we may cache the metadata). |
| 120 // FIXME: We should use the snapshot metadata for all files. | 121 // FIXME: We should use the snapshot metadata for all files. |
| 121 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=17746 | 122 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=17746 |
| 122 if (m_type == FileSystemTypeTemporary || m_type == FileSystemTypePersist
ent) { | 123 if (m_type == FileSystemTypeTemporary || m_type == FileSystemTypePersist
ent) { |
| 123 m_result->m_file = File::createWithName(metadata.platformPath, m_nam
e); | 124 m_result->m_file = File::createWithName(metadata.platformPath, m_nam
e); |
| 124 } else if (!metadata.platformPath.isEmpty()) { | 125 } else if (!metadata.platformPath.isEmpty()) { |
| 125 // If the platformPath in the returned metadata is given, we create
a File object for the path. | 126 // If the platformPath in the returned metadata is given, we create
a File object for the path. |
| 126 m_result->m_file = File::createForFileSystemFile(m_name, metadata).g
et(); | 127 m_result->m_file = File::createForFileSystemFile(m_name, metadata).g
et(); |
| 127 } else { | 128 } else { |
| 128 // Otherwise create a File from the FileSystem URL. | 129 // Otherwise create a File from the FileSystem URL. |
| 129 m_result->m_file = File::createForFileSystemFile(m_url, metadata).ge
t(); | 130 m_result->m_file = File::createForFileSystemFile(m_url, metadata).ge
t(); |
| 130 } | 131 } |
| 132 |
| 133 // We can't directly use the snapshot blob data handle because the conte
nt type on it hasn't been set. |
| 134 // Having a chain of custody thru thread bridging of that instance up un
til now, *after* we've coined a File with a new handle |
| 135 // that has the correct type set on it, allows the blob storage system t
o track when a temp file can and can't |
| 136 // be safely deleted. |
| 137 // FIXME: Maybe add a BlobDataHandle/BlobRegistry methods to clone a blo
b with a new type? |
| 131 } | 138 } |
| 132 private: | 139 private: |
| 133 CreateFileHelper(PassRefPtr<CreateFileResult> result, const String& name, co
nst KURL& url, FileSystemType type) | 140 CreateFileHelper(PassRefPtr<CreateFileResult> result, const String& name, co
nst KURL& url, FileSystemType type) |
| 134 : m_result(result) | 141 : m_result(result) |
| 135 , m_name(name) | 142 , m_name(name) |
| 136 , m_url(url) | 143 , m_url(url) |
| 137 , m_type(type) | 144 , m_type(type) |
| 138 { | 145 { |
| 139 } | 146 } |
| 140 | 147 |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 return 0; | 258 return 0; |
| 252 } | 259 } |
| 253 ASSERT(successCallback->fileWriterBase()); | 260 ASSERT(successCallback->fileWriterBase()); |
| 254 ASSERT(static_cast<FileWriterSync*>(successCallback->fileWriterBase()) == fi
leWriter.get()); | 261 ASSERT(static_cast<FileWriterSync*>(successCallback->fileWriterBase()) == fi
leWriter.get()); |
| 255 return fileWriter; | 262 return fileWriter; |
| 256 } | 263 } |
| 257 | 264 |
| 258 } | 265 } |
| 259 | 266 |
| 260 #endif // ENABLE(FILE_SYSTEM) | 267 #endif // ENABLE(FILE_SYSTEM) |
| OLD | NEW |