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

Issue 2658573002: Defer ARC file system operations while ARC is booting. (Closed)

Created:
3 years, 11 months ago by Shuhei Takahashi
Modified:
3 years, 11 months ago
Reviewers:
CC:
chromium-reviews
Target Ref:
refs/pending/branch-heads/2987
Project:
chromium
Visibility:
Public.

Description

Defer ARC file system operations while ARC is booting. An additional abstraction layer, ArcFileSystemOperationRunner, is inserted above mojom::FileSystemInstance. Its production implementation is ArcDeferredFileSystemOperationRunner, which defers file system operations while ARC is booting. This provides better UX when the user attempts to perform file operations while ARC is booting. For example: - Media views are mounted in Files app soon after the user logs into the system. If the user attempts to open media views before ARC boots, a spinner is shown until file system gets ready because ReadDirectory operations are deferred. - When an Android content URL is opened soon after the user logs into the system (because the user opened the tab before they logged out for instance), the tab keeps loading until ARC boot finishes, instead of failing immediately. This patch also changes following points for better media view UX: - Mount/unmount media view volumes according to ARC opt-in status, not ARC file system instance availability. - Add a short circuit in ArcDocumentsProviderRoot to return a metadata for root directories. Otherwise Files app fails to update the file system list (the left pane of UI) until deferred operations finish. BUG=chromium:682577 TEST=unit_tests TEST=Media views are mounted immediately, and a spinner is shown if it is opened. Review-Url: https://codereview.chromium.org/2637163002 Cr-Commit-Position: refs/heads/master@{#445657} (cherry picked from commit d280ab1a052245d5bcacf63a4478fc3c0f085899) Review-Url: https://codereview.chromium.org/2658573002 . Cr-Commit-Position: refs/branch-heads/2987@{#82} Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943} Committed: https://chromium.googlesource.com/chromium/src/+/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+787 lines, -365 lines) Patch
M chrome/browser/chromeos/BUILD.gn View 3 chunks +5 lines, -2 lines 0 comments Download
M chrome/browser/chromeos/arc/arc_service_launcher.cc View 2 chunks +4 lines, -0 lines 0 comments Download
M chrome/browser/chromeos/arc/fileapi/arc_content_file_system_async_file_util.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/browser/chromeos/arc/fileapi/arc_content_file_system_async_file_util_unittest.cc View 4 chunks +14 lines, -7 lines 0 comments Download
M chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader.cc View 3 chunks +3 lines, -3 lines 0 comments Download
M chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader_unittest.cc View 4 chunks +20 lines, -18 lines 0 comments Download
A chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner.h View 1 chunk +99 lines, -0 lines 0 comments Download
A chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner.cc View 1 chunk +172 lines, -0 lines 0 comments Download
A chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner_unittest.cc View 1 chunk +182 lines, -0 lines 0 comments Download
M chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc View 3 chunks +17 lines, -3 lines 0 comments Download
M chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root_unittest.cc View 4 chunks +15 lines, -7 lines 0 comments Download
D chrome/browser/chromeos/arc/fileapi/arc_file_system_instance_util.h View 1 chunk +0 lines, -40 lines 0 comments Download
D chrome/browser/chromeos/arc/fileapi/arc_file_system_instance_util.cc View 1 chunk +0 lines, -133 lines 0 comments Download
A + chrome/browser/chromeos/arc/fileapi/arc_file_system_operation_runner_util.h View 4 chunks +8 lines, -8 lines 0 comments Download
A + chrome/browser/chromeos/arc/fileapi/arc_file_system_operation_runner_util.cc View 3 chunks +26 lines, -37 lines 0 comments Download
M chrome/browser/chromeos/arc/fileapi/arc_file_system_service.h View 1 chunk +4 lines, -19 lines 0 comments Download
M chrome/browser/chromeos/arc/fileapi/arc_file_system_service.cc View 3 chunks +0 lines, -24 lines 0 comments Download
M chrome/browser/chromeos/file_manager/volume_manager.h View 4 chunks +5 lines, -5 lines 0 comments Download
M chrome/browser/chromeos/file_manager/volume_manager.cc View 5 chunks +26 lines, -28 lines 0 comments Download
M components/arc/BUILD.gn View 2 chunks +4 lines, -1 line 0 comments Download
D components/arc/file_system/arc_file_system_observer.h View 1 chunk +0 lines, -23 lines 0 comments Download
A components/arc/file_system/arc_file_system_operation_runner.h View 1 chunk +55 lines, -0 lines 0 comments Download
A components/arc/file_system/arc_file_system_operation_runner.cc View 1 chunk +19 lines, -0 lines 0 comments Download
A components/arc/file_system/test/fake_arc_file_system_operation_runner.h View 1 chunk +37 lines, -0 lines 0 comments Download
A components/arc/file_system/test/fake_arc_file_system_operation_runner.cc View 1 chunk +43 lines, -0 lines 0 comments Download
M components/arc/test/fake_file_system_instance.h View 1 chunk +2 lines, -0 lines 0 comments Download
M components/arc/test/fake_file_system_instance.cc View 2 chunks +25 lines, -5 lines 0 comments Download

Messages

Total messages: 2 (1 generated)
Shuhei Takahashi
3 years, 11 months ago (2017-01-25 05:50:02 UTC) #2
Message was sent while issue was closed.
Committed patchset #1 (id:1) manually as
6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c.

Powered by Google App Engine
This is Rietveld 408576698