/**
 * @class Ext.env.Browser
 * Provides information about browser.
 *
 * Should not be manually instantiated unless for unit-testing.
 * Access the global instance stored in {@link Ext.browser} instead.
 * @private
 */
 
/**
 * @property {String} userAgent 
 * Browser User Agent string.
 */
 
/**
 * @property is
 * A "hybrid" property, can be either accessed as a method call, for example:
 *
 *     if (Ext.browser.is('IE')) {
 *         // ...
 *     }
 *
 * Or as an object with Boolean properties, for example:
 *
 *     if (Ext.browser.is.IE) {
 *         // ...
 *     }
 *
 * Versions can be conveniently checked as well. For example:
 *
 *     if (Ext.browser.is.IE10) {
 *         // Equivalent to (Ext.browser.is.IE && Ext.browser.version.equals(10))
 *     }
 *
 * __Note:__ Only {@link Ext.Version#getMajor major component}  and {@link Ext.Version#getShortVersion simplified}
 * value of the version are available via direct property checking.
 *
 * Supported values are:
 *
 * - IE
 * - Firefox
 * - Safari
 * - Chrome
 * - Opera
 * - WebKit
 * - Gecko
 * - Presto
 * - Trident
 * - WebView
 * - Other
 *
 * @param {String} name The OS name to check.
 * @return {Boolean}
 */
 
/**
 * @property chromeVersion
 * The current version of Chrome (0 if the browser is not Chrome).
 * @readonly
 * @type Number
 * @member Ext
 */
 
/**
 * @property firefoxVersion
 * The current version of Firefox (0 if the browser is not Firefox).
 * @readonly
 * @type Number
 * @member Ext
 */
 
/**
 * @property ieVersion
 * The current version of IE (0 if the browser is not IE). This does not account
 * for the documentMode of the current page, which is factored into {@link #isIE8},
 * and {@link #isIE9}. Thus this is not always true:
 *
 *     Ext.isIE8 == (Ext.ieVersion == 8)
 *
 * @readonly
 * @type Number
 * @member Ext
 */
 
/**
 * @property isChrome
 * True if the detected browser is Chrome.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isGecko
 * True if the detected browser uses the Gecko layout engine (e.g. Mozilla, Firefox).
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE
 * True if the detected browser is Internet Explorer.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE8
 * True if the detected browser is Internet Explorer 8.x.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE8m
 * True if the detected browser is Internet Explorer 8.x or lower.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE8p
 * True if the detected browser is Internet Explorer 8.x or higher.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE9
 * True if the detected browser is Internet Explorer 9.x.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE9m
 * True if the detected browser is Internet Explorer 9.x or lower.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE9p
 * True if the detected browser is Internet Explorer 9.x or higher.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE10
 * True if the detected browser is Internet Explorer 10.x.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE10m
 * True if the detected browser is Internet Explorer 10.x or lower.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE10p
 * True if the detected browser is Internet Explorer 10.x or higher.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE11
 * True if the detected browser is Internet Explorer 11.x.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE11m
 * True if the detected browser is Internet Explorer 11.x or lower.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isIE11p
 * True if the detected browser is Internet Explorer 11.x or higher.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isEdge
 * True if the detected browser is Edge.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isLinux
 * True if the detected platform is Linux.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isMac
 * True if the detected platform is Mac OS.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isOpera
 * True if the detected browser is Opera.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isSafari
 * True if the detected browser is Safari.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isWebKit
 * True if the detected browser uses WebKit.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property isWindows
 * True if the detected platform is Windows.
 * @readonly
 * @type Boolean
 * @member Ext
 */
 
/**
 * @property operaVersion
 * The current version of Opera (0 if the browser is not Opera).
 * @readonly
 * @type Number
 * @member Ext
 */
 
/**
 * @property safariVersion
 * The current version of Safari (0 if the browser is not Safari).
 * @readonly
 * @type Number
 * @member Ext
 */
 
/**
 * @property webKitVersion
 * The current version of WebKit (0 if the browser does not use WebKit).
 * @readonly
 * @type Number
 * @member Ext
 */
 
/**
 * @property {Boolean} isStrict 
 * `true` if browser is using strict mode.
 */
 
/**
 * @property {Boolean} isSecure 
 * `true` if page is running over SSL.
 */
 
/**
 * @property name
 * The full name of the current browser.
 * Possible values are:
 *
 * - IE
 * - Firefox
 * - Safari
 * - Chrome
 * - Opera
 * - Other
 * @type String
 * @readonly
 */
 
/**
 * @property version
 * Refer to {@link Ext.Version}.
 * @type Ext.Version
 * @readonly
 */
 
/**
 * @property engineName
 * The full name of the current browser's engine.
 * Possible values are:
 *
 * - WebKit
 * - Gecko
 * - Presto
 * - Trident
 * - Other
 * @type String
 * @readonly
 */
 
/**
 * @property engineVersion
 * Refer to {@link Ext.Version}.
 * @type Ext.Version
 * @readonly
 */
 
/**
 * @class Ext.browser
 * @extends Ext.env.Browser
 * @singleton
 * Provides useful information about the current browser.
 *
 * Example:
 *
 *     if (Ext.browser.is.IE) {
 *         // IE specific code here
 *     }
 *
 *     if (Ext.browser.is.WebKit) {
 *         // WebKit specific code here
 *     }
 *
 *     console.log("Version " + Ext.browser.version);
 *
 * For a full list of supported values, refer to {@link #is} property/method.
 *
 */
 
/**
 * @property {String} SSL_SECURE_URL 
 * URL to a blank file used by Ext when in secure mode for iframe src and onReady src
 * to prevent the IE insecure content warning (`'about:blank'`, except for IE
 * in secure mode, which is `'javascript:""'`).
 * @member Ext
 */