// Copyright © 2019 The CefSharp Authors. All rights reserved. // // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. using System; namespace CefSharp.Enums { /// /// Configuration options for registering a custom scheme. /// These values are used when calling AddCustomScheme. /// [Flags] public enum SchemeOptions { /// /// Register scheme without options set /// None = 0, /// /// If Standard is set the scheme will be treated as a /// standard scheme. Standard schemes are subject to URL canonicalization and /// parsing rules as defined in the Common Internet Scheme Syntax RFC 1738 /// Section 3.1 available at http://www.ietf.org/rfc/rfc1738.txt /// /// In particular, the syntax for standard scheme URLs must be of the form: ///
        ///  [scheme]://[username]:[password]@[host]:[port]/[url-path]
        /// 
Standard scheme URLs must have a host component that is a fully /// qualified domain name as defined in Section 3.5 of RFC 1034 [13] and /// Section 2.1 of RFC 1123. These URLs will be canonicalized to /// "scheme://host/path" in the simplest case and /// "scheme://username:password@host:port/path" in the most explicit case. For /// example, "scheme:host/path" and "scheme:///host/path" will both be /// canonicalized to "scheme://host/path". The origin of a standard scheme URL /// is the combination of scheme, host and port (i.e., "scheme://host:port" in /// the most explicit case). /// /// For non-standard scheme URLs only the "scheme:" component is parsed and /// canonicalized. The remainder of the URL will be passed to the handler as- /// is. For example, "scheme:///some%20text" will remain the same. Non-standard /// scheme URLs cannot be used as a target for form submission. ///
Standard = 1 << 0, /// /// If Local is set the scheme will be treated with the same /// security rules as those applied to "file" URLs. Normal pages cannot link to /// or access local URLs. Also, by default, local URLs can only perform /// XMLHttpRequest calls to the same URL (origin + path) that originated the /// request. To allow XMLHttpRequest calls from a local URL to other URLs with /// the same origin set the CefSettings.FileAccessFromFileUrlsAllowed /// value to true. To allow XMLHttpRequest calls from a local URL to all /// origins set the CefSettings.UniversalAccessFromFileUrlsAllowed value /// to true. /// Local = 1 << 1, /// /// If DisplayIsolated is set the scheme can only be /// displayed from other content hosted with the same scheme. For example, /// pages in other origins cannot create iframes or hyperlinks to URLs with the /// scheme. For schemes that must be accessible from other schemes don't set /// this, set CorsEnabled, and use CORS "Access-Control-Allow-Origin" headers /// to further restrict access. /// DisplayIsolated = 1 << 2, /// /// If Secure is set the scheme will be treated with the same /// security rules as those applied to "https" URLs. For example, loading this /// scheme from other secure schemes will not trigger mixed content warnings. /// Secure = 1 << 3, /// /// If CorsEnabled is set the scheme can be sent CORS requests. /// This value should be set in most cases where Standard is set. /// CorsEnabled = 1 << 4, /// /// If CspBypassing is set the scheme can bypass Content-Security-Policy (CSP) checks. /// This value should not be set in most cases where Standard is set. /// CspBypassing = 1 << 5, /// /// If FetchEnabled is set the scheme can perform Fetch API requests. /// FetchEnabled = 1 << 6, } }