Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(654)

Side by Side Diff: webkit/fileapi/file_system_operation.cc

Issue 7066033: Enable cross-filesystem moves and copies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Hack to try to fix windows tests. Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #include "webkit/fileapi/file_system_operation.h" 5 #include "webkit/fileapi/file_system_operation.h"
6 6
7 #include "base/time.h" 7 #include "base/time.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "net/base/escape.h" 9 #include "net/base/escape.h"
10 #include "net/url_request/url_request_context.h" 10 #include "net/url_request/url_request_context.h"
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 FileSystemFileUtil* dest_file_system_file_util; 143 FileSystemFileUtil* dest_file_system_file_util;
144 144
145 if (!VerifyFileSystemPathForRead(src_path, &src_origin_url, &src_type, 145 if (!VerifyFileSystemPathForRead(src_path, &src_origin_url, &src_type,
146 &virtual_path_0, &src_file_system_file_util) || 146 &virtual_path_0, &src_file_system_file_util) ||
147 !VerifyFileSystemPathForWrite(dest_path, true /* create */, 147 !VerifyFileSystemPathForWrite(dest_path, true /* create */,
148 &dest_origin_url, &dest_type, &virtual_path_1, 148 &dest_origin_url, &dest_type, &virtual_path_1,
149 &dest_file_system_file_util)) { 149 &dest_file_system_file_util)) {
150 delete this; 150 delete this;
151 return; 151 return;
152 } 152 }
153 if (src_origin_url.GetOrigin() != dest_origin_url.GetOrigin()) {
154 // TODO(ericu): We don't yet support copying across filesystem types, from
155 // extension to sandbox, etc. From temporary to persistent works, though.
156 // Since the sandbox code isn't in yet, I'm not sure exactly what check
157 // belongs here, but there's also no danger yet.
158 delete this;
159 return;
160 }
161 if (src_file_system_file_util != dest_file_system_file_util) {
162 // TODO(ericu): implement this.
163 delete this;
164 return;
165 }
166 file_system_operation_context_.set_src_origin_url(src_origin_url); 153 file_system_operation_context_.set_src_origin_url(src_origin_url);
167 file_system_operation_context_.set_dest_origin_url(dest_origin_url); 154 file_system_operation_context_.set_dest_origin_url(dest_origin_url);
168 file_system_operation_context_.set_src_type(src_type); 155 file_system_operation_context_.set_src_type(src_type);
169 file_system_operation_context_.set_dest_type(dest_type); 156 file_system_operation_context_.set_dest_type(dest_type);
170 file_system_operation_context_.set_src_virtual_path(virtual_path_0); 157 file_system_operation_context_.set_src_virtual_path(virtual_path_0);
171 file_system_operation_context_.set_dest_virtual_path(virtual_path_1); 158 file_system_operation_context_.set_dest_virtual_path(virtual_path_1);
172 if (!file_system_operation_context_.src_file_system_file_util()) 159 if (!file_system_operation_context_.src_file_system_file_util())
173 file_system_operation_context_.set_src_file_system_file_util( 160 file_system_operation_context_.set_src_file_system_file_util(
174 src_file_system_file_util); 161 src_file_system_file_util);
175 if (!file_system_operation_context_.dest_file_system_file_util()) 162 if (!file_system_operation_context_.dest_file_system_file_util())
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 FileSystemFileUtil* dest_file_system_file_util; 202 FileSystemFileUtil* dest_file_system_file_util;
216 203
217 if (!VerifyFileSystemPathForWrite(src_path, false, &src_origin_url, &src_type, 204 if (!VerifyFileSystemPathForWrite(src_path, false, &src_origin_url, &src_type,
218 &virtual_path_0, &src_file_system_file_util) || 205 &virtual_path_0, &src_file_system_file_util) ||
219 !VerifyFileSystemPathForWrite(dest_path, true /* create */, 206 !VerifyFileSystemPathForWrite(dest_path, true /* create */,
220 &dest_origin_url, &dest_type, &virtual_path_1, 207 &dest_origin_url, &dest_type, &virtual_path_1,
221 &dest_file_system_file_util)) { 208 &dest_file_system_file_util)) {
222 delete this; 209 delete this;
223 return; 210 return;
224 } 211 }
225 if (src_origin_url.GetOrigin() != dest_origin_url.GetOrigin()) {
226 // TODO(ericu): We don't yet support moving across filesystem types, from
227 // extension to sandbox, etc. From temporary to persistent works, though.
228 delete this;
229 return;
230 }
231 if (src_file_system_file_util != dest_file_system_file_util) {
232 // TODO(ericu): implement this.
233 delete this;
234 return;
235 }
236 file_system_operation_context_.set_src_origin_url(src_origin_url); 212 file_system_operation_context_.set_src_origin_url(src_origin_url);
237 file_system_operation_context_.set_dest_origin_url(dest_origin_url); 213 file_system_operation_context_.set_dest_origin_url(dest_origin_url);
238 file_system_operation_context_.set_src_type(src_type); 214 file_system_operation_context_.set_src_type(src_type);
239 file_system_operation_context_.set_dest_type(dest_type); 215 file_system_operation_context_.set_dest_type(dest_type);
240 file_system_operation_context_.set_src_virtual_path(virtual_path_0); 216 file_system_operation_context_.set_src_virtual_path(virtual_path_0);
241 file_system_operation_context_.set_dest_virtual_path(virtual_path_1); 217 file_system_operation_context_.set_dest_virtual_path(virtual_path_1);
242 if (!file_system_operation_context_.src_file_system_file_util()) 218 if (!file_system_operation_context_.src_file_system_file_util())
243 file_system_operation_context_.set_src_file_system_file_util( 219 file_system_operation_context_.set_src_file_system_file_util(
244 src_file_system_file_util); 220 src_file_system_file_util);
245 if (!file_system_operation_context_.dest_file_system_file_util()) 221 if (!file_system_operation_context_.dest_file_system_file_util())
(...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after
868 } 844 }
869 DCHECK(file_system_file_util); 845 DCHECK(file_system_file_util);
870 *file_system_file_util = 846 *file_system_file_util =
871 file_system_context()->path_manager()->GetFileSystemFileUtil(*type); 847 file_system_context()->path_manager()->GetFileSystemFileUtil(*type);
872 DCHECK(*file_system_file_util); 848 DCHECK(*file_system_file_util);
873 849
874 return true; 850 return true;
875 } 851 }
876 852
877 } // namespace fileapi 853 } // namespace fileapi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698