chromium/ios/chrome/browser/url_loading/model/url_loading_util.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_URL_LOADING_MODEL_URL_LOADING_UTIL_H_
#define IOS_CHROME_BROWSER_URL_LOADING_MODEL_URL_LOADING_UTIL_H_

#import <Foundation/Foundation.h>

#import "components/sessions/core/session_id.h"
#import "ios/chrome/browser/shared/model/profile/profile_ios_forward.h"
#import "ui/base/window_open_disposition.h"

class Browser;
class GURL;

namespace web {
class WebState;
}

// true if `url` can be loaded in an incognito tab.
bool IsURLAllowedInIncognito(const GURL& url);

// Loads `url` in `web_state`, performing any necessary updates to
// `browser_state`. It is an error to pass a value of GURL that doesn't have a
// javascript: scheme.
void LoadJavaScriptURL(const GURL& url,
                       ChromeBrowserState* browser_state,
                       web::WebState* web_state);

// Restores the closed tab identified by `session_id`, using `disposition`,
// into `browser`.
void RestoreTab(const SessionID session_id,
                WindowOpenDisposition disposition,
                Browser* browser);

#endif  // IOS_CHROME_BROWSER_URL_LOADING_MODEL_URL_LOADING_UTIL_H_