browser_commands.h revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_BROWSER_COMMANDS_H_ 6#define CHROME_BROWSER_UI_BROWSER_COMMANDS_H_ 7 8#include <string> 9 10#include "chrome/browser/devtools/devtools_toggle_action.h" 11#include "chrome/browser/ui/host_desktop.h" 12#include "chrome/browser/ui/tabs/tab_strip_model_delegate.h" 13#include "content/public/common/page_zoom.h" 14#include "ui/base/window_open_disposition.h" 15 16class Browser; 17class CommandObserver; 18class GURL; 19class Profile; 20 21namespace content { 22class PageState; 23class WebContents; 24struct SSLStatus; 25} 26 27namespace chrome { 28 29// For all commands, where a tab is not specified, the active tab is assumed. 30 31bool IsCommandEnabled(Browser* browser, int command); 32bool SupportsCommand(Browser* browser, int command); 33bool ExecuteCommand(Browser* browser, int command); 34bool ExecuteCommandWithDisposition(Browser* browser, 35 int command, 36 WindowOpenDisposition disposition); 37void UpdateCommandEnabled(Browser* browser, int command, bool enabled); 38void AddCommandObserver(Browser*, int command, CommandObserver* observer); 39void RemoveCommandObserver(Browser*, int command, CommandObserver* observer); 40 41int GetContentRestrictions(const Browser* browser); 42 43// Opens a new window with the default blank tab. 44void NewEmptyWindow(Profile* profile, HostDesktopType desktop_type); 45 46// Opens a new window with the default blank tab. This bypasses metrics and 47// various internal bookkeeping; NewEmptyWindow (above) is preferred. 48Browser* OpenEmptyWindow(Profile* profile, HostDesktopType desktop_type); 49 50// Opens a new window with the tabs from |profile|'s TabRestoreService. 51void OpenWindowWithRestoredTabs(Profile* profile, 52 HostDesktopType host_desktop_type); 53 54// Opens the specified URL in a new browser window in an incognito session on 55// the desktop specified by |desktop_type|. If there is already an existing 56// active incognito session for the specified |profile|, that session is re- 57// used. 58void OpenURLOffTheRecord(Profile* profile, const GURL& url, 59 chrome::HostDesktopType desktop_type); 60 61bool CanGoBack(const Browser* browser); 62void GoBack(Browser* browser, WindowOpenDisposition disposition); 63bool CanGoForward(const Browser* browser); 64void GoForward(Browser* browser, WindowOpenDisposition disposition); 65bool NavigateToIndexWithDisposition(Browser* browser, 66 int index, 67 WindowOpenDisposition disp); 68void Reload(Browser* browser, WindowOpenDisposition disposition); 69void ReloadIgnoringCache(Browser* browser, WindowOpenDisposition disposition); 70bool CanReload(const Browser* browser); 71void Home(Browser* browser, WindowOpenDisposition disposition); 72void OpenCurrentURL(Browser* browser); 73void Stop(Browser* browser); 74void NewWindow(Browser* browser); 75void NewIncognitoWindow(Browser* browser); 76void CloseWindow(Browser* browser); 77void NewTab(Browser* browser); 78void CloseTab(Browser* browser); 79void RestoreTab(Browser* browser); 80TabStripModelDelegate::RestoreTabType GetRestoreTabType( 81 const Browser* browser); 82void SelectNextTab(Browser* browser); 83void SelectPreviousTab(Browser* browser); 84void OpenTabpose(Browser* browser); // Mac-only 85void MoveTabNext(Browser* browser); 86void MoveTabPrevious(Browser* browser); 87void SelectNumberedTab(Browser* browser, int index); 88void SelectLastTab(Browser* browser); 89void DuplicateTab(Browser* browser); 90bool CanDuplicateTab(const Browser* browser); 91content::WebContents* DuplicateTabAt(Browser* browser, int index); 92bool CanDuplicateTabAt(Browser* browser, int index); 93void ConvertPopupToTabbedBrowser(Browser* browser); 94void Exit(); 95void BookmarkCurrentPage(Browser* browser); 96void BookmarkCurrentPageFromStar(Browser* browser); 97bool CanBookmarkCurrentPage(const Browser* browser); 98void BookmarkAllTabs(Browser* browser); 99bool CanBookmarkAllTabs(const Browser* browser); 100void TogglePagePinnedToStartScreen(Browser* browser); 101void SavePage(Browser* browser); 102bool CanSavePage(const Browser* browser); 103void ShowFindBar(Browser* browser); 104void ShowWebsiteSettings(Browser* browser, 105 content::WebContents* web_contents, 106 const GURL& url, 107 const content::SSLStatus& ssl, 108 bool show_history); 109void ShowChromeToMobileBubble(Browser* browser); 110void Print(Browser* browser); 111bool CanPrint(const Browser* browser); 112void AdvancedPrint(Browser* browser); 113bool CanAdvancedPrint(const Browser* browser); 114void PrintToDestination(Browser* browser); 115void EmailPageLocation(Browser* browser); 116bool CanEmailPageLocation(const Browser* browser); 117void Cut(Browser* browser); 118void Copy(Browser* browser); 119void Paste(Browser* browser); 120void Find(Browser* browser); 121void FindNext(Browser* browser); 122void FindPrevious(Browser* browser); 123void FindInPage(Browser* browser, bool find_next, bool forward_direction); 124void Zoom(Browser* browser, content::PageZoom zoom); 125void FocusToolbar(Browser* browser); 126void FocusLocationBar(Browser* browser); 127void FocusSearch(Browser* browser); 128void FocusAppMenu(Browser* browser); 129void FocusBookmarksToolbar(Browser* browser); 130void FocusInfobars(Browser* browser); 131void FocusNextPane(Browser* browser); 132void FocusPreviousPane(Browser* browser); 133void ToggleDevToolsWindow(Browser* browser, DevToolsToggleAction action); 134bool CanOpenTaskManager(); 135void OpenTaskManager(Browser* browser); 136void OpenFeedbackDialog(Browser* browser); 137void ToggleBookmarkBar(Browser* browser); 138void ShowAppMenu(Browser* browser); 139void ShowAvatarMenu(Browser* browser); 140void OpenUpdateChromeDialog(Browser* browser); 141void ToggleSpeechInput(Browser* browser); 142bool CanRequestTabletSite(content::WebContents* current_tab); 143bool IsRequestingTabletSite(Browser* browser); 144void ToggleRequestTabletSite(Browser* browser); 145void ToggleFullscreenMode(Browser* browser); 146void ClearCache(Browser* browser); 147bool IsDebuggerAttachedToCurrentTab(Browser* browser); 148 149// Opens a view-source tab for a given web contents. 150void ViewSource(Browser* browser, content::WebContents* tab); 151 152// Opens a view-source tab for any frame within a given web contents. 153void ViewSource(Browser* browser, 154 content::WebContents* tab, 155 const GURL& url, 156 const content::PageState& page_state); 157 158void ViewSelectedSource(Browser* browser); 159bool CanViewSource(const Browser* browser); 160 161void CreateApplicationShortcuts(Browser* browser); 162bool CanCreateApplicationShortcuts(const Browser* browser); 163 164void ConvertTabToAppWindow(Browser* browser, content::WebContents* contents); 165 166} // namespace chrome 167 168#endif // CHROME_BROWSER_UI_BROWSER_COMMANDS_H_ 169