Index: chrome/browser/ui/browser.cc |
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc |
index 55db7f5513835ce64bee0cafeef541dc48f4b51e..f1820cfe2e930b39c8c619d3f4bb51b2d431be84 100644 |
--- a/chrome/browser/ui/browser.cc |
+++ b/chrome/browser/ui/browser.cc |
@@ -108,6 +108,7 @@ |
#include "chrome/browser/ui/chrome_select_file_policy.h" |
#include "chrome/browser/ui/exclusive_access/fullscreen_controller.h" |
#include "chrome/browser/ui/exclusive_access/mouse_lock_controller.h" |
+#include "chrome/browser/ui/extensions/bookmark_app_browser_controller.h" |
#include "chrome/browser/ui/fast_unload_controller.h" |
#include "chrome/browser/ui/find_bar/find_bar.h" |
#include "chrome/browser/ui/find_bar/find_bar_controller.h" |
@@ -140,7 +141,6 @@ |
#include "chrome/browser/ui/webui/signin/login_ui_service_factory.h" |
#include "chrome/browser/ui/window_sizer/window_sizer.h" |
#include "chrome/browser/upgrade_detector.h" |
-#include "chrome/browser/web_applications/web_app.h" |
#include "chrome/common/chrome_constants.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/custom_handlers/protocol_handler.h" |
@@ -252,11 +252,6 @@ bool IsFastTabUnloadEnabled() { |
switches::kEnableFastUnload); |
} |
-bool IsWebAppFrameEnabled() { |
- return base::CommandLine::ForCurrentProcess()->HasSwitch( |
- switches::kEnableWebAppFrame); |
-} |
- |
} // namespace |
//////////////////////////////////////////////////////////////////////////////// |
@@ -417,12 +412,20 @@ Browser::Browser(const CreateParams& params) |
if (chrome::IsInstantExtendedAPIEnabled() && is_type_tabbed()) |
instant_controller_.reset(new BrowserInstantController(this)); |
+ if (extensions::BookmarkAppBrowserController::IsForBookmarkApp(this)) { |
+ bookmark_app_controller_.reset( |
+ new extensions::BookmarkAppBrowserController(this)); |
+ } |
+ |
UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_INIT); |
ProfileMetrics::LogProfileLaunch(profile_); |
window_ = params.window ? params.window : CreateBrowserWindow(this); |
+ if (bookmark_app_controller_) |
+ bookmark_app_controller_->UpdateLocationBarState(false); |
+ |
// Create the extension window controller before sending notifications. |
extension_window_controller_.reset( |
new BrowserExtensionWindowController(this)); |
@@ -1411,6 +1414,9 @@ void Browser::NavigationStateChanged(WebContents* source, |
if (changed_flags & (content::INVALIDATE_TYPE_URL | |
content::INVALIDATE_TYPE_LOAD)) |
command_controller_->TabStateChanged(); |
+ |
+ if (bookmark_app_controller_) |
+ bookmark_app_controller_->UpdateLocationBarState(true); |
} |
void Browser::VisibleSSLStateChanged(const WebContents* source) { |
@@ -2409,7 +2415,7 @@ void Browser::TabDetachedAtImpl(content::WebContents* contents, |
} |
} |
-bool Browser::ShouldShowLocationBar() const { |
+bool Browser::SupportsLocationBar() const { |
// Tabbed browser always show a location bar. |
if (is_type_tabbed()) |
return true; |
@@ -2419,34 +2425,22 @@ bool Browser::ShouldShowLocationBar() const { |
if (!is_app()) |
return !is_trusted_source(); |
- if (ShouldUseWebAppFrame()) |
- return false; |
+ if (bookmark_app_controller_) |
+ return bookmark_app_controller_->SupportsLocationBar(); |
- // Bookmark apps should show the location bar. |
- const std::string extension_id = |
- web_app::GetExtensionIdFromApplicationName(app_name()); |
- const extensions::Extension* extension = |
- extensions::ExtensionRegistry::Get(profile_)->GetExtensionById( |
- extension_id, extensions::ExtensionRegistry::EVERYTHING); |
- return extensions::ui_util::ShouldShowLocationBar( |
- extension, tab_strip_model_->GetActiveWebContents()); |
+ return false; |
} |
bool Browser::ShouldUseWebAppFrame() const { |
// Only use the web app frame for apps in ash, and only if the web app frame |
// is enabled. |
- if (!is_app() || host_desktop_type() != chrome::HOST_DESKTOP_TYPE_ASH || |
- !IsWebAppFrameEnabled()) { |
+ if (!is_app()) |
return false; |
- } |
- // Use the web app frame for hosted apps. |
- const std::string extension_id = |
- web_app::GetExtensionIdFromApplicationName(app_name()); |
- const extensions::Extension* extension = |
- extensions::ExtensionRegistry::Get(profile_)->GetExtensionById( |
- extension_id, extensions::ExtensionRegistry::EVERYTHING); |
- return extension && extension->from_bookmark(); |
+ if (bookmark_app_controller_) |
+ return bookmark_app_controller_->should_use_web_app_frame(); |
+ |
+ return false; |
} |
bool Browser::SupportsWindowFeatureImpl(WindowFeature feature, |
@@ -2468,7 +2462,7 @@ bool Browser::SupportsWindowFeatureImpl(WindowFeature feature, |
if (is_type_tabbed()) |
features |= FEATURE_TOOLBAR; |
- if (ShouldShowLocationBar()) |
+ if (SupportsLocationBar()) |
features |= FEATURE_LOCATIONBAR; |
if (ShouldUseWebAppFrame()) |