Index: chrome/browser/ui/browser.cc |
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc |
index f294cecbf7ae30574d2f1585d6d522aa5f66148f..cfe4cd1d05713ec95eaffafbebc129f6c9b90f01 100644 |
--- a/chrome/browser/ui/browser.cc |
+++ b/chrome/browser/ui/browser.cc |
@@ -2179,6 +2179,35 @@ void Browser::TabDetachedAtImpl(content::WebContents* contents, |
} |
} |
+bool Browser::ShouldShowLocationBar() const { |
+ if (!is_app()) { |
+ // Hide the URL for singleton settings windows. |
+ // TODO(stevenjb): We could avoid this check by setting a Browser |
+ // property for "system" windows, possibly shared with hosted app windows. |
+ // crbug.com/350128. |
+ if (chrome::IsSettingsWindow(this)) |
+ return false; |
+ return true; |
+ } |
+ |
+ // Normally apps do not show a location bar. |
+ if (app_type() != APP_TYPE_HOST || |
+ app_name() == DevToolsWindow::kDevToolsApp || |
+ !CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableStreamlinedHostedApps)) |
+ return false; |
+ |
+ // If kEnableStreamlinedHostedApps is true, show the locaiton bar for non |
+ // legacy packaged apps. |
+ ExtensionService* service = |
+ extensions::ExtensionSystem::Get(profile_)->extension_service(); |
+ const extensions::Extension* extension = |
+ service ? service->GetInstalledExtension( |
+ web_app::GetExtensionIdFromApplicationName(app_name())) |
+ : NULL; |
+ return (!extension || !extension->is_legacy_packaged_app()); |
+} |
+ |
bool Browser::SupportsWindowFeatureImpl(WindowFeature feature, |
bool check_fullscreen) const { |
bool hide_ui_for_fullscreen = check_fullscreen && ShouldHideUIForFullscreen(); |
@@ -2198,20 +2227,8 @@ bool Browser::SupportsWindowFeatureImpl(WindowFeature feature, |
if (is_type_tabbed()) |
features |= FEATURE_TOOLBAR; |
- ExtensionService* service = |
- extensions::ExtensionSystem::Get(profile_)->extension_service(); |
- const extensions::Extension* extension = |
- service ? service->GetInstalledExtension( |
- web_app::GetExtensionIdFromApplicationName(app_name())) |
- : NULL; |
- |
- if (!is_app() || (app_type() == APP_TYPE_HOST && |
- app_name() != DevToolsWindow::kDevToolsApp && |
- (!extension || !extension->is_legacy_packaged_app()) && |
- CommandLine::ForCurrentProcess()->HasSwitch( |
- switches::kEnableStreamlinedHostedApps))) { |
+ if (ShouldShowLocationBar()) |
features |= FEATURE_LOCATIONBAR; |
- } |
} |
return !!(features & feature); |
} |