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

Unified Diff: chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner.cc

Issue 2651883003: Clean up ARC file system unit tests. (Closed)
Patch Set: Rebased. Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698