Index: chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner.cc |
diff --git a/chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner.cc b/chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner.cc |
deleted file mode 100644 |
index 12ecfe34959e7bd8bfbed58c745bf6a4a4c999a6..0000000000000000000000000000000000000000 |
--- a/chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner.cc |
+++ /dev/null |
@@ -1,172 +0,0 @@ |
-// Copyright 2017 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner.h" |
- |
-#include "base/bind.h" |
-#include "base/location.h" |
-#include "base/optional.h" |
-#include "base/threading/thread_task_runner_handle.h" |
-#include "components/arc/arc_bridge_service.h" |
-#include "content/public/browser/browser_thread.h" |
-#include "url/gurl.h" |
- |
-using content::BrowserThread; |
- |
-namespace arc { |
- |
-ArcDeferredFileSystemOperationRunner::ArcDeferredFileSystemOperationRunner( |
- ArcBridgeService* bridge_service) |
- : ArcDeferredFileSystemOperationRunner(bridge_service, true) {} |
- |
-ArcDeferredFileSystemOperationRunner::ArcDeferredFileSystemOperationRunner( |
- ArcBridgeService* bridge_service, |
- bool observe_events) |
- : ArcFileSystemOperationRunner(bridge_service), |
- observe_events_(observe_events), |
- weak_ptr_factory_(this) { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- |
- if (observe_events_) { |
- ArcSessionManager::Get()->AddObserver(this); |
- arc_bridge_service()->file_system()->AddObserver(this); |
- OnStateChanged(); |
- } |
-} |
- |
-ArcDeferredFileSystemOperationRunner::~ArcDeferredFileSystemOperationRunner() { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- |
- if (observe_events_) { |
- ArcSessionManager::Get()->RemoveObserver(this); |
- arc_bridge_service()->file_system()->RemoveObserver(this); |
- } |
- // On destruction, deferred operations are discarded. |
-} |
- |
-void ArcDeferredFileSystemOperationRunner::GetFileSize( |
- const GURL& url, |
- const GetFileSizeCallback& callback) { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- if (should_defer_) { |
- deferred_operations_.emplace_back( |
- base::Bind(&ArcDeferredFileSystemOperationRunner::GetFileSize, |
- weak_ptr_factory_.GetWeakPtr(), url, callback)); |
- return; |
- } |
- auto* file_system_instance = ARC_GET_INSTANCE_FOR_METHOD( |
- arc_bridge_service()->file_system(), GetFileSize); |
- if (!file_system_instance) { |
- base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, |
- base::Bind(callback, -1)); |
- return; |
- } |
- file_system_instance->GetFileSize(url.spec(), callback); |
-} |
- |
-void ArcDeferredFileSystemOperationRunner::OpenFileToRead( |
- const GURL& url, |
- const OpenFileToReadCallback& callback) { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- if (should_defer_) { |
- deferred_operations_.emplace_back( |
- base::Bind(&ArcDeferredFileSystemOperationRunner::OpenFileToRead, |
- weak_ptr_factory_.GetWeakPtr(), url, callback)); |
- return; |
- } |
- auto* file_system_instance = ARC_GET_INSTANCE_FOR_METHOD( |
- arc_bridge_service()->file_system(), OpenFileToRead); |
- if (!file_system_instance) { |
- base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(callback, base::Passed(mojo::ScopedHandle()))); |
- return; |
- } |
- file_system_instance->OpenFileToRead(url.spec(), callback); |
-} |
- |
-void ArcDeferredFileSystemOperationRunner::GetDocument( |
- const std::string& authority, |
- const std::string& document_id, |
- const GetDocumentCallback& callback) { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- if (should_defer_) { |
- deferred_operations_.emplace_back(base::Bind( |
- &ArcDeferredFileSystemOperationRunner::GetDocument, |
- weak_ptr_factory_.GetWeakPtr(), authority, document_id, callback)); |
- return; |
- } |
- auto* file_system_instance = ARC_GET_INSTANCE_FOR_METHOD( |
- arc_bridge_service()->file_system(), GetDocument); |
- if (!file_system_instance) { |
- base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(callback, base::Passed(mojom::DocumentPtr()))); |
- return; |
- } |
- file_system_instance->GetDocument(authority, document_id, callback); |
-} |
- |
-void ArcDeferredFileSystemOperationRunner::GetChildDocuments( |
- const std::string& authority, |
- const std::string& parent_document_id, |
- const GetChildDocumentsCallback& callback) { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- if (should_defer_) { |
- deferred_operations_.emplace_back( |
- base::Bind(&ArcDeferredFileSystemOperationRunner::GetChildDocuments, |
- weak_ptr_factory_.GetWeakPtr(), authority, |
- parent_document_id, callback)); |
- return; |
- } |
- auto* file_system_instance = ARC_GET_INSTANCE_FOR_METHOD( |
- arc_bridge_service()->file_system(), GetChildDocuments); |
- if (!file_system_instance) { |
- base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(callback, base::nullopt)); |
- return; |
- } |
- file_system_instance->GetChildDocuments(authority, parent_document_id, |
- callback); |
-} |
- |
-void ArcDeferredFileSystemOperationRunner::OnArcOptInChanged(bool enabled) { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- OnStateChanged(); |
-} |
- |
-void ArcDeferredFileSystemOperationRunner::OnInstanceReady() { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- OnStateChanged(); |
-} |
- |
-void ArcDeferredFileSystemOperationRunner::OnInstanceClosed() { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- OnStateChanged(); |
-} |
- |
-void ArcDeferredFileSystemOperationRunner::OnStateChanged() { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- SetShouldDefer(ArcSessionManager::Get()->IsArcEnabled() && |
- !arc_bridge_service()->file_system()->has_instance()); |
-} |
- |
-void ArcDeferredFileSystemOperationRunner::SetShouldDefer(bool should_defer) { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- |
- should_defer_ = should_defer; |
- |
- if (should_defer_) |
- return; |
- |
- // Run deferred operations. |
- std::vector<base::Closure> deferred_operations; |
- deferred_operations.swap(deferred_operations_); |
- for (const base::Closure& operation : deferred_operations) { |
- operation.Run(); |
- } |
- |
- // No deferred operations should be left at this point. |
- DCHECK(deferred_operations_.empty()); |
-} |
- |
-} // namespace arc |