New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 682577 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

Mount media view volumes immediately after login

Project Member Reported by nya@chromium.org, Jan 19 2017

Issue description

Currently, even if the user has enabled ARC, media views in Files app do not appear until ARC finishes booting. It is confusing to users, so we want to show them soon after login.

 
Cc: abod...@chromium.org rookrishna@chromium.org sdantul...@chromium.org
test team FYI
Project Member

Comment 2 by bugdroid1@chromium.org, Jan 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d280ab1a052245d5bcacf63a4478fc3c0f085899

commit d280ab1a052245d5bcacf63a4478fc3c0f085899
Author: nya <nya@chromium.org>
Date: Tue Jan 24 05:33:15 2017

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}

[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/arc_service_launcher.cc
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_async_file_util.cc
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_async_file_util_unittest.cc
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader.cc
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader_unittest.cc
[add] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner.cc
[add] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner.h
[add] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner_unittest.cc
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root_unittest.cc
[rename] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_file_system_operation_runner_util.cc
[rename] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_file_system_operation_runner_util.h
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_file_system_service.cc
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/arc/fileapi/arc_file_system_service.h
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/file_manager/volume_manager.cc
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/chrome/browser/chromeos/file_manager/volume_manager.h
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/components/arc/BUILD.gn
[delete] https://crrev.com/2a90b3aac07b05d5639f5de565c33a66ecc84ff3/components/arc/file_system/arc_file_system_observer.h
[add] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/components/arc/file_system/arc_file_system_operation_runner.cc
[add] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/components/arc/file_system/arc_file_system_operation_runner.h
[add] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/components/arc/file_system/test/fake_arc_file_system_operation_runner.cc
[add] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/components/arc/file_system/test/fake_arc_file_system_operation_runner.h
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/components/arc/test/fake_file_system_instance.cc
[modify] https://crrev.com/d280ab1a052245d5bcacf63a4478fc3c0f085899/components/arc/test/fake_file_system_instance.h

Comment 3 by nya@chromium.org, Jan 24 2017

Cc: weifangsun@chromium.org
Labels: Merge-Request-57
Status: Fixed (was: Started)
Fixed.

Requesting merge to M57 as a UI bug fix.

Project Member

Comment 4 by sheriffbot@chromium.org, Jan 25 2017

Labels: -Merge-Request-57 Hotlist-Merge-Approved Merge-Approved-57
Your change meets the bar and is auto-approved for M57. Please go ahead and merge the CL to branch 2987 manually. Please contact milestone owner if you have questions.
Owners: amineer@(clank), cmasso@(bling), ketakid@(cros), govind@(desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 5 by bugdroid1@chromium.org, Jan 25 2017

Labels: -merge-approved-57 merge-merged-2987
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c

commit 6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c
Author: Shuhei Takahashi <nya@chromium.org>
Date: Wed Jan 25 05:49:10 2017

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}

[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/arc_service_launcher.cc
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_async_file_util.cc
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_async_file_util_unittest.cc
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader.cc
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_content_file_system_file_stream_reader_unittest.cc
[add] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner.cc
[add] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner.h
[add] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_deferred_file_system_operation_runner_unittest.cc
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root.cc
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_root_unittest.cc
[rename] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_file_system_operation_runner_util.cc
[rename] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_file_system_operation_runner_util.h
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_file_system_service.cc
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/arc/fileapi/arc_file_system_service.h
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/file_manager/volume_manager.cc
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/chrome/browser/chromeos/file_manager/volume_manager.h
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/components/arc/BUILD.gn
[delete] https://crrev.com/559d6398923277e0dfc5a65636bf5d0d907aee89/components/arc/file_system/arc_file_system_observer.h
[add] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/components/arc/file_system/arc_file_system_operation_runner.cc
[add] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/components/arc/file_system/arc_file_system_operation_runner.h
[add] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/components/arc/file_system/test/fake_arc_file_system_operation_runner.cc
[add] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/components/arc/file_system/test/fake_arc_file_system_operation_runner.h
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/components/arc/test/fake_file_system_instance.cc
[modify] https://crrev.com/6cbdfc5ed5ae256f03033c0bf7c80bc398d6929c/components/arc/test/fake_file_system_instance.h

Comment 6 by dchan@google.com, Apr 17 2017

Labels: VerifyIn-59
Status: Verified (was: Fixed)

Sign in to add a comment