// Copyright 2016 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_APP_APPLICATION_DELEGATE_URL_OPENER_H_
#define IOS_CHROME_APP_APPLICATION_DELEGATE_URL_OPENER_H_
#import <UIKit/UIKit.h>
#import "ios/chrome/app/application_delegate/app_state_observer.h"
@class AppState;
@protocol ConnectionInformation;
class PrefService;
@protocol StartupInformation;
@protocol TabOpening;
@class URLOpenerParams;
// Handles the URL-opening methods of the ApplicationDelegate. This class has
// only class methods and should not be instantiated.
@interface URLOpener : NSObject
- (instancetype)init NS_UNAVAILABLE;
+ (BOOL)openURL:(URLOpenerParams*)options
applicationActive:(BOOL)applicationActive
tabOpener:(id<TabOpening>)tabOpener
connectionInformation:(id<ConnectionInformation>)connectionInformation
startupInformation:(id<StartupInformation>)startupInformation
prefService:(PrefService*)prefService
initStage:(InitStage)initStage;
// Handles open URL at application startup.
+ (void)handleLaunchOptions:(URLOpenerParams*)options
tabOpener:(id<TabOpening>)tabOpener
connectionInformation:(id<ConnectionInformation>)connectionInformation
startupInformation:(id<StartupInformation>)startupInformation
appState:(AppState*)appState
prefService:(PrefService*)prefService;
@end
#endif // IOS_CHROME_APP_APPLICATION_DELEGATE_URL_OPENER_H_