| 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 #include "webkit/tools/test_shell/simple_file_system.h" | 5 #include "webkit/tools/test_shell/simple_file_system.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/file_path.h" | 8 #include "base/file_path.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/message_loop_proxy.h" | 10 #include "base/message_loop_proxy.h" |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 | 116 |
| 117 GURL origin_url(frame->document().securityOrigin().toString()); | 117 GURL origin_url(frame->document().securityOrigin().toString()); |
| 118 file_system_context_->DeleteFileSystem( | 118 file_system_context_->DeleteFileSystem( |
| 119 origin_url, static_cast<fileapi::FileSystemType>(type), | 119 origin_url, static_cast<fileapi::FileSystemType>(type), |
| 120 DeleteFileSystemHandler(callbacks)); | 120 DeleteFileSystemHandler(callbacks)); |
| 121 } | 121 } |
| 122 | 122 |
| 123 void SimpleFileSystem::move( | 123 void SimpleFileSystem::move( |
| 124 const WebURL& src_path, | 124 const WebURL& src_path, |
| 125 const WebURL& dest_path, WebFileSystemCallbacks* callbacks) { | 125 const WebURL& dest_path, WebFileSystemCallbacks* callbacks) { |
| 126 FileSystemURL src_url(src_path); | 126 FileSystemURL src_url(file_system_context()->CrackURL(src_path)); |
| 127 FileSystemURL dest_url(dest_path); | 127 FileSystemURL dest_url(file_system_context()->CrackURL(dest_path)); |
| 128 if (!HasFilePermission(src_url, FILE_PERMISSION_WRITE) || | 128 if (!HasFilePermission(src_url, FILE_PERMISSION_WRITE) || |
| 129 !HasFilePermission(dest_url, FILE_PERMISSION_CREATE)) { | 129 !HasFilePermission(dest_url, FILE_PERMISSION_CREATE)) { |
| 130 callbacks->didFail(WebKit::WebFileErrorSecurity); | 130 callbacks->didFail(WebKit::WebFileErrorSecurity); |
| 131 return; | 131 return; |
| 132 } | 132 } |
| 133 GetNewOperation(src_url)->Move(src_url, dest_url, | 133 GetNewOperation(src_url)->Move(src_url, dest_url, |
| 134 FinishHandler(callbacks)); | 134 FinishHandler(callbacks)); |
| 135 } | 135 } |
| 136 | 136 |
| 137 void SimpleFileSystem::copy( | 137 void SimpleFileSystem::copy( |
| 138 const WebURL& src_path, const WebURL& dest_path, | 138 const WebURL& src_path, const WebURL& dest_path, |
| 139 WebFileSystemCallbacks* callbacks) { | 139 WebFileSystemCallbacks* callbacks) { |
| 140 FileSystemURL src_url(src_path); | 140 FileSystemURL src_url(file_system_context()->CrackURL(src_path)); |
| 141 FileSystemURL dest_url(dest_path); | 141 FileSystemURL dest_url(file_system_context()->CrackURL(dest_path)); |
| 142 if (!HasFilePermission(src_url, FILE_PERMISSION_READ) || | 142 if (!HasFilePermission(src_url, FILE_PERMISSION_READ) || |
| 143 !HasFilePermission(dest_url, FILE_PERMISSION_CREATE)) { | 143 !HasFilePermission(dest_url, FILE_PERMISSION_CREATE)) { |
| 144 callbacks->didFail(WebKit::WebFileErrorSecurity); | 144 callbacks->didFail(WebKit::WebFileErrorSecurity); |
| 145 return; | 145 return; |
| 146 } | 146 } |
| 147 GetNewOperation(src_url)->Copy(src_url, dest_url, | 147 GetNewOperation(src_url)->Copy(src_url, dest_url, |
| 148 FinishHandler(callbacks)); | 148 FinishHandler(callbacks)); |
| 149 } | 149 } |
| 150 | 150 |
| 151 void SimpleFileSystem::remove( | 151 void SimpleFileSystem::remove( |
| 152 const WebURL& path, WebFileSystemCallbacks* callbacks) { | 152 const WebURL& path, WebFileSystemCallbacks* callbacks) { |
| 153 FileSystemURL url(path); | 153 FileSystemURL url(file_system_context()->CrackURL(path)); |
| 154 if (!HasFilePermission(url, FILE_PERMISSION_WRITE)) { | 154 if (!HasFilePermission(url, FILE_PERMISSION_WRITE)) { |
| 155 callbacks->didFail(WebKit::WebFileErrorSecurity); | 155 callbacks->didFail(WebKit::WebFileErrorSecurity); |
| 156 return; | 156 return; |
| 157 } | 157 } |
| 158 GetNewOperation(url)->Remove(url, false /* recursive */, | 158 GetNewOperation(url)->Remove(url, false /* recursive */, |
| 159 FinishHandler(callbacks)); | 159 FinishHandler(callbacks)); |
| 160 } | 160 } |
| 161 | 161 |
| 162 void SimpleFileSystem::removeRecursively( | 162 void SimpleFileSystem::removeRecursively( |
| 163 const WebURL& path, WebFileSystemCallbacks* callbacks) { | 163 const WebURL& path, WebFileSystemCallbacks* callbacks) { |
| 164 FileSystemURL url(path); | 164 FileSystemURL url(file_system_context()->CrackURL(path)); |
| 165 if (!HasFilePermission(url, FILE_PERMISSION_WRITE)) { | 165 if (!HasFilePermission(url, FILE_PERMISSION_WRITE)) { |
| 166 callbacks->didFail(WebKit::WebFileErrorSecurity); | 166 callbacks->didFail(WebKit::WebFileErrorSecurity); |
| 167 return; | 167 return; |
| 168 } | 168 } |
| 169 GetNewOperation(url)->Remove(url, true /* recursive */, | 169 GetNewOperation(url)->Remove(url, true /* recursive */, |
| 170 FinishHandler(callbacks)); | 170 FinishHandler(callbacks)); |
| 171 } | 171 } |
| 172 | 172 |
| 173 void SimpleFileSystem::readMetadata( | 173 void SimpleFileSystem::readMetadata( |
| 174 const WebURL& path, WebFileSystemCallbacks* callbacks) { | 174 const WebURL& path, WebFileSystemCallbacks* callbacks) { |
| 175 FileSystemURL url(path); | 175 FileSystemURL url(file_system_context()->CrackURL(path)); |
| 176 if (!HasFilePermission(url, FILE_PERMISSION_READ)) { | 176 if (!HasFilePermission(url, FILE_PERMISSION_READ)) { |
| 177 callbacks->didFail(WebKit::WebFileErrorSecurity); | 177 callbacks->didFail(WebKit::WebFileErrorSecurity); |
| 178 return; | 178 return; |
| 179 } | 179 } |
| 180 GetNewOperation(url)->GetMetadata(url, GetMetadataHandler(callbacks)); | 180 GetNewOperation(url)->GetMetadata(url, GetMetadataHandler(callbacks)); |
| 181 } | 181 } |
| 182 | 182 |
| 183 void SimpleFileSystem::createFile( | 183 void SimpleFileSystem::createFile( |
| 184 const WebURL& path, bool exclusive, WebFileSystemCallbacks* callbacks) { | 184 const WebURL& path, bool exclusive, WebFileSystemCallbacks* callbacks) { |
| 185 FileSystemURL url(path); | 185 FileSystemURL url(file_system_context()->CrackURL(path)); |
| 186 if (!HasFilePermission(url, FILE_PERMISSION_CREATE)) { | 186 if (!HasFilePermission(url, FILE_PERMISSION_CREATE)) { |
| 187 callbacks->didFail(WebKit::WebFileErrorSecurity); | 187 callbacks->didFail(WebKit::WebFileErrorSecurity); |
| 188 return; | 188 return; |
| 189 } | 189 } |
| 190 GetNewOperation(url)->CreateFile(url, exclusive, FinishHandler(callbacks)); | 190 GetNewOperation(url)->CreateFile(url, exclusive, FinishHandler(callbacks)); |
| 191 } | 191 } |
| 192 | 192 |
| 193 void SimpleFileSystem::createDirectory( | 193 void SimpleFileSystem::createDirectory( |
| 194 const WebURL& path, bool exclusive, WebFileSystemCallbacks* callbacks) { | 194 const WebURL& path, bool exclusive, WebFileSystemCallbacks* callbacks) { |
| 195 FileSystemURL url(path); | 195 FileSystemURL url(file_system_context()->CrackURL(path)); |
| 196 if (!HasFilePermission(url, FILE_PERMISSION_CREATE)) { | 196 if (!HasFilePermission(url, FILE_PERMISSION_CREATE)) { |
| 197 callbacks->didFail(WebKit::WebFileErrorSecurity); | 197 callbacks->didFail(WebKit::WebFileErrorSecurity); |
| 198 return; | 198 return; |
| 199 } | 199 } |
| 200 GetNewOperation(url)->CreateDirectory(url, exclusive, false, | 200 GetNewOperation(url)->CreateDirectory(url, exclusive, false, |
| 201 FinishHandler(callbacks)); | 201 FinishHandler(callbacks)); |
| 202 } | 202 } |
| 203 | 203 |
| 204 void SimpleFileSystem::fileExists( | 204 void SimpleFileSystem::fileExists( |
| 205 const WebURL& path, WebFileSystemCallbacks* callbacks) { | 205 const WebURL& path, WebFileSystemCallbacks* callbacks) { |
| 206 FileSystemURL url(path); | 206 FileSystemURL url(file_system_context()->CrackURL(path)); |
| 207 if (!HasFilePermission(url, FILE_PERMISSION_READ)) { | 207 if (!HasFilePermission(url, FILE_PERMISSION_READ)) { |
| 208 callbacks->didFail(WebKit::WebFileErrorSecurity); | 208 callbacks->didFail(WebKit::WebFileErrorSecurity); |
| 209 return; | 209 return; |
| 210 } | 210 } |
| 211 GetNewOperation(url)->FileExists(url, FinishHandler(callbacks)); | 211 GetNewOperation(url)->FileExists(url, FinishHandler(callbacks)); |
| 212 } | 212 } |
| 213 | 213 |
| 214 void SimpleFileSystem::directoryExists( | 214 void SimpleFileSystem::directoryExists( |
| 215 const WebURL& path, WebFileSystemCallbacks* callbacks) { | 215 const WebURL& path, WebFileSystemCallbacks* callbacks) { |
| 216 FileSystemURL url(path); | 216 FileSystemURL url(file_system_context()->CrackURL(path)); |
| 217 if (!HasFilePermission(url, FILE_PERMISSION_READ)) { | 217 if (!HasFilePermission(url, FILE_PERMISSION_READ)) { |
| 218 callbacks->didFail(WebKit::WebFileErrorSecurity); | 218 callbacks->didFail(WebKit::WebFileErrorSecurity); |
| 219 return; | 219 return; |
| 220 } | 220 } |
| 221 GetNewOperation(url)->DirectoryExists(url, FinishHandler(callbacks)); | 221 GetNewOperation(url)->DirectoryExists(url, FinishHandler(callbacks)); |
| 222 } | 222 } |
| 223 | 223 |
| 224 void SimpleFileSystem::readDirectory( | 224 void SimpleFileSystem::readDirectory( |
| 225 const WebURL& path, WebFileSystemCallbacks* callbacks) { | 225 const WebURL& path, WebFileSystemCallbacks* callbacks) { |
| 226 FileSystemURL url(path); | 226 FileSystemURL url(file_system_context()->CrackURL(path)); |
| 227 if (!HasFilePermission(url, FILE_PERMISSION_READ)) { | 227 if (!HasFilePermission(url, FILE_PERMISSION_READ)) { |
| 228 callbacks->didFail(WebKit::WebFileErrorSecurity); | 228 callbacks->didFail(WebKit::WebFileErrorSecurity); |
| 229 return; | 229 return; |
| 230 } | 230 } |
| 231 GetNewOperation(url)->ReadDirectory(url, ReadDirectoryHandler(callbacks)); | 231 GetNewOperation(url)->ReadDirectory(url, ReadDirectoryHandler(callbacks)); |
| 232 } | 232 } |
| 233 | 233 |
| 234 WebFileWriter* SimpleFileSystem::createFileWriter( | 234 WebFileWriter* SimpleFileSystem::createFileWriter( |
| 235 const WebURL& path, WebFileWriterClient* client) { | 235 const WebURL& path, WebFileWriterClient* client) { |
| 236 return new SimpleFileWriter(path, client, file_system_context_.get()); | 236 return new SimpleFileWriter(path, client, file_system_context_.get()); |
| 237 } | 237 } |
| 238 | 238 |
| 239 void SimpleFileSystem::createSnapshotFileAndReadMetadata( | 239 void SimpleFileSystem::createSnapshotFileAndReadMetadata( |
| 240 const WebURL& blobURL, | 240 const WebURL& blobURL, |
| 241 const WebURL& path, | 241 const WebURL& path, |
| 242 WebFileSystemCallbacks* callbacks) { | 242 WebFileSystemCallbacks* callbacks) { |
| 243 FileSystemURL url(path); | 243 FileSystemURL url(file_system_context()->CrackURL(path)); |
| 244 if (!HasFilePermission(url, FILE_PERMISSION_READ)) { | 244 if (!HasFilePermission(url, FILE_PERMISSION_READ)) { |
| 245 callbacks->didFail(WebKit::WebFileErrorSecurity); | 245 callbacks->didFail(WebKit::WebFileErrorSecurity); |
| 246 return; | 246 return; |
| 247 } | 247 } |
| 248 GetNewOperation(url)->CreateSnapshotFile( | 248 GetNewOperation(url)->CreateSnapshotFile( |
| 249 url, SnapshotFileHandler(blobURL, callbacks)); | 249 url, SnapshotFileHandler(blobURL, callbacks)); |
| 250 } | 250 } |
| 251 | 251 |
| 252 // static | 252 // static |
| 253 void SimpleFileSystem::InitializeOnIOThread( | 253 void SimpleFileSystem::InitializeOnIOThread( |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 389 const FilePath& platform_path, | 389 const FilePath& platform_path, |
| 390 const scoped_refptr<webkit_blob::ShareableFileReference>& file_ref) { | 390 const scoped_refptr<webkit_blob::ShareableFileReference>& file_ref) { |
| 391 DCHECK(g_io_thread); | 391 DCHECK(g_io_thread); |
| 392 if (result == base::PLATFORM_FILE_OK) { | 392 if (result == base::PLATFORM_FILE_OK) { |
| 393 g_io_thread->PostTask( | 393 g_io_thread->PostTask( |
| 394 FROM_HERE, | 394 FROM_HERE, |
| 395 base::Bind(&RegisterBlob, blob_url, platform_path)); | 395 base::Bind(&RegisterBlob, blob_url, platform_path)); |
| 396 } | 396 } |
| 397 DidGetMetadata(callbacks, result, info, platform_path); | 397 DidGetMetadata(callbacks, result, info, platform_path); |
| 398 } | 398 } |
| OLD | NEW |