Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / browser_command_controller.cc
index 425f58d..223136a 100644 (file)
@@ -63,6 +63,7 @@
 #include "ash/multi_profile_uma.h"
 #include "ash/session_state_delegate.h"
 #include "ash/shell.h"
+#include "chrome/browser/ui/ash/multi_user/multi_user_context_menu.h"
 #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h"
 #include "chrome/browser/ui/browser_commands_chromeos.h"
 #endif
@@ -92,13 +93,13 @@ bool HasInternalURL(const NavigationEntry* entry) {
 
   // Check the |virtual_url()| first. This catches regular chrome:// URLs
   // including URLs that were rewritten (such as chrome://bookmarks).
-  if (entry->GetVirtualURL().SchemeIs(chrome::kChromeUIScheme))
+  if (entry->GetVirtualURL().SchemeIs(content::kChromeUIScheme))
     return true;
 
   // If the |virtual_url()| isn't a chrome:// URL, check if it's actually
   // view-source: of a chrome:// URL.
   if (entry->GetVirtualURL().SchemeIs(content::kViewSourceScheme))
-    return entry->GetURL().SchemeIs(chrome::kChromeUIScheme);
+    return entry->GetURL().SchemeIs(content::kChromeUIScheme);
 
   return false;
 }
@@ -289,7 +290,6 @@ bool BrowserCommandController::IsReservedCommandOrKey(
          command_id == IDC_RESTORE_TAB ||
          command_id == IDC_SELECT_NEXT_TAB ||
          command_id == IDC_SELECT_PREVIOUS_TAB ||
-         command_id == IDC_TABPOSE ||
          command_id == IDC_EXIT;
 }
 
@@ -414,9 +414,6 @@ void BrowserCommandController::ExecuteCommandWithDisposition(
           base::UserMetricsAction("Accel_SelectPreviousTab"));
       SelectPreviousTab(browser_);
       break;
-    case IDC_TABPOSE:
-      OpenTabpose(browser_);
-      break;
     case IDC_MOVE_TAB_NEXT:
       MoveTabNext(browser_);
       break;
@@ -468,19 +465,18 @@ void BrowserCommandController::ExecuteCommandWithDisposition(
 
 #if defined(OS_CHROMEOS)
     case IDC_VISIT_DESKTOP_OF_LRU_USER_2:
-    case IDC_VISIT_DESKTOP_OF_LRU_USER_3: {
-        ash::MultiProfileUMA::RecordTeleportAction(
-            ash::MultiProfileUMA::TELEPORT_WINDOW_CAPTION_MENU);
-        // When running the multi user mode on Chrome OS, windows can "visit"
-        // another user's desktop.
-        const std::string& user_id =
-            ash::Shell::GetInstance()->session_state_delegate()->GetUserID(
-                IDC_VISIT_DESKTOP_OF_LRU_USER_2 == id ? 1 : 2);
-        chrome::MultiUserWindowManager::GetInstance()->ShowWindowForUser(
-            browser_->window()->GetNativeWindow(),
-            user_id);
-        break;
-      }
+    case IDC_VISIT_DESKTOP_OF_LRU_USER_3:
+      ExecuteVisitDesktopCommand(id, browser_->window()->GetNativeWindow());
+      break;
+#endif
+
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(TOOLKIT_GTK)
+    case IDC_USE_SYSTEM_TITLE_BAR: {
+      PrefService* prefs = browser_->profile()->GetPrefs();
+      prefs->SetBoolean(prefs::kUseCustomChromeFrame,
+                        !prefs->GetBoolean(prefs::kUseCustomChromeFrame));
+      break;
+    }
 #endif
 
 #if defined(OS_WIN)
@@ -904,6 +900,9 @@ void BrowserCommandController::InitCommandState() {
   command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_2, true);
   command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_3, true);
 #endif
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(TOOLKIT_GTK)
+  command_updater_.UpdateCommandEnabled(IDC_USE_SYSTEM_TITLE_BAR, true);
+#endif
 
   // Page-related commands
   command_updater_.UpdateCommandEnabled(IDC_EMAIL_PAGE_LOCATION, true);
@@ -978,7 +977,11 @@ void BrowserCommandController::InitCommandState() {
   bool normal_window = browser_->is_type_tabbed();
 
   // Navigation commands
-  command_updater_.UpdateCommandEnabled(IDC_HOME, normal_window);
+  command_updater_.UpdateCommandEnabled(
+      IDC_HOME,
+      normal_window || (CommandLine::ForCurrentProcess()->HasSwitch(
+                            switches::kEnableStreamlinedHostedApps) &&
+                        browser_->is_app()));
 
   // Window management commands
   command_updater_.UpdateCommandEnabled(IDC_SELECT_NEXT_TAB, normal_window);
@@ -1009,7 +1012,6 @@ void BrowserCommandController::InitCommandState() {
       IDC_WIN8_DESKTOP_RESTART : IDC_WIN8_METRO_RESTART;
   command_updater_.UpdateCommandEnabled(restart_mode, normal_window);
 #endif
-  command_updater_.UpdateCommandEnabled(IDC_TABPOSE, normal_window);
 
   // Show various bits of UI
   command_updater_.UpdateCommandEnabled(IDC_CLEAR_BROWSING_DATA, normal_window);