/** * Uses CSS classNames on the HTML tag to describe user agent. CSS developers use these classNames to apply * CSS style that work around browser incompatibilities */ define('jira/ajs/browser/describe-browser', ['jira/util/navigator', 'jquery'], function (Navigator, jQuery) { function browserName() { if (Navigator.isEdge()) return "msie edge"; if (Navigator.isIE()) return "msie"; if (Navigator.isSafari()) return "webkit safari"; if (Navigator.isChrome()) return "webkit chrome"; if (Navigator.isMozilla()) return "mozilla"; if (Navigator.isOpera()) return "opera"; return ""; } function describeBrowser() { var classNames = []; var browser = browserName(); var version = Navigator.majorVersion(); classNames.push(browser); if (Navigator.isIE()) { classNames.push("msie-" + version); while (version > 6) { --version; classNames.push("msie-gt-" + version); } } jQuery("html").addClass(classNames.join(" ")); } return describeBrowser; }); AJS.namespace('AJS.describeBrowser', null, require('jira/ajs/browser/describe-browser'));