Index: chrome/browser/ui/browser_navigator.cc |
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc |
index fb73fe7d6191e54d1d4abd8e98c1bbc8ab3a86c7..ac55b9888e595ff7196b79b74044284b8c6f5d48 100644 |
--- a/chrome/browser/ui/browser_navigator.cc |
+++ b/chrome/browser/ui/browser_navigator.cc |
@@ -12,6 +12,8 @@ |
#include "base/utf_string_conversions.h" |
#include "chrome/browser/browser_about_handler.h" |
#include "chrome/browser/extensions/extension_service.h" |
+#include "chrome/browser/extensions/extension_system.h" |
+#include "chrome/browser/extensions/platform_app_redirector.h" |
#include "chrome/browser/extensions/tab_helper.h" |
#include "chrome/browser/google/google_url_tracker.h" |
#include "chrome/browser/prefs/incognito_mode_prefs.h" |
@@ -461,6 +463,18 @@ void Navigate(NavigateParams* params) { |
if (service) |
service->ShouldBlockUrlInBrowserTab(¶ms->url); |
+ extensions::ExtensionSystem* system = |
+ extensions::ExtensionSystem::Get(params->initiating_profile); |
+ if (system) { |
+ extensions::PlatformAppRedirector* platform_app_redirector = |
+ system->platform_app_redirector(); |
+ |
+ if (platform_app_redirector && |
+ platform_app_redirector->MaybeLaunchPlatformAppWithUrl( |
+ params->url, params->referrer.url)) |
+ return; |
+ } |
+ |
// The browser window may want to adjust the disposition. |
if (params->disposition == NEW_POPUP && |
source_browser && |