| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chrome/browser/extensions/app_data_migrator.h" | 5 #include "chrome/browser/extensions/app_data_migrator.h" |
| 6 | 6 |
| 7 #include "base/files/file_util.h" | 7 #include "base/files/file_util.h" |
| 8 #include "base/memory/weak_ptr.h" | 8 #include "base/memory/weak_ptr.h" |
| 9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
| 10 #include "content/public/browser/browser_context.h" | 10 #include "content/public/browser/browser_context.h" |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 | 90 |
| 91 FileSystemContext* old_fs_context = old_partition->GetFileSystemContext(); | 91 FileSystemContext* old_fs_context = old_partition->GetFileSystemContext(); |
| 92 FileSystemContext* fs_context = current_partition->GetFileSystemContext(); | 92 FileSystemContext* fs_context = current_partition->GetFileSystemContext(); |
| 93 | 93 |
| 94 // Perform the file system migration on the old file system's | 94 // Perform the file system migration on the old file system's |
| 95 // sequenced task runner. This is to ensure it queues after any | 95 // sequenced task runner. This is to ensure it queues after any |
| 96 // in-flight file system operations. After it completes, it should | 96 // in-flight file system operations. After it completes, it should |
| 97 // invoke the original callback passed into DoMigrationAndReply. | 97 // invoke the original callback passed into DoMigrationAndReply. |
| 98 old_fs_context->default_file_task_runner()->PostTaskAndReply( | 98 old_fs_context->default_file_task_runner()->PostTaskAndReply( |
| 99 FROM_HERE, | 99 FROM_HERE, |
| 100 base::Bind(&MigrateOnFileSystemThread, base::RetainedRef(old_fs_context), | 100 base::BindOnce( |
| 101 base::RetainedRef(fs_context), base::RetainedRef(extension)), | 101 &MigrateOnFileSystemThread, base::RetainedRef(old_fs_context), |
| 102 base::RetainedRef(fs_context), base::RetainedRef(extension)), |
| 102 reply); | 103 reply); |
| 103 } | 104 } |
| 104 | 105 |
| 105 void MigrateLegacyPartition(WeakPtr<extensions::AppDataMigrator> migrator, | 106 void MigrateLegacyPartition(WeakPtr<extensions::AppDataMigrator> migrator, |
| 106 StoragePartition* old_partition, | 107 StoragePartition* old_partition, |
| 107 StoragePartition* current_partition, | 108 StoragePartition* current_partition, |
| 108 const extensions::Extension* extension, | 109 const extensions::Extension* extension, |
| 109 const base::Closure& reply) { | 110 const base::Closure& reply) { |
| 110 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 111 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 111 | 112 |
| 112 IndexedDBContext* indexed_db_context = | 113 IndexedDBContext* indexed_db_context = |
| 113 current_partition->GetIndexedDBContext(); | 114 current_partition->GetIndexedDBContext(); |
| 114 IndexedDBContext* old_indexed_db_context = | 115 IndexedDBContext* old_indexed_db_context = |
| 115 old_partition->GetIndexedDBContext(); | 116 old_partition->GetIndexedDBContext(); |
| 116 | 117 |
| 117 // Create a closure for the file system migration. This is the next step in | 118 // Create a closure for the file system migration. This is the next step in |
| 118 // the migration flow after the IndexedDB migration. | 119 // the migration flow after the IndexedDB migration. |
| 119 base::Closure migrate_fs = | 120 base::Closure migrate_fs = |
| 120 base::Bind(&MigrateFileSystem, migrator, old_partition, current_partition, | 121 base::Bind(&MigrateFileSystem, migrator, old_partition, current_partition, |
| 121 base::RetainedRef(extension), reply); | 122 base::RetainedRef(extension), reply); |
| 122 | 123 |
| 123 // Perform the IndexedDB migration on the old context's sequenced task | 124 // Perform the IndexedDB migration on the old context's sequenced task |
| 124 // runner. After completion, it should call MigrateFileSystem. | 125 // runner. After completion, it should call MigrateFileSystem. |
| 125 old_indexed_db_context->TaskRunner()->PostTaskAndReply( | 126 old_indexed_db_context->TaskRunner()->PostTaskAndReply( |
| 126 FROM_HERE, | 127 FROM_HERE, |
| 127 base::Bind( | 128 base::BindOnce( |
| 128 &MigrateOnIndexedDBThread, base::RetainedRef(old_indexed_db_context), | 129 &MigrateOnIndexedDBThread, base::RetainedRef(old_indexed_db_context), |
| 129 base::RetainedRef(indexed_db_context), base::RetainedRef(extension)), | 130 base::RetainedRef(indexed_db_context), base::RetainedRef(extension)), |
| 130 migrate_fs); | 131 migrate_fs); |
| 131 } | 132 } |
| 132 | 133 |
| 133 } // namespace | 134 } // namespace |
| 134 | 135 |
| 135 namespace extensions { | 136 namespace extensions { |
| 136 | 137 |
| 137 AppDataMigrator::AppDataMigrator(Profile* profile, ExtensionRegistry* registry) | 138 AppDataMigrator::AppDataMigrator(Profile* profile, ExtensionRegistry* registry) |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 if (old_was_disabled) | 170 if (old_was_disabled) |
| 170 registry_->RemoveEnabled(extension->id()); | 171 registry_->RemoveEnabled(extension->id()); |
| 171 else | 172 else |
| 172 registry_->AddEnabled(old); | 173 registry_->AddEnabled(old); |
| 173 | 174 |
| 174 MigrateLegacyPartition(weak_factory_.GetWeakPtr(), old_partition, | 175 MigrateLegacyPartition(weak_factory_.GetWeakPtr(), old_partition, |
| 175 new_partition, extension, reply); | 176 new_partition, extension, reply); |
| 176 } | 177 } |
| 177 | 178 |
| 178 } // namespace extensions | 179 } // namespace extensions |
| OLD | NEW |