Best JavaScript code snippet using cypress
2_platform.js
Source:2_platform.js
...20 * New 3DS21 */22if( strPlatform === 'New Nintendo 3DS' || ( findString( strUserAgent, 'iPhone OS 6_0' ) && screenW === 320 && screenH === 240 ) ){23 platform = WHAT_BROWSER_AM_I__PLATFORM_New3DS;24 platformVersion = getVersionString( strUserAgent, 'NintendoBrowser/' );25 deviceTypeIsGame = true;26} else27/*----------------------------------------------------------------------------//28 * 3DS29 */30if( strPlatform === 'Nintendo 3DS' ){31 platform = WHAT_BROWSER_AM_I__PLATFORM_N3DS;32 platformVersion = getVersionString( strUserAgent, 'Version/' );33 versionWebKit = 535; // 534:2.0.0-2J - 9.5.0-22J, 9.5.0-23J -34 versionNX = platformVersion;35 deviceTypeIsGame = true;36} else37/*----------------------------------------------------------------------------//38 * Nintendo Swicth39 */40if( strPlatform === 'Nintendo Swicth' ){41 platform = WHAT_BROWSER_AM_I__PLATFORM_Switch;42 platformVersion = getVersionString( strAppVersion, 'NintendoBrowser/' );43 deviceTypeIsGame = true;44} else45/*----------------------------------------------------------------------------//46 * WiiU47 */48if( window.wiiu /* strPlatform === 'Nintendo WiiU' */ ){49 // https://www.nintendo.co.jp/hardware/wiiu/internetbrowser/index.html50 platform = WHAT_BROWSER_AM_I__PLATFORM_WiiU;51 platformVersion = getVersionString( strAppVersion, 'NintendoBrowser/' );52 // https://blog.gutyan.jp/entry/2015/01/31/NintendoBrowser53 // Uãã©ã¦ã¶ã«ã¯New3DS以ä¸ã®UAåæ¿æ©è½ãããã54 // platformå§ãUA以å¤ã®navigatorã®ããããã£ã¯ãããã®å ´åãå¤æ´ãããªãã55 engine = WHAT_BROWSER_AM_I__ENGINE_WebKit; // UA å½è£
㧠Chromium ã«ãªãã±ã¼ã¹ãããã®ã§ããã§è¨å®56 engineVersion = getVersionString( strAppVersion, 'AppleWebKit/' ) ||57 ( webkitCancelAnimationFrame ? 536 : 534 ); // 534:2.1.0J - 3.1.0J, 536:4.0.0J - 58 deviceTypeIsGame = true;59 if( !platformVersion ){60 platformVersion = webkitCancelAnimationFrame ? 4 : 2;61 isPcSiteRequested = findString( strAppVersion, 'Macintosh;' ) || ( findString( strAppVersion, 'Windows NT' ) && !findString( strAppVersion, 'Touch' ) );62 };63} else64/*----------------------------------------------------------------------------//65 * Wii66 */67if( isPresto && isPresto.wiiremote /* strPlatform === 'Nintendo Wii' */ ){68 // https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB69 // 2007å¹´ 4æ12æ¥çï¼Opera/9.10ï¼Nintendo Wii; U; ; 1621; jaï¼70 // 2007å¹´10æ10æ¥çï¼Opera/9.30ï¼Nintendo Wii; U; ; 2047-7; jaï¼71 // 2009å¹´ 9æ 1æ¥çï¼Opera/9.30 (Nintendo Wii; U; ; 3642; ja)72 platform = WHAT_BROWSER_AM_I__PLATFORM_Wii;73 platformVersion = getVersionString( strUserAgent, 'Wii; U; ; ' );74 brand = platform;75 brandVersion = platformVersion;76 deviceTypeIsGame = true;77} else78/*----------------------------------------------------------------------------//79 * PlayStation Vita80 */81if( strVersion = getVersionString( strUserAgent, 'PlayStation Vita ' ) ){82 // http://d.hatena.ne.jp/nakamura001/20111221/132448644583 // Mozilla/5.0 (PlayStation Vita 1.50) AppleWebKit/531.22.8 (KHTML, like Gecko) Silk/3.284 platform = WHAT_BROWSER_AM_I__PLATFORM_PSVita;85 platformVersion = strVersion;86 // versionWebKit = // 531, 536, 53787 brand = platform;88 brandVersion = strVersion;89 deviceTypeIsGame = true;90} else91/*----------------------------------------------------------------------------//92 * PSP93 */94if( strVersion = getVersionString( strUserAgent, '(PlayStation Portable); ' ) ){95 // https://github.com/chitoku-k/SystemInfo/blob/master/systeminfo.js96 // http://www.jp.playstation.com/psp/dl/pdf/InternetBrowser_ContentGuideline-J_500.pdf97 // User-Agent: Mozilla/4.0 (PSP (PlayStation Portable); 2.00)98 platform = WHAT_BROWSER_AM_I__PLATFORM_PSP;99 platformVersion = strVersion;100 versionNetFront = 3.3; // å¤å101 brand = platform;102 brandVersion = strVersion;103 deviceTypeIsGame = true;104} else105/*----------------------------------------------------------------------------//106 * PLAYSTATION 3107 */108if( strVersion = getVersionString( strUserAgent, 'PLAYSTATION 3; ' ) || getVersionString( strUserAgent, 'PLAYSTATION 3 ' ) ){109 platform = WHAT_BROWSER_AM_I__PLATFORM_PS3;110 platformVersion = strVersion;111 brand = platform;112 brandVersion = strVersion;113 if( conpareVersionString( '4.10', strVersion ) < 0 ){114 engine = WHAT_BROWSER_AM_I__ENGINE_Sony;115 engineVersion = strVersion;116 };117 deviceTypeIsGame = true;118} else119/*----------------------------------------------------------------------------//120 * XBox One121 */122if( findString( strUserAgent, 'Xbox One' ) ){123 platform = WHAT_BROWSER_AM_I__PLATFORM_XboxOne;124 platformVersion = 1;125 deviceTypeIsGame = true;126} else127/*----------------------------------------------------------------------------//128 * XBox 360129 */130if( findString( strUserAgent, 'Xbox' ) ){131 platform = WHAT_BROWSER_AM_I__PLATFORM_Xbox360;132 platformVersion = 1;133 deviceTypeIsGame = true;134} else135/*----------------------------------------------------------------------------//136 * Mylo2137 */138if( appVersion === 2 && findString( strUserAgent, 'Sony/COM2/' ) ){139 platform = WHAT_BROWSER_AM_I__PLATFORM_Mylo;140 platformVersion = 2;141 versionNetFront = 3.4;142 brand = platform;143 brandVersion = 2;144 deviceTypeIsPDA = true;145} else146/*----------------------------------------------------------------------------//147 * iOS148 */149if( fromString( strPlatform, 'iP' ) || versioniOSWithUC || versioniOSWithPuffin || is_iPadOsPcSiteRequested ){150 if( versioniOSWithPuffin ){151 platformVersion = versioniOSWithPuffin;152 switch( puffinDeviceModel.substr( 0, 4 ) ){153 case 'iPho' :154 device = WHAT_BROWSER_AM_I__DEVICE_iPhone;155 deviceVersion = getVersionString( puffinDeviceModel, device );156 deviceTypeIsPhone = true;157 break;158 case 'iPad' :159 device = WHAT_BROWSER_AM_I__DEVICE_iPad;160 deviceVersion = getVersionString( puffinDeviceModel, device );161 deviceTypeIsTablet = true;162 break;163 case 'iPod' :164 device = WHAT_BROWSER_AM_I__DEVICE_iPod;165 deviceVersion = getVersionString( puffinDeviceModel, device );166 deviceTypeIsMediaPlayer = true;167 break;168 };169 } else {170 if( versioniOSWithUC ){171 platformVersion = versioniOSWithUC;172 } else {173 platformVersion = getVersionString( strAppVersion.split( '_' ).join( '.' ), 'OS ' );174 is_iOSOperaTurbo = !inObject( 'isSecureContext', window ); // createImageBitmap175 is_iOSDolphin = inObject( 'enableWebGL', window );176 is_iOSBrave = inObject( 'sameOrigin', window );177 };178 if( !platformVersion ) isPcSiteRequested = true;179 if( !platformVersion || isSleipnir_iOS ){ // Sleipnir ã¯åã®ãã¼ã¸ã§ã³ãUAæååã«è¨å®ããã¦ãã180 platformVersion =181 // navigator[ 'mediaDevices' ] ? 11.2 : // WebView ã§ã¯ç¡å¹182 // https://github.com/BasqueVoIPMafia/cordova-plugin-iosrtc/issues/250#issuecomment-336240953183 window.PointerEvent ? 13 :184 window.HTMLDataListElement ? 12.2 :185 Array.prototype.flat ? 12 :186 navigator.sendBeacon ? 11.3 :187 window.WebAssembly ? 11.2 :188 window.HTMLMeterElement ? 10.3 :189 window.Proxy ? 10.2 :190 window.HTMLPictureElement ? 9.3 :191 Number.isNaN ? 9.2 :192 // http://uupaa.hatenablog.com/entry/2015/03/03/223344193 window.SharedWorker ?194 ( performance && performance.now ? 8.0 : 8.4 ) :195 docExecCmd ? 7.1 :196 window.webkitURL ? 6.1 :197 window.Worker ? 5.1 :198 int8Array ? 4.3 :199 AudioElement ? 4.1 : 3.2;200 };201 dpRatio = window.devicePixelRatio === 1;202 // 4:3 model203 v = screenW === screenH * 1.5 || screenW * 1.5 === screenH;204 if( fromString( strPlatform, 'iPhone' ) ){ // iPhone or iPhone Simulator205 device = WHAT_BROWSER_AM_I__DEVICE_iPhone;206 deviceVersion = v ? ( dpRatio ? { max : 3 } : { min : 4, max : 5 } ) : { max : 6 };207 deviceTypeIsPhone = true;208 } else if( fromString( strPlatform, 'iPad' ) || is_iPadOsPcSiteRequested ){ // iPad or iPad Simulator209 device = WHAT_BROWSER_AM_I__DEVICE_iPad;210 deviceVersion = dpRatio ? { max : 2 } : { min : 3 }; 211 deviceTypeIsTablet = true;212 } else if( fromString( strPlatform, 'iPod' ) ){213 device = WHAT_BROWSER_AM_I__DEVICE_iPod;214 deviceVersion = v ? ( dpRatio ? { max : 3 } : 4 ) : { min : 5 };215 deviceTypeIsMediaPlayer = true;216 };217 };218 if( !versioniOSWithPuffin && // iPad iOS12.2 Puffin5.2.2 㧠fullscreenEnabled ãåå¨ã®æ¨¡æ§219 // ãã¼ã ç»é¢ããèµ·åããWebãã¼ã¸ã¯ navigator.standalone === true ã«ãªã£ã¦ãããfullscreen API ã¯ç¡ãã220 ( navigator.standalone ||221 // https://github.com/uupaa/WebApp2/blob/master/app/assets/modules/UserAgent.js222 // _isWebView_iOS(options)223 // iPhone 13 㧠fullscreenEnabled ã®å¤å®ãåºæ¥ãªã.224 // https://caniuse.com/#feat=fullscreen ã«ããã¨ãiOS ã¯12ãããªã®ã§ãfullscreenEnabled ã«ãã Safari/WebView ã®å¤å®ã¯ 11 è¿ã¯åããã¨ä»®å®ãã225 ( ( deviceTypeIsTablet || platformVersion < 12 ) && inObject( 'webkitFullscreenEnabled', document ) ) ||226 ( 11 <= platformVersion && platformVersion < 13 && navigator.mediaDevices ) // 12è¿ã¯ mediaDevices 㯠Safari ã ãã ã£ãã227 )228 ){229 engine = WHAT_BROWSER_AM_I__ENGINE_SafariMobile;230 brand = WHAT_BROWSER_AM_I__BRAND_Safari;231 brandVersion = platformVersion;232 } else {233 maybe_iOSWebView = true;234 engine = WHAT_BROWSER_AM_I__ENGINE_iOSWebView;235 };236 platform = WHAT_BROWSER_AM_I__PLATFORM_iOS;237 engineVersion = platformVersion;238} else239/*----------------------------------------------------------------------------//240 * Kobo241 */242if( findString( strUserAgent, 'Kobo' ) ){243// Mozilla/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit/533.1 (KHTML, like Gecko) Verson/4.0 Mobile Safari/533.1 (Kobo Touch)244 platform = WHAT_BROWSER_AM_I__PLATFORM_Kobo;245 engine = WHAT_BROWSER_AM_I__ENGINE_AOSP;246 engineVersion = 2.2; 247 brand = engine;248 brandVersion = engineVersion;249 deviceTypeIsEBookReader = true;250 isAndroid = true;251} else252/*----------------------------------------------------------------------------//253 * Sony Reader254 */255if( findString( strUserAgent, 'EBRD' ) ){256// Mozilla/5.0 (Linux; U; ja-jp; EBRD1101; EXT) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1257 platform = WHAT_BROWSER_AM_I__PLATFORM_SonyReader;258 //platformVersion = 1;259 engine = WHAT_BROWSER_AM_I__ENGINE_AOSP;260 engineVersion = 2.2; 261 brand = engine;262 brandVersion = engineVersion;263 deviceTypeIsEBookReader = true;264} else265/*----------------------------------------------------------------------------//266 * ChromeOS267 */268if( strVersion =269 getVersionString( strUserAgent, 'CrOS x86_64 ' ) ||270 getVersionString( strUserAgent, 'CrOS aarch64 ' ) ||271 getVersionString( strUserAgent, 'CrOS i686 ' ) ||272 getVersionString( strUserAgent, 'CrOS armv7l ' ) ){273 platform = WHAT_BROWSER_AM_I__PLATFORM_ChromeOS;274 platformVersion = strVersion;275 deviceTypeIsPC = true;276} else277/*----------------------------------------------------------------------------//278 * FirefoxOS279 */280if( window.onmoztimechange !== undefined ){281 // https://developer.mozilla.org/en-US/docs/Archive/B2G_OS/API/Window/onmoztimechange282 // This API is available on Firefox OS for internal applications only.283 platform = WHAT_BROWSER_AM_I__PLATFORM_FirefoxOS;284 platformVersion = versionGecko < 18.1 ? '1.0.1' :285 versionGecko < 19 ? 1.1 :286 versionGecko < 27 ? 1.2 :287 versionGecko < 29 ? 1.3 :288 versionGecko < 31 ? 1.4 :289 versionGecko < 33 ? 2.0 :290 versionGecko < 35 ? 2.1 :291 versionGecko < 38 ? 2.2 :292 versionGecko < 45 ? 2.5 :293 2.6; // Gecko 45294 // https://developer.mozilla.org/ja/docs/Web/HTTP/Gecko_user_agent_string_reference#Firefox_OS295 if( findString( strUserAgent, 'Mobile' ) ){296 deviceTypeIsPhone = true;297 } else if( findString( strUserAgent, 'Tablet' ) ){298 deviceTypeIsTablet = true;299 } else if( findString( strUserAgent, 'TV' ) ){300 deviceTypeIsTV = true;301 };302 // isFirefoxOS = window.pkcs11 /* 1.1 */ || window.SpecialPowers /* 1.4, 2.0, 2.1, 2.2 */ || window.home /* 1.4 */ || window.getInterface /* 1.4 */303} else304/*----------------------------------------------------------------------------//305 * WebOS306 */307if( window.palmGetResource ){308 // https://developers.whatismybrowser.com/useragents/explore/operating_system_name/hp-webos/309 platform = WHAT_BROWSER_AM_I__PLATFORM_WebOS;310 platformVersion = getVersionString( strUserAgent, 'webOS/' ) || getVersionString( strUserAgent, 'WEBOS' ) || getVersionString( strUserAgent, 'hpwOS/' );311 if( findString( strUserAgent, 'webOS.TV' ) || findString( strUserAgent, '/SmartTV' ) ){312 deviceTypeIsTV = true;313 } else {314 deviceTypeIsPhone = true;315 };316} else317/*----------------------------------------------------------------------------//318 * Tizen319 */320if( strVersion = getVersionString( strUserAgent, 'Tizen ' ) ){321 platform = WHAT_BROWSER_AM_I__PLATFORM_Tizen;322 platformVersion = strVersion;323 brand = WHAT_BROWSER_AM_I__ENGINE_Samsung;324 brandVersion = verSamsung;325 engine = brand;326 engineVersion = brandVersion;327 deviceTypeIsPhone = true; // TODO deviceTypeIsTV = true;328} else329/*----------------------------------------------------------------------------//330 * WindowsPhone331 */332if( strVersion = getVersionString( strUserAgent, 'Windows Phone ' ) || getVersionString( strAppVersion, 'Windows Phone OS ' ) || versionWPWithUC ){333 platform = WHAT_BROWSER_AM_I__PLATFORM_WindowsPhone;334 platformVersion = strVersion;335 deviceTypeIsPhone = true;336} else if( isEdgeHTML && strPlatform === 'ARM' ){337 platform = WHAT_BROWSER_AM_I__PLATFORM_WindowsPhone;338 platformVersion = 10;339 deviceTypeIsPhone = true;340 isPcSiteRequested = true;341} else if( isTrident && findString( strAppVersion, 'ZuneWP' ) ){ // ZuneWP ã¯ãã¹ã¯ãããã¢ã¼ãã§ç»å ´ãã342 platform = WHAT_BROWSER_AM_I__PLATFORM_WindowsPhone;343 platformVersion = versionTrident === 11 ? 8.1 :344 versionTrident === 10 ? 8 :345 versionTrident === 9 ? 7.5 :346 versionTrident === 7 ? 7 : '?';347 deviceTypeIsPhone = true;348 isPcSiteRequested = true;349} else350/*----------------------------------------------------------------------------//351 * Feature Phone352 */353// https://qiita.com/nao_tuboyaki/items/342bffd963f166393045354// ã¬ã©ã±ã¼ã®ãã«ãã©ã¦ã¶å¤å®355if( findString( strUserAgent, 'FOMA;' ) ){356 platform = WHAT_BROWSER_AM_I__PLATFORM_FeaturePhone;357 deviceTypeIsPhone = true;358} else if( findString( strUserAgent, 'SoftBank;' ) ){359 platform = WHAT_BROWSER_AM_I__PLATFORM_FeaturePhone;360 deviceTypeIsPhone = true;361} else362/*----------------------------------------------------------------------------//363 * Fire OS364 */365if( findString( strUserAgent, 'KFMUWI' ) ){366// https://developer.amazon.com/ja/docs/fire-tablets/ft-device-and-feature-specifications.html367/**368 * (2019, 9th Gen) Fire OS 6.3.0, Android 7.1.25369 * "KFMUWI" Fire 7 370 */371 isFireOS = true;372 platformVersion = 6.3;373 deviceTypeIsTablet = true;374 isAndroidBased = true;375} else if( findString( strUserAgent, 'KFKAWI' ) ){376/**377 * (2018, 8th Gen) Fire OS 6.0 => 6.3.0, Android 7.1.25378 * "KFKAWI" Fire HD 8 379 */380 isFireOS = true;381 platformVersion = 6;382 deviceTypeIsTablet = true;383 isAndroidBased = true;384} else if( findString( strUserAgent, 'KFSUWI' ) || findString( strUserAgent, 'KFAUWI' ) || findString( strUserAgent, 'KFDOWI' ) ){385/**386 * (2017, 7th Gen) Fire OS 5.3.3 => 5.3.6, Android 5.1.22387 * "KFSUWI" Fire HD 10388 * "KFAUWI" Fire 7389 * "KFDOWI" Fire HD 8390 */ 391 isFireOS = true;392 platformVersion = 5;393 deviceTypeIsTablet = true;394 isAndroidBased = true;395} else if( findString( strUserAgent, 'KFGIWI' ) ){396/**397 * (2016, 6th Gen) Fire OS 5 => 5.3.6, Android 5.1.22398 * "KFGIWI" Fire HD 8 (2016)399 */400 isFireOS = true;401 platformVersion = 5;402 deviceTypeIsTablet = true;403 isAndroidBased = true;404} else if( findString( strUserAgent, 'KFARWI' ) || findString( strUserAgent, 'KFSAWA' ) || findString( strUserAgent, 'KFSAWI' ) ){405/**406 * (4th Gen) Fire OS 5, Android 5.1 , API level 22 (system update, available 2015)407 * Fire OS 4, Android 4.4.2, API level 19408 * "KFARWI" Fire HD 6409 * "KFSAWA" Fire HDX 8.9 (WAN)410 * "KFSAWI" Fire HDX 8.9 (Wi-Fi)411 */412 isFireOS = true;413 platformVersion = 5 <= parseFloat( versionAndroid ) ? 5 : 4;414 deviceTypeIsTablet = true;415 isAndroidBased = true;416} else if( findString( strUserAgent, 'KFSOWI' ) || findString( strUserAgent, 'KFTHWA' ) || findString( strUserAgent, 'KFTHWI' ) || findString( strUserAgent, 'KFAPWA' ) || findString( strUserAgent, 'KFAPWI' ) ){417// https://dennou-note.blogspot.com/2014/02/kindle.html418/**419 * ï¼ç¬¬ä¸ä¸ä»£ï¼Fire OS 3.0ãAndroid4.2.2ï¼JellyBean / API level17ï¼420 * "KFSOWI" Kindle Fire HD421 * "KFTHWA" Kindle Fire HDX (wan)422 * "KFTHWI" Kindle Fire HDX (wi-fi)423 * "KFAPWA" Kindle Fire HDX 8.9 (wan)424 * "KFAPWI" Kindle Fire HDX 8.9 (wifi)425 */426 isFireOS = true;427 platformVersion = 3;428 deviceTypeIsTablet = true;429 isAndroidBased = true;430} else if( findString( strUserAgent, 'KFOT' ) || findString( strUserAgent, 'KFTT' ) || findString( strUserAgent, 'KFJWA' ) || findString( strUserAgent, 'KFJWI' ) ){ 431/**432 * ï¼ç¬¬äºä¸ä»£ï¼Android4.0.3ï¼ Ice Cream Sandwich / API level15)433 * "KFOT" Kindle Fire434 * "KFTT" Kindle Fire HD435 * "KFJWA" Kindle Fire HD8.9 (wan)436 * "KFJWI" Kindle Fire HD8.9 (wi-fi)437 */438 isFireOS = true;439 platformVersion = 2;440 deviceTypeIsTablet = true;441 isAndroidBased = true;442} else if( findString( strUserAgent, 'Kindle Fire' ) ){443// ï¼ç¬¬ä¸ä¸ä»£ï¼Android 2.3.3ï¼Gingerbread / API level10ï¼444// "kindle Fire" Kindle Fire445 isFireOS = true;446 platformVersion = 1;447 deviceTypeIsTablet = true;448 isAndroidBased = true;449} else450/*----------------------------------------------------------------------------//451 * Kindle paperwhite452 */453if( strVersion = getVersionString( strUserAgent, 'Kindle/' ) ){454// Mozilla/5.0 (X11; U; Linux armv7l like Android; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/533.2+ Kindle/3.0+455 platform = WHAT_BROWSER_AM_I__PLATFORM_Kindle;456 platformVersion = strVersion;457 engine = WHAT_BROWSER_AM_I__ENGINE_AOSP;458 engineVersion = 2.2; 459 brand = engine;460 brandVersion = engineVersion;461 deviceTypeIsEBookReader = true;462} else463/*----------------------------------------------------------------------------//464 * FireTV465 */466if( isFirefoxForFireTV ){467 isFireOS = true;468 platformVersion = versionAndroid || versionFireOSThatFirefoxRequestingPcSite;469 deviceTypeIsTV = true;470 isAndroidBased = true;471 isPcSiteRequested = versionFireOSThatFirefoxRequestingPcSite;472// https://developer.amazon.com/ja/docs/fire-tv/user-agent-strings.html473} else if( findString( strUserAgent, 'AmazonWebAppPlatform' ) || findString( strUserAgent, '; AFT' ) ){474 isFireOS = true;475 platformVersion = versionAndroid;476 deviceTypeIsTV = true;477 isAndroidBased = true;478} else479/*----------------------------------------------------------------------------//480 * MeeGo481 */482if( findString( strUserAgent, 'MeeGo' ) ){483 platform = WHAT_BROWSER_AM_I__PLATFORM_MeeGo;484} else485/*----------------------------------------------------------------------------//486 * Maemo487 */488// https://developer.mozilla.org/ja/docs/Web/HTTP/Gecko_user_agent_string_reference489// Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0) Gecko/20100101 Firefox/10.0 Fennec/10.0490if( findString( strUserAgent, 'Maemo' ) ){491 platform = WHAT_BROWSER_AM_I__PLATFORM_Maemo;492} else493/*----------------------------------------------------------------------------//494 * WindowsMobile495 */496if( fromString( strUserAgent, 'Windows Mobile;' ) || versionIris ){497 platform = WHAT_BROWSER_AM_I__PLATFORM_WindowsMobile;498 deviceTypeIsPDA = true;499} else500/*----------------------------------------------------------------------------//501 * WinCE502 */503if( strPlatform === 'WinCE' ){504 platform = WHAT_BROWSER_AM_I__PLATFORM_WinCE;505 deviceTypeIsPDA = true;506} else507/*----------------------------------------------------------------------------//508 * Win16 Win32 Win64509 */510if( fromString( strPlatform, 'Win' ) ){511 platform = strPlatform === 'Win16' ? WHAT_BROWSER_AM_I__PLATFORM_Win16 :512 strPlatform === 'Win32' ? WHAT_BROWSER_AM_I__PLATFORM_Win32 :513 strPlatform === 'Win64' ? WHAT_BROWSER_AM_I__PLATFORM_Win64 :514 WHAT_BROWSER_AM_I__PLATFORM_unknown;515 platformVersion = getVersionString( strUserAgent, 'Windows NT ' ) || getVersionString( strUserAgent, 'Windows ' );516 deviceTypeIsPC = true;517} else518/*----------------------------------------------------------------------------//519 * Mac520 */521if( fromString( strPlatform, 'Mac' ) ){522 platform = strPlatform === 'Mac68K' ? WHAT_BROWSER_AM_I__PLATFORM_Mac68K :523 strPlatform === 'MacPowerPC' ||524 strPlatform === 'MacPPC' ? WHAT_BROWSER_AM_I__PLATFORM_MacPPC :525 strPlatform === 'MacIntel' ? WHAT_BROWSER_AM_I__PLATFORM_MacIntel :526 WHAT_BROWSER_AM_I__PLATFORM_unknown;527 if( strVersion = getVersionString( strUserAgent.split( '_' ).join( '.' ), 'Mac OS X ' ) ){528 platformVersion = strVersion;529 };530 deviceTypeIsPC = true;531 isMac = true;532} else533/*----------------------------------------------------------------------------//534 * BlackBerry535 */536if( findString( strUserAgent, 'BlackBerry' ) || findString( strUserAgent, 'BB10' ) ){537 platform = WHAT_BROWSER_AM_I__PLATFORM_BlackBerry;538 platformVersion = verVersion;539 deviceTypeIsPhone = true;540} else541/*----------------------------------------------------------------------------//542 * SunOS543 */544if( findString( strUserAgent, 'SunOS' ) || findString( strUserAgent, 'Sun Solaris' ) ){545 platform = WHAT_BROWSER_AM_I__PLATFORM_SunOS;546 deviceTypeIsPC = true;547} else548/*----------------------------------------------------------------------------//549 * BSD550 */551if( findString( strUserAgent, 'FreeBSD' ) ){552 platform = WHAT_BROWSER_AM_I__PLATFORM_FreeBSD;553} else if( findString( strUserAgent, 'OpenBSD' ) ){554 platform = WHAT_BROWSER_AM_I__PLATFORM_OpenBSD;555} else if( findString( strUserAgent, 'NetBSD' ) ){556 platform = WHAT_BROWSER_AM_I__PLATFORM_NetBSD;557} else 558/*----------------------------------------------------------------------------//559 * Android Fennec560 */561if( isAndroid && isGecko ){562 // PCã¢ã¼ãã® Android Firefox ã§ã¯ platform ã« Android 0.0.0 ãåå¨563 // Fennec41- ç¨564 // https://developer.mozilla.org/ja/docs/Gecko_user_agent_string_reference565 // ãã¼ã¸ã§ã³ 41 以éã® Android ç Firefox ã§ã¯ platform ãã¼ã¯ã³ã« Android ãã¼ã¸ã§ã³ãå«ã¾ãã¾ãã566 // ç¸äºéç¨æ§åä¸ã®ãããAndroid 4 以åã®ãã¼ã¸ã§ã³ã§ãã©ã¦ã¶ãåä½ãã¦ããå ´å㯠4.4 ã¨åºåãã¾ãã567 // Android ãã¼ã¸ã§ã³ 4 以éã§ã¯å®éã®ãã¼ã¸ã§ã³çªå·ãåºåããã¾ãã568 // ãªããGecko ã¨ã³ã¸ã³ã¯ãã¹ã¦ã® Android ãã¼ã¸ã§ã³ã«å¯¾ãã¦åãæ©è½ãæä¾ãã¦ãã¾ãã 569 if( findString( strUserAgent, 'Android 4.4;' ) ){570 v = { min : 2.3 };571 } else if( 4 <= parseFloat( versionAndroid ) ){572 v = versionAndroid;573 } else {574 v = { min : 2.2 };575 };576 platformVersion = v;577 if( maybePCMode ) isPcSiteRequested = true;578} else579/*----------------------------------------------------------------------------//580 * Android Presto581 */582if( isAndroid && isPresto ){583 if( versionAndroid ){584 v = versionAndroid;585 } else {586 v = { min : 1.6 };587 isPcSiteRequested = true;588 };589 platformVersion = v;590 if( findString( strUserAgent, 'Tablet' ) ){591 deviceTypeIsTablet = true;592 } else {593 deviceTypeIsPhone = true;594 };595} else596/*----------------------------------------------------------------------------//597 * Android598 */599if( versionAndroid ){600 platformVersion = versionAndroid;601 isAndroid = true;602} else603/*----------------------------------------------------------------------------//604 * Android PCSITE_REQUESTED605 */606if( maybeLinux && maybePCMode || maybeLunascapeAndroid || isSleipnirAndroid ){607 // https://ja.wikipedia.org/wiki/WebKit608 // http://www.au.kddi.com/developer/android/kishu/ua/609 // webkit version to Android version...610 surelyPcSiteRequested = true;611 // AOSP ã®å¤å®ã¯ Version/ ã®æç¡. ä½ãããã¹ã¯ãããçã§è¦ããå ´åãVersion/ ãå±
ãªããªã...612 // PCçã§è¦ããã«ãã§ãã¯ãä»ãã¦ããå ´åãã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãæååã«ã platform ã«ã Android ã®æååãåå¨ããªã(æ¨æºãã©ã¦ã¶&Chrome)613 // Audio ã§ã¿ãããå¿
è¦ãï¼ã®å¤å®ã«ã¨ã¦ãå°ã...614 // ua ã«ã¯ Linux x86_64 ã«ãªã£ã¦ãã strPlatform ã¨çç¾ãã. ATOM CPU ã®å ´åã¯ï¼615 if( verSamsung ){ // SamsungBrowser/2.0+ ã Android4.4.4 ããç»å ´ãã616 v = { min : 4.4 };617 } else618 if( ( hasChromeObject && !maybeAOSP ) || hasOPRObject || versionOPR ){619 v = { min : 4 };620 } else {621 // https://developer.chrome.com/multidevice/webview/overview622 // The WebView shipped with Android 4.4 (KitKat) is based on the same code as Chrome for Android version 30.623 // This WebView does not have full feature parity with Chrome for Android and is given the version number 30.0.0.0.624 // The updated WebView shipped with Android 4.4.3 has the version number 33.0.0.0.625 // A developer preview WebView is shipping with the Android L Developer Preview. The developer preview version number is 36.0.0.0.626 // https://caniuse.com/#compare=chrome+30,chrome+31,chrome+32,chrome+33,chrome+34,chrome+35,chrome+36,chrome+37,android+4.4.3-4.4.4627 // chrome30 㨠Android4.4.3 ã§æªå®è£
㧠Chrome36 ã§è¿½å ããã "CSS touch-action property" ã Android5+ ã®å¤å®ã«ä½¿ç¨ã628 // https://qiita.com/DriftwoodJP/items/1916d5519857295622b2629 // Android OS 5.0ï¼Lollipopï¼ãããChromium WebView ã OS ããåãé¢ãããGoogle Play ãã ãAndroidã·ã¹ãã ã®WebViewãã¨ãã¦æ´æ°ã§ããããã«ãªã£ãã630 // ãã®çµæã端æ«ãã³ãã¼æä¾ã®ãããé©ç¨ã«å½±é¿ãããã«æ´æ°ããããã¨ã«ãªã£ããããã®ããã©ã¦ã¶ã㨠Chrome for Android ã¨ã¯å¥ç©ã§ãããã¨ã«ã¯æ³¨æãå¿
è¦ã§ããã 631 v = versionAndroid =632 htmlStyle.touchAction !== undefined ? { min : 5 } : 633 docRegElm ? 4.4 :634 // ï¼¾______Chromium_____635 int8Array ? (636 !navigator.connection ? 4.4 : // AOSP637 ( !window.searchBoxJavaBridge_ && !hasChromeObject ) ? 4.2 : /* 4.1- ã«ã¯ searchBoxJavaBridge_ 㨠chrome ãåå¨ */638 Number.isNaN ? 4.1 : 4 ) :639 534 <= versionWebKit ? 3 :640 533 <= versionWebKit ? ( AudioElement ? 2.3 : 2.2 ) :641 530 <= versionWebKit ? 2.0 : 1.5;642 643 if( maybeSamsung ){644 engine = WHAT_BROWSER_AM_I__ENGINE_Samsung;645 engineVersion = maybeSamsung;646 };647 };648 platformVersion = v;649 isAndroid = true;650} else651/*----------------------------------------------------------------------------//652 * Android 5 ChromeWebView PCSITE_REQUESTED653 */654if( maybeChromeWebView ){655 platformVersion = { min : 5 };656 isAndroid = true;657 surelyPcSiteRequested = true;658} else659/*----------------------------------------------------------------------------//660 * Linux661 */662if( maybeLinux ){663 if( findString( strUserAgent, 'Ubuntu' ) ){664 platform = WHAT_BROWSER_AM_I__PLATFORM_Ubuntu;665 } else if( strVersion = getVersionString( strUserAgent, 'Mint/' ) ){666 platform = WHAT_BROWSER_AM_I__PLATFORM_Mint;667 platformVersion = strVersion;668 } else if( strVersion = getVersionString( strUserAgent, 'Fedora/' ) ){669 platform = WHAT_BROWSER_AM_I__PLATFORM_Fedora;670 platformVersion = strVersion;671 } else if( findString( strUserAgent, 'Gentoo' ) ){672 platform = WHAT_BROWSER_AM_I__PLATFORM_Gentoo;673 } else {674 platform = WHAT_BROWSER_AM_I__PLATFORM_Linux;675 };676};677if( isFireOS || ( isAndroid && surelyPcSiteRequested && versionSilk ) ){ // Silk & android & pcmode ã®å ´åãFireOS678 platform = WHAT_BROWSER_AM_I__PLATFORM_FireOS;679} else if( isAndroid ){680 platform = platform || WHAT_BROWSER_AM_I__PLATFORM_Android;...
1_packageGlobal.js
Source:1_packageGlobal.js
...23 for( var k in obj ){24 if( k === name ) return true;25 };26};27function getVersionString( strTarget, strStart ){28 var ret = '', i = -1, charCode;29 if( strTarget = strTarget.split( strStart )[ 1 ] ){30 while( charCode = strTarget.charCodeAt( ++i ) ){31 if( ( 48 <= charCode && charCode <= 57 ) || charCode === 46 ){32 ret += strTarget.charAt( i );33 } else {34 break;35 };36 };37 i = ret.length;38 while( i ){39 if( ret.charCodeAt( --i ) === 46 ){40 ret = ret.substr( 0, i );41 } else {42 break;43 };44 };45 };46 return ret;47};48/**49 * @param {...(string|number)} _args50 * @return {string|number}51 */52function max( _args ){53 var args = arguments, i = 1, max = args[ 0 ], v;54 55 for( ; i < args.length; ++i ){56 if( conpareVersionString( max, v = args[ i ] ) < 0 ) max = v;57 };58 return max;59};60var engine, engineVersion, platform, platformVersion, brand, brandVersion, device, deviceVersion,61 62 conpareVersionString = ua.conpare,63 strUserAgent = navigator.userAgent,64 strAppVersion = navigator.appVersion,65 appVersion = parseFloat( strAppVersion ) || 0,66 strPlatform = navigator.platform,67 html = document.documentElement,68 htmlStyle = html && html.style,69 docMode = document.documentMode,70 screenW = screen.width,71 screenH = screen.height,72 AudioElement = window.HTMLAudioElement,73 performance = window.performance,74 int8Array = window.Int8Array,75 isTouch = window.ontouchstart !== undefined,76 verVersion = getVersionString( strAppVersion, 'Version/' ) || getVersionString( strUserAgent, 'Version/' ),77 /*78 * http://qiita.com/takanamito/items/8c2b6bc24ea01381f1b5#_reference-8eedaa6525b73cd272b779 * ã¤ã³ããã·ã¢ã®ç¹æ®ãªãã©ã¦ã¶äºæ
(Opera Mini,UC Browser Mini)80 */81 hasOperaMiniObject = window.operamini, // iOS Opera Mini ã«ã¯ .operamini ãç¡ã. iOS 12.2 Opera Mini 16.0.1482 /*83 * http://help.dottoro.com/ljifbjwf.php84 * version method (opera)85 * window.opera.buildNumber();86 * window.opera.version();87 * 88 * kQuery.js89 * opera.versionã¯8ããå®è£
90 */91 isPresto = !hasOperaMiniObject && window.opera,92 versionPresto = isPresto && (93 ( isPresto.version && typeof isPresto.version === 'function' ) ? isPresto.version() : max( getVersionString( strUserAgent, 'Opera ' ), verVersion, appVersion )94 ),95 hasOPRObject = window.opr, // å
¨ã¦ã® Blink Opera ã«åå¨ããããã§ã¯ãªãï¼96 isTrident = !isPresto && ( document.all || docMode ), // IE11 ã«ã¯ .all ãå±
ãªã .docMode == 1197 versionTrident = isTrident && (98 docMode ? docMode :99 window.XMLHttpRequest ? ( document.getElementsByTagName ? 7 : 4 ) :100 document.compatMode ? 6 :101 (0).toFixed ? 5.5 :102 window.attachEvent ? 5 : 4 ),103 104 isEdgeHTML = !isTrident && html.msContentZoomFactor,105 hasChromeObject = !isEdgeHTML && ( window.chrome || // AOSP 4.1 ã«ãããã®ã§æ³¨æï¼106 window.chromium ), // Iron 3 㯠.chrome ãå±
ãªã .chromium ãå±
ã, 5 ã§ã¯ä¸¡æ¹åå¨.107 // https://www.fxsitecompat.com/ja/docs/2017/moz-appearance-property-has-been-removed/108 // -moz-appearance ããããã£ãå»æ¢ããã¾ãã -> æ´æ°: ãã®å¤æ´ã¯ Firefox 54 ã§äºå®ããã¦ãã¾ãããã延æããã¾ããã109 isGecko = !isTrident && // ie4 ã§ã¨ã©ã¼ã«ãªãçº110 (function(){111 for( var k in htmlStyle ){112 if( fromString( k, 'Moz' ) ) return true;113 };114 })(),115 // htmlStyle.MozAppearance !== undefined, // window.Components116 isUCWEB = findString( strUserAgent, 'UCWEB' ),117 versionUCWEB = isUCWEB && getVersionString( strUserAgent, ' U2/' ),118 // https://developers.whatismybrowser.com/useragents/parse/244780-uc-browser-windows119 // UCWEB/2.0 (Windows; U; wds 8.10; en-US; NOKIA; RM-976_1115) U2/1.0.0 UCBrowser/4.2.1.541 U2/1.0.0 Mobile120 versionWPWithUC = isUCWEB && getVersionString( strUserAgent, '; wds ' ),// UC Browser121 // http://thadafinser.github.io/UserAgentParserComparison/v4/user-agent-detail/d4/26/d4262844-7040-4f5b-8f26-bf0477b215c3.html122 // UCWEB/2.0 (iOS; U; iPh OS 6_1_3; xx; iPh3,1) U2/1.0.0 UCBrowser/9.0.1.284 U2/1.0.0 Mobile123 versioniOSWithUC = getVersionString( strUserAgent.split( '_' ).join( '.' ), '; iPh OS ' ),124 versionAndroidWithUCWEB = getVersionString( strUserAgent, '; Adr ' ), // Android for UC Browser Speed mode125 isYahooForAandroid = findString( strAppVersion, 'YJApp-ANDROID' ), // Android 7, Y!browser 2.5.56126 127 isAndroid = findString( strPlatform, 'Android' ) ||128 ( isGecko && findString( strAppVersion, 'Android' ) ) || /* Android2.3.5 Firefox3.1 */129 isYahooForAandroid,130 versionAndroid = getVersionString( strPlatform , 'Android ' ) || getVersionString( strAppVersion, 'Android ' ) ||131 getVersionString( strUserAgent, 'Android ' ) || versionAndroidWithUCWEB,132 maybeLinux = findString( strPlatform, 'Linux' ), // Linux or Android133 // https://www.bit-hive.com/articles/20190820134 is_iPadOsPcSiteRequested = strPlatform === 'MacIntel' && navigator.standalone !== undefined,135// https://developers.whatismybrowser.com/useragents/parse/987005-pale-moon-windows-goanna136// TODO Goanna/20161201 ã«ãªã£ã¦ããæãããâ¦137 versionGoanna = isGecko && getVersionString( strUserAgent, 'Goanna/' ),138 versionGecko = !versionGoanna && isGecko && (139 getVersionString( strUserAgent, 'rv:' ) ||140 getVersionString( strUserAgent.substr( strUserAgent.indexOf( ') Gecko/' ) - 11 ), '; ' ) // for Gecko ~0.8.1141 ),142 versionFirefox = getVersionString( strUserAgent, 'Firefox/' ), // Android9 + Firefox67.0 + PC_MOEDE 㧠rv: ãåå¨ããªãï¼143 versionOpera = getVersionString( strUserAgent, 'Opera/' ),144 isSleipnir_iOS = window.FNRBrowser,145 versionWebKit = getNumber( strUserAgent, 'AppleWebKit/' ),146 versionChrome = getVersionString( strUserAgent, 'Chrome/' ),147 versionIron = getVersionString( strAppVersion, 'Iron/' ), // Iron 3 ã«ã¯ Chrome/ ãå±
ãªã, Iron 5 㯠Iron/ Chrome/ ã®ä½µè¨.148 versionOPR = getVersionString( strUserAgent, 'OPR/' ),149 versionKHTML = getVersionString( strAppVersion, 'KHTML/' ),150 versionIris = getVersionString( strUserAgent.toLowerCase(), 'iris' ),151 versionFxiOS = getVersionString( strUserAgent, 'FxiOS/' ),152 versionCriOS = getVersionString( strUserAgent, 'CriOS/' ),153 versionEdgiOS = getVersionString( strUserAgent, 'EdgiOS/' ),154 versionSilk = getVersionString( strUserAgent, 'Silk/' ),155 // https://issuetracker.google.com/issues/36957795156 // Canvas clearRect failing to clear157 // https://stackoverflow.com/questions/14948720/is-it-possible-to-detect-samsung-stock-browser158 // Is it possible to detect samsung stock browser159 // https://gist.github.com/poshaughnessy/5718717a04db20a02e9fdb3fc16e2258160 // https://gist.github.com/NielsLeenheer/4daa6a9ce7f4a0f4733d161 // https://developers.whatismybrowser.com/useragents/explore/software_name/samsung-browser/162 // ã¹ããã«ç»å ´ããã®ã¯ 4.4.4 以é㧠SamsungBrowser/2.0 ããã163 // SMART-TV ã«ã¯ /1.0 ãããTizen 2.3164 verSamsung = getNumber( strUserAgent, 'SamsungBrowser/' ),165 // https://gist.github.com/uupaa/b25c9cf47bbeedea5a7f166 // Android 4.4 ãã Android Browser 㯠Chrome WebView ããã¼ã¹ã«ãã¦ããã¨ã®ãã¨ãªã®ã§ãã¡ãã£ã¨å¤ãã® Chrome ã¨ããæ±ãã§è¯ãããã§ãã167 maybeSamsung = !verSamsung && (function(){168 var unversionedDevices = (...
4_brand.js
Source:4_brand.js
1if( !DEFINE_WHAT_BROWSER_AM_I__BRAND_ENABLED ){2 if( getVersionString( strAppVersion, 'OPT/' ) ){3 isPcSiteRequested = isPcSiteRequested || !findString( strAppVersion, 'Mobile/' );4 };5} else {6 if( !brand ){7 // https://qiita.com/Ungaahhhh/items/980316d11c55acecbfa58 // Edge ã®ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ããããããã¨ã²ã©ã9 if( strVersion =10 ( isEdgeHTML && getVersionString( strUserAgent, 'Edge/' ) ) || // Win Edge11 getVersionString( strUserAgent, 'EdgA/' ) || // Android12 versionEdgiOS || // iOS13 getVersionString( strUserAgent, 'Edg/' ) // Chromium based Microsoft Edge(MSEdge)14 ){15 brand = WHAT_BROWSER_AM_I__BRAND_Edge;16 brandVersion = strVersion;17 } else if( strVersion = getVersionString( strAppVersion, 'Coast/' ) ){18 brand = WHAT_BROWSER_AM_I__BRAND_Coast;19 brandVersion = strVersion;20 } else if( is_iOSOperaTurbo ){21 brand = WHAT_BROWSER_AM_I__BRAND_OperaTurbo;22 } else if( strVersion = getVersionString( strAppVersion, 'OPT/' ) ){23 brand = WHAT_BROWSER_AM_I__BRAND_OperaTouch;24 brandVersion = strVersion;25 isPcSiteRequested = isPcSiteRequested || !findString( strAppVersion, 'Mobile/' );26 } else 27 // https://himenaotaro.hatenablog.com/entry/20151011/144456426528 // YJApp-IOS ã¦ã¼ã¶ã¨ã¼ã¸ã§ã³ã(User Agent)29 if( strVersion = getVersionString( strUserAgent.toLowerCase(), 'ybrowser/' ) ){30 brand = WHAT_BROWSER_AM_I__BRAND_Yahoo;31 brandVersion = strVersion;32 } else33 if( !isUCWEB && ( strVersion = getVersionString( strUserAgent, 'UCBrowser/' ) ) ){34 brand = WHAT_BROWSER_AM_I__BRAND_UC;35 brandVersion = strVersion;36 } else37 if( versionSilk ){38 brand = WHAT_BROWSER_AM_I__BRAND_Silk;39 brandVersion = versionSilk;40 } else41 if( strVersion = getVersionString( strUserAgent, 'Vivaldi/' ) ){42 brand = WHAT_BROWSER_AM_I__BRAND_Vivaldi;43 brandVersion = strVersion;44 } else45 if( strVersion = getVersionString( strUserAgent, 'QQBrowser/' ) ){46 brand = WHAT_BROWSER_AM_I__BRAND_QQ;47 brandVersion = strVersion;48 } else49 if( strVersion = getVersionString( strUserAgent, 'YaBrowser/' ) ){50 brand = WHAT_BROWSER_AM_I__BRAND_Yandex;51 brandVersion = strVersion;52 } else53 if( strVersion = getVersionString( strUserAgent, 'coc_coc_browser/' ) ){54 brand = WHAT_BROWSER_AM_I__BRAND_coccoc;55 brandVersion = strVersion;56 } else57 if( strVersion = getVersionString( strUserAgent, 'Camino/' ) ){58 brand = WHAT_BROWSER_AM_I__BRAND_Camino;59 brandVersion = strVersion;60 } else61 if( findString( strUserAgent, 'SE 2.X MetaSr 1.0' ) ){62 brand = WHAT_BROWSER_AM_I__BRAND_Sogou;63 } else64 // https://developer.mozilla.org/ja/docs/Web/HTTP/Gecko_user_agent_string_reference65 // ãã¼ã¸ã§ã³ 6 ããåã§ã¯ã Focus for Android 㯠Android WebView ã«ãã£ã¦å®ç¾ããã¦ããããã以ä¸ã® UA æååå½¢å¼ã使ç¨ãã¦ãã¾ããã66 // Mozilla/5.0 (Linux; <Android Version> <Build Tag etc.>) AppleWebKit/<WebKit Rev> (KHTML, like Gecko) Version/4.0 Focus/<focusversion> Chrome/<Chrome Rev> Mobile Safari/<WebKit Rev>67 68 if( strVersion =69 getVersionString( strUserAgent, 'Focus/' ) || getVersionString( strUserAgent, 'Klar/' ) ||70 // https://apps.apple.com/jp/app/firefox-focus-e3-83-97-e3-83-a9-e3-82-a4-e3-83-90-e3/id105567733771 // iOS 12.2, Focus 8.1.2, (iOS 11.0以é)72 // https://en.wikipedia.org/wiki/Firefox_for_iOS#cite_note-1073 // Focus : FxiOS ã 8.x ã«ãæããããiOS ã®ãã¼ã¸ã§ã³ã 11 以ä¸ãã使ã£ã¦å¤å®74 // Firefox : FxiOS ã 9.x 以éããiSO 11+ 対å¿ãæã£ã¦å¤å®75 ( parseFloat( versionFxiOS ) < 9 && maybe_iOSWebView && 11 <= parseFloat( platformVersion ) && versionFxiOS )76 ){77 brand = WHAT_BROWSER_AM_I__BRAND_Focus;78 brandVersion = strVersion;79 } else80 if( strVersion = getVersionString( strUserAgent, 'AOLBUILD/' ) || getVersionString( strUserAgent, 'AOL/' ) || getVersionString( strUserAgent, 'AOL ' ) ){81 brand = WHAT_BROWSER_AM_I__BRAND_AOL;82 brandVersion = strVersion;83 } else84 if( strVersion = getVersionString( strUserAgent, 'IceDragon/' ) ){85 brand = WHAT_BROWSER_AM_I__BRAND_IceDragon;86 brandVersion = strVersion;87 } else88 if( strVersion = getVersionString( strUserAgent, 'Iceweasel/' ) ){89 brand = WHAT_BROWSER_AM_I__BRAND_Iceweasel;90 brandVersion = strVersion;91 } else92 if( strVersion = getVersionString( strUserAgent, 'TenFourFox/' ) ){93 brand = WHAT_BROWSER_AM_I__BRAND_ITenFourFox;94 brandVersion = strVersion;95 } else96 if( strVersion = getVersionString( strUserAgent, 'Waterfox/' ) ){97 brand = WHAT_BROWSER_AM_I__BRAND_Waterfox;98 brandVersion = strVersion;99 } else100 if( strVersion = getVersionString( strUserAgent, 'GNUzilla/' ) ){101 brand = WHAT_BROWSER_AM_I__BRAND_GNUzilla;102 brandVersion = strVersion;103 } else104 if( strVersion = getVersionString( strUserAgent, 'SeaMonkey/' ) ){105 brand = WHAT_BROWSER_AM_I__BRAND_SeaMonkey;106 brandVersion = strVersion;107 } else108 if( strVersion = getVersionString( strUserAgent, 'PaleMoon/' ) ){109 brand = WHAT_BROWSER_AM_I__BRAND_PaleMoon;110 brandVersion = strVersion;111 } else112 if( strVersion = getVersionString( strUserAgent, 'Basilisk/' ) ){113 brand = WHAT_BROWSER_AM_I__BRAND_Basilisk;114 brandVersion = strVersion;115 } else116 if( ( strVersion = getVersionString( strUserAgent, 'Maxthon/' ) ||117 getVersionString( strUserAgent, 'Maxthon ' ) ||118 getVersionString( strUserAgent, 'MXiOS/' )119 ) || findString( strUserAgent, 'Maxthon' ) ){120 brand = WHAT_BROWSER_AM_I__BRAND_Maxthon;121 brandVersion = strVersion || 1;122 } else123 if( findString( strUserAgent, 'Avant Browser;' ) ){124 brand = WHAT_BROWSER_AM_I__BRAND_Avant;125 } else126 if( strVersion = getVersionString( strUserAgent, 'Konqueror/' ) ){127 brand = WHAT_BROWSER_AM_I__BRAND_Konqueror;128 brandVersion = strVersion;129 } else130 if( strVersion = getVersionString( strUserAgent, 'Midori/' ) ){131 brand = WHAT_BROWSER_AM_I__BRAND_Midori;132 brandVersion = strVersion;133 } else134 if( strVersion = getVersionString( strUserAgent, 'OmniWeb/' ) ){135 brand = WHAT_BROWSER_AM_I__BRAND_OmniWeb;136 brandVersion = strVersion;137 } else138 if( strVersion = getVersionString( strUserAgent, 'Roccat/' ) ){139 brand = WHAT_BROWSER_AM_I__BRAND_Roccat;140 brandVersion = strVersion;141 } else142 if( strVersion = getVersionString( strUserAgent, 'Epiphany/' ) ){143 brand = WHAT_BROWSER_AM_I__BRAND_Epiphany;144 brandVersion = strVersion;145 } else146 if( strVersion = getVersionString( strUserAgent, 'WebPositive/' ) ){147 brand = WHAT_BROWSER_AM_I__BRAND_WebPositive;148 brandVersion = strVersion;149 } else150 if( ( strVersion = getVersionString( strUserAgent, 'Iron/' ) ) || findString( strUserAgent, ' Iron ' ) ){151 brand = WHAT_BROWSER_AM_I__BRAND_Iron;152 brandVersion = strVersion || ( hasChromeObject && versionChrome );153 } else154 if( strVersion = getVersionString( strUserAgent, 'Comodo Dragon/' ) ){155 brand = WHAT_BROWSER_AM_I__BRAND_ComodoDragon;156 brandVersion = strVersion;157 } else158 if( ( strVersion = getVersionString( strUserAgent, 'Brave/' ) ) || findString( strUserAgent, ' Brave ' ) || is_iOSBrave ){159 brand = WHAT_BROWSER_AM_I__BRAND_Brave;160 brandVersion = strVersion || ( hasChromeObject && versionChrome );161 } else162 if( strVersion = getVersionString( strUserAgent, 'Rockmelt/' ) ){163 brand = WHAT_BROWSER_AM_I__BRAND_Rockmelt;164 brandVersion = strVersion;165 } else166 if( ( strVersion = getVersionString( strUserAgent, 'Sleipnir/' ) ) || isSleipnir_iOS || isSleipnirAndroid ){167 brand = WHAT_BROWSER_AM_I__BRAND_Sleipnir;168 if( strVersion ){169 brandVersion = strVersion;170 };171 } else172 if( is_iOSDolphin ){173 brand = WHAT_BROWSER_AM_I__BRAND_Dolphin;174 } else175 if( strVersion = getVersionString( strUserAgent, 'Puffin/' ) ){176 brand = WHAT_BROWSER_AM_I__BRAND_Puffin;177 brandVersion = strVersion;178 } else179 if( strVersion = getVersionString( strUserAgent, 'Dooble/' ) ){180 brand = WHAT_BROWSER_AM_I__BRAND_Dooble;181 brandVersion = strVersion;182 } else183 if( strVersion = getVersionString( strUserAgent, 'Flock/' ) ){184 brand = WHAT_BROWSER_AM_I__BRAND_Flock;185 brandVersion = strVersion;186 } else187 if( strVersion = getVersionString( strUserAgent, 'Galeon/' ) ){188 brand = WHAT_BROWSER_AM_I__BRAND_Galeon;189 brandVersion = strVersion;190 } else191 if( strVersion = getVersionString( strUserAgent, 'Falkon/' ) ){192 brand = WHAT_BROWSER_AM_I__BRAND_Falkon;193 brandVersion = strVersion;194 } else195 if( strVersion = getVersionString( strUserAgent, 'Iceape/' ) ){196 brand = WHAT_BROWSER_AM_I__BRAND_Iceape;197 brandVersion = strVersion;198 } else199 if( strVersion = getVersionString( strUserAgent, 'K-Meleon/' ) ){200 brand = WHAT_BROWSER_AM_I__BRAND_KMeleon;201 brandVersion = strVersion;202 } else203 if( strVersion = versionNX || getVersionString( strAppVersion, 'NX/' ) ){204 brand = WHAT_BROWSER_AM_I__BRAND_NetFrontNX;205 brandVersion = strVersion;206 } else207 if( platform === WHAT_BROWSER_AM_I__PLATFORM_WiiU ){208 brand = WHAT_BROWSER_AM_I__BRAND_NetFrontNX;209 brandVersion = 3;210 } else211 // Netscape Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3212 // Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)213 // Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20070321 Netscape/8.1.3214 // Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6215 if( strVersion =216 getVersionString( strUserAgent, 'Netscape6/' ) || // NN6217 getVersionString( strUserAgent, 'Netscape/' ) || // NN7-8218 getVersionString( strUserAgent, 'Navigator/' ) // NN9219 ){220 brand = WHAT_BROWSER_AM_I__BRAND_NetscapeNavigator;221 brandVersion = strVersion;222 } else if( versionIris ){223 // http://archive.is/0trve224 // Mozilla/5.0 (Windows NT; U; en) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Iris/1.1.7 Safari/525.20225 brand = WHAT_BROWSER_AM_I__BRAND_Iris;226 brandVersion = strVersion;227 // https://twitter.com/itozyun/status/1293709088501555200228 } else if( strVersion = getVersionString( strUserAgent, 'FBAV/' ) || findString( strAppVersion, 'FBAN/' ) ){229 brand = WHAT_BROWSER_AM_I__BRAND_Facebook;230 brandVersion = strVersion;231 } else if( strVersion = getVersionString( strAppVersion, 'Line/' ) ){232 brand = WHAT_BROWSER_AM_I__BRAND_LINE;233 brandVersion = strVersion;234 } else if( strVersion = getVersionString( strUserAgent, 'QtWebEngine/' ) ){235 brand = WHAT_BROWSER_AM_I__BRAND_QtWebEngine;236 brandVersion = strVersion;237 } else if( strVersion = getVersionString( strUserAgent, 'QtWebKit/' ) ){238 brand = WHAT_BROWSER_AM_I__BRAND_QtWebKit;239 brandVersion = strVersion;240 } else if( strVersion = getVersionString( strUserAgent, 'DuckDuckGo/' ) ){241 brand = WHAT_BROWSER_AM_I__BRAND_DuckDuckGo;242 brandVersion = strVersion;243 } else if( strVersion = getVersionString( strUserAgent, 'Lunascape/' ) || maybeLunascapeAndroid ){244 brand = WHAT_BROWSER_AM_I__BRAND_Lunascape;245 brandVersion = strVersion;246 } else if( strVersion = versionFxiOS || ( isGecko && ( versionFirefox || engineVersion ) ) ){247 brand = WHAT_BROWSER_AM_I__BRAND_Firefox;248 brandVersion = strVersion;249 } else if( isOperaGX ){250 brand = WHAT_BROWSER_AM_I__BRAND_OperaGX;251 brandVersion = versionOPR;252 } else if( strVersion = versionPresto || versionOPR || versionOpera ){253 brand = WHAT_BROWSER_AM_I__BRAND_Opera;254 brandVersion = strVersion;255 } else if( isTrident ){256 brand = WHAT_BROWSER_AM_I__BRAND_IE;257 brandVersion = engineVersion;...
main.js
Source:main.js
...29 }30 return getVersionString.cache.get(versionPath);31};32const generateInvalidPointTrace = async (execPath, match, filePath, textEditor, point) => {33 const flake8Version = await getVersionString(execPath);34 const issueURL = 'https://github.com/AtomLinter/linter-flake8/issues/new';35 const title = encodeURIComponent(`Flake8 rule '${match[3]}' reported an invalid point`);36 const body = encodeURIComponent([37 `Flake8 reported an invalid point for the rule \`${match[3]}\`, ` +38 `with the messge \`${match[5]}\`.`,39 '', '',40 '<!-- If at all possible, please include code that shows this issue! -->',41 '', '',42 'Debug information:',43 `Atom version: ${atom.getVersion()}`,44 `Flake8 version: \`${flake8Version}\``,45 ].join('\n'));46 const newIssueURL = `${issueURL}?title=${title}&body=${body}`;47 return {...
pne_utils.js
Source:pne_utils.js
...22function isPNE() {23 if (appjet.cache.fakePNE || appjet.config['etherpad.fakePNE']) {24 return true;25 }26 if (getVersionString()) {27 return true;28 }29 return false;30}31/**32 * Versioning scheme: we basically just use the apache scheme of MAJOR.MINOR.PATCH:33 *34 * Versions are denoted using a standard triplet of integers: MAJOR.MINOR.PATCH. The35 * basic intent is that MAJOR versions are incompatible, large-scale upgrades of the API.36 * MINOR versions retain source and binary compatibility with older minor versions, and37 * changes in the PATCH level are perfectly compatible, forwards and backwards.38 */39function getVersionString() {40 return appjet.config['etherpad.pneVersion'];41}42function parseVersionString(x) {43 var parts = x.split('.');44 return {45 major: Number(parts[0] || 0),46 minor: Number(parts[1] || 0),47 patch: Number(parts[2] || 0)48 };49}50/* returns {major: int, minor: int, patch: int} */51function getVersionNumbers() {52 return parseVersionString(getVersionString());53}54function checkDbVersionUpgrade() {55 var dbVersionString = persistent_vars.get("db_pne_version");56 var runningVersionString = getVersionString();57 if (!dbVersionString) {58 println("Upgrading to Private Network Edition, version: "+runningVersionString);59 return;60 }61 var dbVersion = parseVersionString(dbVersionString);62 var runningVersion = getVersionNumbers();63 var trueRegex = /\s*true\s*/i;64 var force = trueRegex.test(appjet.config['etherpad.forceDbUpgrade']);65 if (!force && (runningVersion.major != dbVersion.major)) {66 println("Error: you are attempting to update an EtherPad["+dbVersionString+67 "] database to version ["+runningVersionString+"]. This is not possible.");68 println("Exiting...");69 System.exit(1);70 }71 if (!force && (runningVersion.minor < dbVersion.minor)) {72 println("Error: your etherpad database is at a newer version ["+dbVersionString+"] than"+73 " the current running etherpad ["+runningVersionString+"]. Please upgrade to the "+74 " latest version.");75 println("Exiting...");76 System.exit(1);77 }78 if (!force && (runningVersion.minor > (dbVersion.minor + 1))) {79 println("\n\nWARNING: you are attempting to upgrade from version "+dbVersionString+" to version "+80 runningVersionString+". It is recommended that you upgrade one minor version at a time."+81 " (The \"minor\" version number is the second number separated by dots. For example,"+82 " if you are running version 1.2, it is recommended that you upgrade to 1.3 and then 1.4 "+83 " instead of going directly from 1.2 to 1.4.");84 println("\n\nIf you really want to do this, you can force us to attempt the upgrade with "+85 " the --etherpad.forceDbUpgrade=true flag.");86 println("\n\nExiting...");87 System.exit(1);88 }89 if (runningVersion.minor > dbVersion.minor) {90 println("Upgrading database to version "+runningVersionString);91 }92}93function saveDbVersion() {94 var dbVersionString = persistent_vars.get("db_pne_version");95 if (getVersionString() != dbVersionString) {96 persistent_vars.put('db_pne_version', getVersionString());97 println("Upgraded Private Network Edition version to ["+getVersionString()+"]");98 }99}100// These are a list of some of the config vars documented in the PNE manual. They are here101// temporarily, until we move them to the PNE config UI.102var _eepneAllowedConfigVars = [103 'configFile',104 'etherpad.soffice',105 'etherpad.useMySQL',106 'etherpad.SQL_JDBC_DRIVER',107 'etherpad.SQL_JDBC_URL',108 'etherpad.SQL_PASSWORD',109 'etherpad.SQL_USERNAME',110 'etherpad.adminPass',111 'etherpad.licenseKey',...
build.js
Source:build.js
...60 patch: currentVersion.patch + 161 } 62 }63}64function getVersionString(version) {65 return Object.values(version).map(v => v.toString()).join('.')66}67function writeUpdatedVersion(updatedVersion) {68 const updatedPackage = Object.assign({}, package)69 updatedPackage.version = getVersionString(updatedVersion)70 const packageJsonString = JSON.stringify(updatedPackage, (_, v) => v, 2)71 fs.writeFileSync('package.json', packageJsonString)72}73function update(currentVersion) {74 console.log('================= VERSIONING =================')75 console.info('Starting versioning process')76 const option = getOption(argv)77 console.info(`Current Version: ${getVersionString(currentVersion)}`)78 const updatedVersion = getUpdatedVersion(currentVersion, option)79 console.info(`${option.toUpperCase()} update -> ${getVersionString(updatedVersion)}`)80 writeUpdatedVersion(updatedVersion)81 console.info('The new version was written to package.json')82 console.info('Finished versioning process')83 if (option === 'dry') {84 console.info('Skipped publication process because of dry-run mode')85 process.exit(0)86 }87}88function rollback(currentVersion) {89 console.log('================= ROLLBACK =================')90 console.info('Starting versioning rollback')91 console.info(`Rollback to: ${getVersionString(currentVersion)}`)92 writeUpdatedVersion(currentVersion)93 console.info('The rollbacked version was written to package.json')94 console.info('Finished versioning rollback')95}96function publish() {97 console.log('================= PUBLISH =================')98 console.info('Starting publication process')99 console.info('Writing temporary directory for publication')100 fs.copySync('dist', 'tmp')101 fs.copyFileSync('package.json', 'tmp/package.json')102 console.info('Start publishing')103 console.time('Finished publising in')104 try {105 childProcess.execSync('cd tmp && yarn publish')...
index.js
Source:index.js
...36 // @see https://github.com/cypress-io/cypress/issues/702037 foundBrowser.profilePath = path_1.default.join(os_1.default.homedir(), 'snap', 'chromium', 'current');38 }39 };40 return getVersionString(binary)41 .tap(maybeSetSnapProfilePath)42 .then(getVersion)43 .then((version) => {44 foundBrowser.version = version;45 return foundBrowser;46 })47 .catch(logAndThrowError);48}49function getVersionString(path) {50 (0, log_1.log)('finding version string using command "%s --version"', path);51 return bluebird_1.default.resolve(utils_1.utils.getOutput(path, ['--version']))52 .timeout(30000, `Timed out after 30 seconds getting browser version for ${path}`)53 .then((val) => val.stdout)54 .then((val) => val.trim())55 .then((val) => {56 (0, log_1.log)('stdout: %s', val);57 return val;58 });59}60exports.getVersionString = getVersionString;61function getVersionNumber(version, browser) {62 const regexExec = browser.versionRegex.exec(version);63 return regexExec ? regexExec[1] : version;...
helpers.js
Source:helpers.js
...7 + ' node/' + process.version.replace('v', '');8describe('Version strings', function () {9 describe('getVersionString', function () {10 it('returns the current version, when unmodified', function () {11 var str = helpers.getVersionString();12 expect(str).to.equal(userAgent);13 });14 });15 describe('appendToVersionString', function () {16 it('appends a new value', function () {17 var str;18 helpers.appendToVersionString('foobar', '1.2');19 str = helpers.getVersionString();20 expect(str).to.equal(userAgent + ' foobar/1.2');21 });22 });23 describe('appendToVersionString', function () {24 it('should never overwrite an existing value', function () {25 var str;26 helpers.appendToVersionString('foobar', '1.3');27 str = helpers.getVersionString();28 // TODO that the order of these tests _matters_ bothers me29 expect(str).to.equal(userAgent + ' foobar/1.2 foobar/1.3');30 });31 });32 describe('appendToVersionStringWithoutVersion', function () {33 it('should never overwrite an existing value', function () {34 var str;35 helpers.appendToVersionString('foobar');36 str = helpers.getVersionString();37 // TODO that the order of these tests _matters_ bothers me38 expect(str).to.equal(userAgent + ' foobar/1.2 foobar/1.3 foobar');39 });40 });...
Using AI Code Generation
1const cypress = require('cypress')2cypress.getVersionString().then(version => {3 console.log(version)4})5{6}7{8 "scripts": {9 }10}
Using AI Code Generation
1var version = Cypress.version;2console.log('Cypress version is: ' + version);3var version = Cypress.version;4console.log('Cypress version is: ' + version);5var version = Cypress.version;6console.log('Cypress version is: ' + version);7var version = Cypress.version;8console.log('Cypress version is: ' + version);9var version = Cypress.version;10console.log('Cypress version is: ' + version);11var version = Cypress.version;12console.log('Cypress version is: ' + version);13var version = Cypress.version;14console.log('Cypress version is: ' + version);
Cypress is a renowned Javascript-based open-source, easy-to-use end-to-end testing framework primarily used for testing web applications. Cypress is a relatively new player in the automation testing space and has been gaining much traction lately, as evidenced by the number of Forks (2.7K) and Stars (42.1K) for the project. LambdaTest’s Cypress Tutorial covers step-by-step guides that will help you learn from the basics till you run automation tests on LambdaTest.
You can elevate your expertise with end-to-end testing using the Cypress automation framework and stay one step ahead in your career by earning a Cypress certification. Check out our Cypress 101 Certification.
Watch this 3 hours of complete tutorial to learn the basics of Cypress and various Cypress commands with the Cypress testing at LambdaTest.
Get 100 minutes of automation test minutes FREE!!