| Index: chrome/browser/chromeos/file_manager/open_with_browser.cc
|
| diff --git a/chrome/browser/chromeos/file_manager/open_with_browser.cc b/chrome/browser/chromeos/file_manager/open_with_browser.cc
|
| index 771883621039c840bf93c746700bc818f715d077..c4d516ee5d13681a5b59a4aa3796916755c2cbda 100644
|
| --- a/chrome/browser/chromeos/file_manager/open_with_browser.cc
|
| +++ b/chrome/browser/chromeos/file_manager/open_with_browser.cc
|
| @@ -129,20 +129,22 @@ GURL ReadUrlFromGDocOnBlockingPool(const base::FilePath& file_path) {
|
|
|
| } // namespace
|
|
|
| -bool OpenFileWithBrowser(Profile* profile, const base::FilePath& file_path) {
|
| +bool OpenFileWithBrowser(Profile* profile,
|
| + const storage::FileSystemURL& file_system_url) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| DCHECK(profile);
|
|
|
| + const base::FilePath file_path = file_system_url.path();
|
| +
|
| // For things supported natively by the browser, we should open it
|
| // in a tab.
|
| if (IsViewableInBrowser(file_path) ||
|
| ShouldBeOpenedWithPlugin(profile, file_path.Extension())) {
|
| - GURL page_url = net::FilePathToFileURL(file_path);
|
| - // Override drive resource to point to internal handler instead of file URL.
|
| - if (drive::util::IsUnderDriveMountPoint(file_path)) {
|
| - page_url = chromeos::FilePathToExternalFileURL(
|
| - drive::util::ExtractDrivePath(file_path));
|
| - }
|
| + // Use external file URL if it is provided for the file system.
|
| + GURL page_url = chromeos::FileSystemURLToExternalFileURL(file_system_url);
|
| + if (page_url.is_empty())
|
| + page_url = net::FilePathToFileURL(file_system_url.path());
|
| +
|
| OpenNewTab(profile, page_url);
|
| return true;
|
| }
|
| @@ -150,8 +152,8 @@ bool OpenFileWithBrowser(Profile* profile, const base::FilePath& file_path) {
|
| if (drive::util::HasHostedDocumentExtension(file_path)) {
|
| if (drive::util::IsUnderDriveMountPoint(file_path)) {
|
| // The file is on Google Docs. Open with drive URL.
|
| - GURL url = chromeos::FilePathToExternalFileURL(
|
| - drive::util::ExtractDrivePath(file_path));
|
| + GURL url = chromeos::FileSystemURLToExternalFileURL(file_system_url);
|
| + DCHECK(!url.is_empty());
|
| OpenNewTab(profile, url);
|
| } else {
|
| // The file is local (downloaded from an attachment or otherwise copied).
|
|
|