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

Side by Side Diff: storage/browser/fileapi/sandbox_file_system_backend_delegate.cc

Issue 671873004: Migrates legacy packaged app data when it's upgraded to a platform app (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "storage/browser/fileapi/sandbox_file_system_backend_delegate.h" 5 #include "storage/browser/fileapi/sandbox_file_system_backend_delegate.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 REPORT(kNotFound); 641 REPORT(kNotFound);
642 break; 642 break;
643 case base::File::FILE_ERROR_FAILED: 643 case base::File::FILE_ERROR_FAILED:
644 default: 644 default:
645 REPORT(kUnknownError); 645 REPORT(kUnknownError);
646 break; 646 break;
647 } 647 }
648 #undef REPORT 648 #undef REPORT
649 } 649 }
650 650
651 void SandboxFileSystemBackendDelegate::CopyFileSystem(
652 const GURL& origin_url,
653 FileSystemType type,
654 SandboxFileSystemBackendDelegate* destination) {
655 DCHECK(file_task_runner()->RunsTasksOnCurrentThread());
656
657 base::FilePath base_path =
658 GetBaseDirectoryForOriginAndType(origin_url, type, false /* create */);
659 if (base::PathExists(base_path)) {
660 // There shouldn't be an existing file system directory in the destination.
661 DCHECK(!base::PathExists(destination->GetBaseDirectoryForOriginAndType(
662 origin_url, type, false /* create */)));
663
664 base::FilePath dest_path = destination->GetBaseDirectoryForOriginAndType(
665 origin_url, type, true /* create */);
666
667 obfuscated_file_util()->CloseFileSystemForOriginAndType(
668 origin_url, GetTypeString(type));
669 base::CopyDirectory(base_path, dest_path.DirName(), true /* rescursive */);
670 }
671 }
672
651 ObfuscatedFileUtil* SandboxFileSystemBackendDelegate::obfuscated_file_util() { 673 ObfuscatedFileUtil* SandboxFileSystemBackendDelegate::obfuscated_file_util() {
652 return static_cast<ObfuscatedFileUtil*>(sync_file_util()); 674 return static_cast<ObfuscatedFileUtil*>(sync_file_util());
653 } 675 }
654 676
655 // Declared in obfuscated_file_util.h. 677 // Declared in obfuscated_file_util.h.
656 // static 678 // static
657 ObfuscatedFileUtil* ObfuscatedFileUtil::CreateForTesting( 679 ObfuscatedFileUtil* ObfuscatedFileUtil::CreateForTesting(
658 storage::SpecialStoragePolicy* special_storage_policy, 680 storage::SpecialStoragePolicy* special_storage_policy,
659 const base::FilePath& file_system_directory, 681 const base::FilePath& file_system_directory,
660 leveldb::Env* env_override, 682 leveldb::Env* env_override,
661 base::SequencedTaskRunner* file_task_runner) { 683 base::SequencedTaskRunner* file_task_runner) {
662 return new ObfuscatedFileUtil(special_storage_policy, 684 return new ObfuscatedFileUtil(special_storage_policy,
663 file_system_directory, 685 file_system_directory,
664 env_override, 686 env_override,
665 file_task_runner, 687 file_task_runner,
666 base::Bind(&GetTypeStringForURL), 688 base::Bind(&GetTypeStringForURL),
667 GetKnownTypeStrings(), 689 GetKnownTypeStrings(),
668 NULL); 690 NULL);
669 } 691 }
670 692
671 } // namespace storage 693 } // namespace storage
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698