| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/chromeos/arc/fileapi/arc_file_system_operation_runner.h
" | 5 #include "chrome/browser/chromeos/arc/fileapi/arc_file_system_operation_runner.h
" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 auto* file_system_instance = ARC_GET_INSTANCE_FOR_METHOD( | 97 auto* file_system_instance = ARC_GET_INSTANCE_FOR_METHOD( |
| 98 arc_bridge_service()->file_system(), GetFileSize); | 98 arc_bridge_service()->file_system(), GetFileSize); |
| 99 if (!file_system_instance) { | 99 if (!file_system_instance) { |
| 100 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, | 100 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, |
| 101 base::BindOnce(callback, -1)); | 101 base::BindOnce(callback, -1)); |
| 102 return; | 102 return; |
| 103 } | 103 } |
| 104 file_system_instance->GetFileSize(url.spec(), callback); | 104 file_system_instance->GetFileSize(url.spec(), callback); |
| 105 } | 105 } |
| 106 | 106 |
| 107 void ArcFileSystemOperationRunner::GetMimeType( |
| 108 const GURL& url, |
| 109 const GetMimeTypeCallback& callback) { |
| 110 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 111 if (should_defer_) { |
| 112 deferred_operations_.emplace_back( |
| 113 base::Bind(&ArcFileSystemOperationRunner::GetMimeType, |
| 114 weak_ptr_factory_.GetWeakPtr(), url, callback)); |
| 115 return; |
| 116 } |
| 117 auto* file_system_instance = ARC_GET_INSTANCE_FOR_METHOD( |
| 118 arc_bridge_service()->file_system(), GetMimeType); |
| 119 if (!file_system_instance) { |
| 120 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 121 FROM_HERE, base::BindOnce(callback, base::nullopt)); |
| 122 return; |
| 123 } |
| 124 file_system_instance->GetMimeType(url.spec(), callback); |
| 125 } |
| 126 |
| 107 void ArcFileSystemOperationRunner::OpenFileToRead( | 127 void ArcFileSystemOperationRunner::OpenFileToRead( |
| 108 const GURL& url, | 128 const GURL& url, |
| 109 const OpenFileToReadCallback& callback) { | 129 const OpenFileToReadCallback& callback) { |
| 110 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 130 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 111 if (should_defer_) { | 131 if (should_defer_) { |
| 112 deferred_operations_.emplace_back( | 132 deferred_operations_.emplace_back( |
| 113 base::Bind(&ArcFileSystemOperationRunner::OpenFileToRead, | 133 base::Bind(&ArcFileSystemOperationRunner::OpenFileToRead, |
| 114 weak_ptr_factory_.GetWeakPtr(), url, callback)); | 134 weak_ptr_factory_.GetWeakPtr(), url, callback)); |
| 115 return; | 135 return; |
| 116 } | 136 } |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 deferred_operations.swap(deferred_operations_); | 324 deferred_operations.swap(deferred_operations_); |
| 305 for (const base::Closure& operation : deferred_operations) { | 325 for (const base::Closure& operation : deferred_operations) { |
| 306 operation.Run(); | 326 operation.Run(); |
| 307 } | 327 } |
| 308 | 328 |
| 309 // No deferred operations should be left at this point. | 329 // No deferred operations should be left at this point. |
| 310 DCHECK(deferred_operations_.empty()); | 330 DCHECK(deferred_operations_.empty()); |
| 311 } | 331 } |
| 312 | 332 |
| 313 } // namespace arc | 333 } // namespace arc |
| OLD | NEW |