Reland "Files app: Select My files when there are no volumes"

This reverts commit 103069350367d5c2cf85897e99e899b77a82f6b8.

Reason for revert: Undoing speculative revert
The CL was not the culprit

Original change's description:
> Revert "Files app: Select My files when there are no volumes"
> 
> This reverts commit 6f65bd26330cf709e4a4c4eb60876de5849f94d5.
> 
> Reason for revert: Speculative revert
> Suspected of breaking browser_tests, ebui_polymer2_browser_tests, single_process_mash_browser_tests and viz_browser_tests
> on Linux ChromiumOS MSan
> 
> Note: resolved conflicts with ES6 refactoring, therefore running tests...
> 
> Bug: 896219
> 
> Original change's description:
> > Files app: Select My files when there are no volumes
> >
> > Make Files app select "My files" when there are no available volumes,
> > this to allow Files app to behave properly when volumes subsequently
> > become available.
> >
> > Change DirectoryModel.onVolumeInfoListUpdated_ method to check for
> > non-null |displayRoot| before trying to change to |displayRoot|. This
> > fixes the error "Cannot read property 'getParent' of null" when Drive
> > volume becomes available before the (default) Downloads volume/root.
> >
> > Change FakeDriveFs to unbind the two mojo bindings if they're bound, so
> > DriveFsTestVolume can re-mount itself.
> >
> > Changes since revert:
> > 1. Add a new function |getVolumesCount| to return the number of volumes
> > available in the background page.
> > 2. Add the new function above to wait for background page to have all
> > volumes before un-mounting and wait it to unmount all volumes.
> > 3. Change some logs from error to warn because errors are expected and
> > handled when initializing volumes that are unmounting/unmounted in the
> > backend.
> > 4. Change selector used to click on Drive to actually wait for
> > "My Drive" to be available.
> > 5. A bit of more info in some logs around volume initialization.
> >
> > Test: browser_tests --gtest_filter="*/fileDisplayWithoutVolumesThenMount*"
> > Bug: 893161, 884967, 894799
> > Change-Id: I7dcb340991750e9e79a9963990b614c6d7275890
> > Reviewed-on: https://chromium-review.googlesource.com/c/1278619
> > Reviewed-by: Noel Gordon <noel@chromium.org>
> > Reviewed-by: Sam McNally <sammc@chromium.org>
> > Commit-Queue: Luciano Pacheco <lucmult@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#600282}
> 
> TBR=noel@chromium.org,sammc@chromium.org,lucmult@chromium.org
> 
> Change-Id: Ifaadea8b49cffc6deb70b429a42bab39d4a3d52b
> Bug: 893161, 884967, 894799
> Reviewed-on: https://chromium-review.googlesource.com/c/1286146
> Commit-Queue: Christos Froussios <cfroussios@chromium.org>
> Reviewed-by: Christos Froussios <cfroussios@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#600376}

TBR=noel@chromium.org,sammc@chromium.org,cfroussios@chromium.org,lucmult@chromium.org

Change-Id: I388a94fe12c7d40ac7ea779353c3b220bd5b5952
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 896219, 893161, 884967, 894799
Reviewed-on: https://chromium-review.googlesource.com/c/1286853
Reviewed-by: Christos Froussios <cfroussios@chromium.org>
Commit-Queue: Christos Froussios <cfroussios@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600429}
9 files changed