| Index: chrome/browser/ui/ash/chrome_shell_delegate.cc
|
| diff --git a/chrome/browser/ui/ash/chrome_shell_delegate.cc b/chrome/browser/ui/ash/chrome_shell_delegate.cc
|
| index 8697122de5a2c12a5fa4691d38fec20ab0e4b747..0aebfcdcf435ecfa611b3616dd2a9d4d6d260fee 100644
|
| --- a/chrome/browser/ui/ash/chrome_shell_delegate.cc
|
| +++ b/chrome/browser/ui/ash/chrome_shell_delegate.cc
|
| @@ -29,6 +29,7 @@
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
|
| #include "chrome/browser/chromeos/accessibility/magnification_manager.h"
|
| +#include "chrome/browser/chromeos/arc/fileapi/arc_content_file_system_url_util.h"
|
| #include "chrome/browser/chromeos/background/ash_wallpaper_delegate.h"
|
| #include "chrome/browser/chromeos/display/display_configuration_observer.h"
|
| #include "chrome/browser/chromeos/display/display_preferences.h"
|
| @@ -410,10 +411,17 @@ void ChromeShellDelegate::OpenUrlFromArc(const GURL& url) {
|
| if (!url.is_valid())
|
| return;
|
|
|
| + GURL url_to_open = url;
|
| + if (url.SchemeIs(url::kFileScheme) || url.SchemeIs(url::kContentScheme)) {
|
| + // Chrome cannot open this URL. Read the contents via ARC content file
|
| + // system with an external file URL.
|
| + url_to_open = arc::ArcUrlToExternalFileUrl(url_to_open);
|
| + }
|
| +
|
| chrome::ScopedTabbedBrowserDisplayer displayer(
|
| ProfileManager::GetActiveUserProfile());
|
| chrome::AddSelectedTabWithURL(
|
| - displayer.browser(), url,
|
| + displayer.browser(), url_to_open,
|
| ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK |
|
| ui::PAGE_TRANSITION_FROM_API));
|
|
|
|
|