blob: 878334e035d8dafcc87dfa066998d1154bb13ed7 [file] [log] [blame]
// Copyright 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_CHROME_BROWSER_UI_COMMANDS_OPEN_URL_COMMAND_H_
#define IOS_CHROME_BROWSER_UI_COMMANDS_OPEN_URL_COMMAND_H_
#import <UIKit/UIKit.h>
#import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
#import "ios/chrome/browser/ui/url_loader.h"
namespace web {
struct Referrer;
}
class GURL;
// A command to open a new tab.
@interface OpenUrlCommand : GenericChromeCommand
// Mark inherited initializer as unavailable to prevent calling it by mistake.
- (instancetype)initWithTag:(NSInteger)tag NS_UNAVAILABLE;
// Initializes a command intended to open a URL as a link from a page.
- (instancetype)initWithURL:(const GURL&)url
referrer:(const web::Referrer&)referrer
windowName:(NSString*)windowName
inIncognito:(BOOL)inIncognito
inBackground:(BOOL)inBackground
appendTo:(OpenPosition)append NS_DESIGNATED_INITIALIZER;
// Initializes a command intended to open a URL from browser chrome (e.g.,
// settings). This will always open in a new foreground tab in non-incognito
// mode.
- (instancetype)initWithURLFromChrome:(const GURL&)url;
// URL to open.
@property(nonatomic, readonly) const GURL& url;
// Referrer for the URL.
@property(nonatomic, readonly) const web::Referrer& referrer;
// Name of the window.
@property(nonatomic, readonly) NSString* windowName;
// Whether this URL command requests opening in incognito or not.
@property(nonatomic, readonly) BOOL inIncognito;
// Whether this URL command requests opening in background or not.
@property(nonatomic, readonly) BOOL inBackground;
// Whether or not this URL command comes from a chrome context (e.g., settings),
// as opposed to a web page context.
@property(nonatomic, readonly) BOOL fromChrome;
// Location where the new tab should be opened.
@property(nonatomic, readonly) OpenPosition appendTo;
@end
#endif // IOS_CHROME_BROWSER_UI_COMMANDS_OPEN_URL_COMMAND_H_