chromium/ios/chrome/browser/shared/public/commands/browser_coordinator_commands.h

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_BROWSER_SHARED_PUBLIC_COMMANDS_BROWSER_COORDINATOR_COMMANDS_H_
#define IOS_CHROME_BROWSER_SHARED_PUBLIC_COMMANDS_BROWSER_COORDINATOR_COMMANDS_H_

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@protocol BadgeItem;
class GURL;

// Protocol for commands that will be handled by the BrowserCoordinator.
// TODO(crbug.com/41427057) : Rename this protocol to one that is more
// descriptive and representative of the contents.
@protocol BrowserCoordinatorCommands

// Prints the currently active tab.
// Print preview will be presented on top of `baseViewController`.
- (void)printTabWithBaseViewController:(UIViewController*)baseViewController;

// Prints an image.
// Print preview will be presented on top of `baseViewController`.
- (void)printImage:(UIImage*)image
                 title:(NSString*)title
    baseViewController:(UIViewController*)baseViewController;

// Shows the downloads folder.
- (void)showDownloadsFolder;

// Shows the Reading List UI.
- (void)showReadingList;

// Shows bookmarks manager.
- (void)showBookmarksManager;

// Shows recent tabs.
- (void)showRecentTabs;

// Shows the translate infobar.
- (void)showTranslate;

// Shows the AddCreditCard UI.
- (void)showAddCreditCard;

// Shows the dialog for sending the page with `url` and `title` between a user's
// devices.
- (void)showSendTabToSelfUI:(const GURL&)url title:(NSString*)title;

// Hides the dialog shown by -showSendTabToSelfUI:.
- (void)hideSendTabToSelfUI;

// Shows the online help page in a tab.
- (void)showHelpPage;

// Shows the activity indicator overlay that appears over the view to prevent
// interaction with the web page.
- (void)showActivityOverlay;

// Hides the activity indicator overlay.
- (void)hideActivityOverlay;

#if !defined(NDEBUG)
// Inserts a new tab showing the HTML source of the current page.
- (void)viewSource;
#endif

// Animates the NTP fakebox to the focused position and focuses the real
// omnibox.
- (void)focusFakebox;

// Closes the current tab.
// TODO(crbug.com/40806293): Refactor this command away; call sites should close
// via the WebStateList.
- (void)closeCurrentTab;

// Shows the spotlight debugger.
- (void)showSpotlightDebugger;

// Preloads voice search in the current BVC.
- (void)preloadVoiceSearch;

// Dismiss the payments suggestions.
- (void)dismissPaymentSuggestions;

// Dismiss the password suggestions.
- (void)dismissPasswordSuggestions;

// Dismiss the card unmask authentication prompt.
- (void)dismissCardUnmaskAuthentication;

// Dismiss the plus address bottom sheet.
- (void)dismissPlusAddressBottomSheet;

// Dismiss the virtual card enrollment bottom sheet.
- (void)dismissVirtualCardEnrollmentBottomSheet;

// Shows the omnibox position choice screen.
- (void)showOmniboxPositionChoice;

// Dismisses the omnibox position choice screen.
- (void)dismissOmniboxPositionChoice;

// Shows and dismisses the Lens Promo.
- (void)showLensPromo;
- (void)dismissLensPromo;

@end

#endif  // IOS_CHROME_BROWSER_SHARED_PUBLIC_COMMANDS_BROWSER_COORDINATOR_COMMANDS_H_