Best JavaScript code snippet using playwright-internal
app.js
Source:app.js
1window.addEventListener('DOMContentLoaded', function() {2 var actionLock = false,3 currentHardware = Wallace.getSystemProperty('ro.hardware'),4 enableNokiaActions = (Wallace.getSystemProperty('ro.product.brand') === 'Nokia'),5 enableSim2Actions = (Wallace.getSystemProperty('persist.radio.multisim.config') === 'dsds'),6 enableQualcommActions = (currentHardware === 'qcom'),7 enableMtkActions = (currentHardware === 'mt6572' || currentHardware.slice(0,5) === 'mt673'),8 currentKaiosVersion = Wallace.getSystemPreference('b2g.version'),9 enableCallRecordingActions = (parseInt(currentKaiosVersion.replace(/[^\d]/g,'')) >= 252),10 enableImeiActions = enableNokiaActions || enableMtkActions11 12 if(!enableNokiaActions)13 [].forEach.call(document.querySelectorAll('.nokiaonly'), function(el) {14 el.classList.remove('danger')15 el.classList.add('disabled')16 })17 if(!enableImeiActions)18 [].forEach.call(document.querySelectorAll('.imeionly'), function(el) {19 el.classList.remove('danger')20 el.classList.add('disabled')21 })22 if(!enableSim2Actions)23 [].forEach.call(document.querySelectorAll('.sim2only'), function(el) {24 el.classList.remove('danger')25 el.classList.add('disabled')26 })27 if(!enableQualcommActions)28 [].forEach.call(document.querySelectorAll('.qualcommonly'), function(el) {29 el.classList.remove('danger')30 el.classList.add('disabled')31 })32 if(!enableCallRecordingActions)33 document.querySelector('.callrec').classList.add('disabled')34 35 var overclockScript = [36 'echo 96 > /sys/devices/system/cpu/cpufreq/interactive/target_loads',37 'echo 1094400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq',38 'echo 24 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load',39 'echo 0 > /sys/module/msm_thermal/core_control/enabled'40 ].join(' && ')41 42 var rootingScript = [43 'mount -o remount,rw /',44 'sleep 0.5',45 'stop adbd',46 'mv /sbin/adbd /sbin/adbd.orig',47 'cp /data/local/tmp/adbd /sbin/adbd',48 'chown root:root /sbin/adbd && chmod 750 /sbin/adbd',49 'mount -o remount,ro /',50 'rm /data/local/tmp/adbd',51 'sleep 0.5',52 'start adbd'53 ].join(';')54 55 window.addEventListener('keydown', function(e) {56 if(!actionLock) {57 switch(e.key) {58 case '1': //enable ADB root access until reboot59 Wallace.extractAppAsset('wallace-toolbox.bananahackers.net', 'rsrc/adbd.bin', '/data/local/tmp/adbd', function() { 60 Wallace.runCmd(rootingScript, function() {61 window.alert('Rooted ADB access until reboot')62 }, function() {63 window.alert('Something went wrong: ' + this.error.name)64 })65 })66 break67 case '2': //call recording AUTO/ON/OFF68 if(enableCallRecordingActions) {69 Wallace.getSystemSetting('callrecording.mode', function(curMode) {70 var nextMode = 'on'71 if(curMode === 'auto') nextMode = 'off'72 else if(curMode === 'on') nextMode = 'auto'73 Wallace.enableCallRecording(nextMode, 'wav', function() {74 var msgs = {75 'on': 'set to manual',76 'auto': 'set to automatic',77 'off': 'disabled'78 }79 window.alert('Call recording ' + msgs[nextMode])80 }, function(e) {81 window.alert('Error: ' + e)82 })83 }, function(e) {84 window.alert('Error: ' + e)85 })86 } else window.alert('Sorry, call recording is implemented in KaiOS 2.5.2 and above, but you have ' + currentKaiosVersion)87 break88 case '3': //install app package89 actionLock = true90 var pickPackage = new MozActivity({name: "pick"})91 pickPackage.onsuccess = function() {92 Wallace.installPkg(this.result.blob, function() {93 window.alert('App ' + pickPackage.result.blob.name + ' successfully installed')94 actionLock = false95 }, function(e) {96 if(e.toString() === 'InvalidPrivilegeLevel')97 window.alert('Insufficient privileges. You must enable developer menu (#) before trying to install packages.')98 else99 window.alert('Error installing the package file: ' + e)100 actionLock = false101 })102 }103 pickPackage.onerror = function(e) {104 window.alert('Error picking the package file: ' + e.name)105 actionLock = false106 }107 break108 case '4': //override TTL109 if(enableQualcommActions) {110 actionLock = true111 var newTTL = parseInt(window.prompt('New TTL value', 64))112 if(newTTL && newTTL < 256) {113 Wallace.fixTTL(newTTL, function() {114 window.alert('TTL fixed at the value ' + newTTL + ' until reboot')115 actionLock = false116 }, function(e) {117 window.alert('Error: ' + e)118 actionLock = false119 }, enableMtkActions ? 'ccmni0' : 'rmnet_data0')120 }121 else {122 window.alert('Invalid TTL value')123 actionLock = false124 }125 }126 else window.alert('Error: TTL can be overridden on Qualcomm platform only')127 break128 case '5': //Edit IMEI1129 if(enableNokiaActions) {130 if(window.confirm('Are you sure you really want to change IMEI1?')) {131 var newIMEI = window.prompt('New IMEI1', Wallace.generateRandomIMEI())132 if(newIMEI) {133 actionLock = true134 Wallace.setNokiaIMEI(1, newIMEI, function() {135 if(window.confirm('IMEI1 changed to ' + newIMEI + '. Reboot to apply?'))136 Wallace.reboot()137 actionLock = false138 }, function(e) {139 window.alert('Error: invalid IMEI')140 actionLock = false141 })142 }143 }144 break145 } else if(enableMtkActions) {146 if(window.confirm('Are you sure you really want to change IMEI1?')) {147 var newIMEI = window.prompt('New IMEI1', Wallace.generateRandomIMEI())148 if(newIMEI) {149 actionLock = true150 Wallace.setMtkIMEI(1, newIMEI, function() {151 if(window.confirm('IMEI1 changed to ' + newIMEI + '. Reboot to apply?'))152 Wallace.reboot()153 actionLock = false154 }, function(e) {155 window.alert('Error: invalid IMEI')156 actionLock = false157 })158 }159 }160 break161 } else window.alert('Error: IMEI editor is implemented for Nokia and MTK handsets only')162 break163 case '6': //Edit IMEI2164 if(enableNokiaActions) {165 if(enableSim2Actions) {166 if(window.confirm('Are you sure you really want to change IMEI2?')) {167 var newIMEI = window.prompt('New IMEI2', Wallace.generateRandomIMEI())168 if(newIMEI) {169 actionLock = true170 Wallace.setNokiaIMEI(2, newIMEI, function() {171 if(window.confirm('IMEI2 changed to ' + newIMEI + '. Reboot to apply?'))172 Wallace.reboot()173 actionLock = false174 }, function(e) {175 window.alert('Error: invalid IMEI')176 actionLock = false177 })178 }179 }180 break181 } else window.alert('Error: trying to change IMEI2 on a single-SIM configuration')182 } else if(enableMtkActions) {183 if(enableSim2Actions) {184 if(window.confirm('Are you sure you really want to change IMEI2?')) {185 var newIMEI = window.prompt('New IMEI2', Wallace.generateRandomIMEI())186 if(newIMEI) {187 actionLock = true188 Wallace.setMtkIMEI(2, newIMEI, function() {189 if(window.confirm('IMEI2 changed to ' + newIMEI + '. Reboot to apply?'))190 Wallace.reboot()191 actionLock = false192 }, function(e) {193 window.alert('Error: invalid IMEI')194 actionLock = false195 })196 }197 }198 break199 } else window.alert('Error: trying to change IMEI2 on a single-SIM configuration')200 } else window.alert('Error: IMEI editor is implemented for Nokia and MTK handsets only')201 break202 case '7': //Proxy on/off203 Wallace.getSystemSetting('browser.proxy.enabled', function(res) {204 var newVal = !(res === true)205 Wallace.setSystemSetting('browser.proxy.enabled', newVal, function() {206 window.alert('Proxy ' + (newVal ? 'enabled' : 'disabled') + ' successfully')207 }, function(e) {208 window.alert('Error ' + (newVal ? 'enabling' : 'disabling') + ' proxy: ' + e)209 })210 }, function(e) {211 window.alert('Error: ' + e)212 })213 break214 case '8': //Set proxy host/port215 actionLock = true216 Wallace.getSystemSetting('browser.proxy.host', function(oldHost) {217 Wallace.getSystemSetting('browser.proxy.port', function(oldPort) {218 var newHost = window.prompt('Proxy host', oldHost || '')219 var newPort = Number(window.prompt('Proxy port', oldPort || ''))220 if(newHost && newPort) {221 Wallace.setSystemSetting('browser.proxy.host', newHost, function() {222 Wallace.setSystemSetting('browser.proxy.port', newPort, function() {223 window.alert('Proxy set successfully')224 actionLock = false225 }, function(e) {226 window.alert('Error setting proxy port: ' + e)227 actionLock = false228 })229 }, function(e) {230 window.alert('Error setting proxy host: ' + e)231 actionLock = false232 })233 }234 else {235 window.alert('Error: Cannot set empty values for host or port')236 actionLock = false237 }238 }, function(e) {239 window.alert('Error: ' + e)240 actionLock = false241 })242 }, function(e) {243 window.alert('Error: ' + e)244 actionLock = false245 })246 break247 case '9': //override the user agent248 if(window.confirm('Do you want to change the user agent? You will not be able to revert it without WebIDE or factory reset!')) {249 actionLock = true250 var newUA = window.prompt('User agent', navigator.userAgent)251 if(newUA === '') newUA = navigator.userAgent252 Wallace.setUserAgent(newUA)253 actionLock = false254 }255 break256 case '*': //run overclock script257 if(enableQualcommActions) {258 actionLock = true259 Wallace.runCmd(overclockScript, function() {260 window.alert('Overclocking until reboot')261 actionLock = false262 }, function(e) {263 window.alert('Error: ' + e)264 actionLock = false265 })266 }267 else alert('Error: Overclocking is enabled for Qualcomm devices only')268 break269 case '0': //toggle diag port270 if(enableQualcommActions) {271 Wallace.toggleDiagPort(function() {272 window.alert('Diagnostics port enabled')273 }, function() {274 window.alert('Diagnostics port disabled')275 }, function(e) {276 window.alert('Error toggling diag port: ' + e)277 })278 }279 else window.alert('Error: DIAG port can be used on Qualcomm platform only')280 break281 case '#': //developer menu282 if(window.confirm('Enable developer menu and reboot?'))283 Wallace.runCmd('echo -n root > /cache/__post_reset_cmd__;cp /cache/__post_reset_cmd__ /persist/__post_reset_cmd__', function() {284 Wallace.reboot()285 }, function(e) {286 window.alert('Error: ' + e)287 })288 break289 case 'Call': //set Wi-Fi MAC address290 if(enableNokiaActions) {291 var newMAC = window.prompt('New Wi-Fi MAC', Wallace.generateRandomMAC())292 if(newMAC) {293 actionLock = true294 Wallace.setNokiaWlanMAC(newMAC, function() {295 if(window.confirm('MAC changed to ' + newMAC + '. Reboot to apply?'))296 Wallace.reboot()297 actionLock = false298 }, function(e) {299 window.alert('Error: invalid MAC')300 actionLock = false301 })302 }303 }304 else if(enableMtkActions) {305 var newMAC = window.prompt('New Wi-Fi MAC', Wallace.generateRandomMAC())306 if(newMAC) {307 actionLock = true308 Wallace.setMtkWlanMAC(newMAC, function() {309 window.alert('MAC changed to ' + newMAC + '. Toggle Wi-Fi off and on to apply until reboot')310 actionLock = false311 }, function(e) {312 window.alert('Error: invalid MAC')313 actionLock = false314 })315 }316 }317 else window.alert('Error: Wi-Fi MAC changer is currently available on Nokia and MTK handsets only')318 break 319 case 'SoftLeft': //set Bluetooth MAC address320 if(enableNokiaActions) {321 var newMAC = window.prompt('New Bluetooth MAC', Wallace.generateRandomMAC())322 if(newMAC) {323 actionLock = true324 Wallace.setNokiaBluetoothMAC(newMAC, function() {325 if(window.confirm('MAC changed to ' + newMAC + '. Reboot to apply?'))326 Wallace.reboot()327 actionLock = false328 }, function(e) {329 window.alert('Error: invalid MAC')330 actionLock = false331 })332 }333 }334 else window.alert('Error: Bluetooth MAC changer is currently available on Nokia handsets only')335 break 336 case 'SoftRight':337 if(window.confirm('Do you really want to make all pre-installed apps removable from the menu (requires Busybox) and reboot?')) {338 Wallace.runCmd('busybox sed -i \'s#"removable": false#"removable": true#g\' /data/local/webapps/webapps.json', function() {339 Wallace.reboot()340 }, function(e) {341 window.alert('Error: ' + e)342 })343 } 344 break345 default:346 break347 }348 }349 })...
js_app.js
Source:js_app.js
1window.addEventListener('DOMContentLoaded', function() {2 var actionLock = false,3 currentHardware = Wallace.getSystemProperty('ro.hardware'),4 enableNokiaActions = (Wallace.getSystemProperty('ro.product.brand') === 'Nokia'),5 enableSim2Actions = (Wallace.getSystemProperty('persist.radio.multisim.config') === 'dsds'),6 enableQualcommActions = (currentHardware === 'qcom'),7 enableMtkActions = (currentHardware === 'mt6572' || currentHardware.slice(0,5) === 'mt673'),8 currentKaiosVersion = Wallace.getSystemPreference('b2g.version'),9 enableCallRecordingActions = (parseInt(currentKaiosVersion.replace(/[^\d]/g,'')) >= 252),10 enableImeiActions = enableNokiaActions || enableMtkActions11 12 if(!enableNokiaActions)13 [].forEach.call(document.querySelectorAll('.nokiaonly'), function(el) {14 el.classList.remove('danger')15 el.classList.add('disabled')16 })17 if(!enableImeiActions)18 [].forEach.call(document.querySelectorAll('.imeionly'), function(el) {19 el.classList.remove('danger')20 el.classList.add('disabled')21 })22 if(!enableSim2Actions)23 [].forEach.call(document.querySelectorAll('.sim2only'), function(el) {24 el.classList.remove('danger')25 el.classList.add('disabled')26 })27 if(!enableQualcommActions)28 [].forEach.call(document.querySelectorAll('.qualcommonly'), function(el) {29 el.classList.remove('danger')30 el.classList.add('disabled')31 })32 if(!enableCallRecordingActions)33 document.querySelector('.callrec').classList.add('disabled')34 35 var overclockScript = [36 'echo 96 > /sys/devices/system/cpu/cpufreq/interactive/target_loads',37 'echo 1094400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq',38 'echo 24 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load',39 'echo 0 > /sys/module/msm_thermal/core_control/enabled'40 ].join(' && ')41 42 var rootingScript = [43 'mount -o remount,rw /',44 'sleep 0.5',45 'stop adbd',46 'mv /sbin/adbd /sbin/adbd.orig',47 'cp /data/local/tmp/adbd /sbin/adbd',48 'chown root:root /sbin/adbd && chmod 750 /sbin/adbd',49 'mount -o remount,ro /',50 'rm /data/local/tmp/adbd',51 'sleep 0.5',52 'start adbd'53 ].join(';')54 55 window.addEventListener('keydown', function(e) {56 if(!actionLock) {57 switch(e.key) {58 case '1': //enable ADB root access until reboot59 Wallace.extractAppAsset('wallace-toolbox.bananahackers.net', 'rsrc/adbd.bin', '/data/local/tmp/adbd', function() { 60 Wallace.runCmd(rootingScript, function() {61 window.alert('Rooted ADB access until reboot')62 }, function() {63 window.alert('Something went wrong: ' + this.error.name)64 })65 })66 break67 case '2': //call recording AUTO/ON/OFF68 if(enableCallRecordingActions) {69 Wallace.getSystemSetting('callrecording.mode', function(curMode) {70 var nextMode = 'on'71 if(curMode === 'auto') nextMode = 'off'72 else if(curMode === 'on') nextMode = 'auto'73 Wallace.enableCallRecording(nextMode, 'wav', function() {74 var msgs = {75 'on': 'set to manual',76 'auto': 'set to automatic',77 'off': 'disabled'78 }79 window.alert('Call recording ' + msgs[nextMode])80 }, function(e) {81 window.alert('Error: ' + e)82 })83 }, function(e) {84 window.alert('Error: ' + e)85 })86 } else window.alert('Sorry, call recording is implemented in KaiOS 2.5.2 and above, but you have ' + currentKaiosVersion)87 break88 case '3': //install app package89 actionLock = true90 var pickPackage = new MozActivity({name: "pick"})91 pickPackage.onsuccess = function() {92 Wallace.installPkg(this.result.blob, function() {93 window.alert('App ' + pickPackage.result.blob.name + ' successfully installed')94 actionLock = false95 }, function(e) {96 if(e.toString() === 'InvalidPrivilegeLevel')97 window.alert('Insufficient privileges. You must enable developer menu (#) before trying to install packages.')98 else99 window.alert('Error installing the package file: ' + e)100 actionLock = false101 })102 }103 pickPackage.onerror = function(e) {104 window.alert('Error picking the package file: ' + e.name)105 actionLock = false106 }107 break108 case '4': //override TTL109 if(enableQualcommActions) {110 actionLock = true111 var newTTL = parseInt(window.prompt('New TTL value', 64))112 if(newTTL && newTTL < 256) {113 Wallace.fixTTL(newTTL, function() {114 window.alert('TTL fixed at the value ' + newTTL + ' until reboot')115 actionLock = false116 }, function(e) {117 window.alert('Error: ' + e)118 actionLock = false119 }, enableMtkActions ? 'ccmni0' : 'rmnet_data0')120 }121 else {122 window.alert('Invalid TTL value')123 actionLock = false124 }125 }126 else window.alert('Error: TTL can be overridden on Qualcomm platform only')127 break128 case '5': //Edit IMEI1129 if(enableNokiaActions) {130 if(window.confirm('Are you sure you really want to change IMEI1?')) {131 var newIMEI = window.prompt('New IMEI1', Wallace.generateRandomIMEI())132 if(newIMEI) {133 actionLock = true134 Wallace.setNokiaIMEI(1, newIMEI, function() {135 if(window.confirm('IMEI1 changed to ' + newIMEI + '. Reboot to apply?'))136 Wallace.reboot()137 actionLock = false138 }, function(e) {139 window.alert('Error: invalid IMEI')140 actionLock = false141 })142 }143 }144 break145 } else if(enableMtkActions) {146 if(window.confirm('Are you sure you really want to change IMEI1?')) {147 var newIMEI = window.prompt('New IMEI1', Wallace.generateRandomIMEI())148 if(newIMEI) {149 actionLock = true150 Wallace.setMtkIMEI(1, newIMEI, function() {151 if(window.confirm('IMEI1 changed to ' + newIMEI + '. Reboot to apply?'))152 Wallace.reboot()153 actionLock = false154 }, function(e) {155 window.alert('Error: invalid IMEI')156 actionLock = false157 })158 }159 }160 break161 } else window.alert('Error: IMEI editor is implemented for Nokia and MTK handsets only')162 break163 case '6': //Edit IMEI2164 if(enableNokiaActions) {165 if(enableSim2Actions) {166 if(window.confirm('Are you sure you really want to change IMEI2?')) {167 var newIMEI = window.prompt('New IMEI2', Wallace.generateRandomIMEI())168 if(newIMEI) {169 actionLock = true170 Wallace.setNokiaIMEI(2, newIMEI, function() {171 if(window.confirm('IMEI2 changed to ' + newIMEI + '. Reboot to apply?'))172 Wallace.reboot()173 actionLock = false174 }, function(e) {175 window.alert('Error: invalid IMEI')176 actionLock = false177 })178 }179 }180 break181 } else window.alert('Error: trying to change IMEI2 on a single-SIM configuration')182 } else if(enableMtkActions) {183 if(enableSim2Actions) {184 if(window.confirm('Are you sure you really want to change IMEI2?')) {185 var newIMEI = window.prompt('New IMEI2', Wallace.generateRandomIMEI())186 if(newIMEI) {187 actionLock = true188 Wallace.setMtkIMEI(2, newIMEI, function() {189 if(window.confirm('IMEI2 changed to ' + newIMEI + '. Reboot to apply?'))190 Wallace.reboot()191 actionLock = false192 }, function(e) {193 window.alert('Error: invalid IMEI')194 actionLock = false195 })196 }197 }198 break199 } else window.alert('Error: trying to change IMEI2 on a single-SIM configuration')200 } else window.alert('Error: IMEI editor is implemented for Nokia and MTK handsets only')201 break202 case '7': //Proxy on/off203 Wallace.getSystemSetting('browser.proxy.enabled', function(res) {204 var newVal = !(res === true)205 Wallace.setSystemSetting('browser.proxy.enabled', newVal, function() {206 window.alert('Proxy ' + (newVal ? 'enabled' : 'disabled') + ' successfully')207 }, function(e) {208 window.alert('Error ' + (newVal ? 'enabling' : 'disabling') + ' proxy: ' + e)209 })210 }, function(e) {211 window.alert('Error: ' + e)212 })213 break214 case '8': //Set proxy host/port215 actionLock = true216 Wallace.getSystemSetting('browser.proxy.host', function(oldHost) {217 Wallace.getSystemSetting('browser.proxy.port', function(oldPort) {218 var newHost = window.prompt('Proxy host', oldHost || '')219 var newPort = Number(window.prompt('Proxy port', oldPort || ''))220 if(newHost && newPort) {221 Wallace.setSystemSetting('browser.proxy.host', newHost, function() {222 Wallace.setSystemSetting('browser.proxy.port', newPort, function() {223 window.alert('Proxy set successfully')224 actionLock = false225 }, function(e) {226 window.alert('Error setting proxy port: ' + e)227 actionLock = false228 })229 }, function(e) {230 window.alert('Error setting proxy host: ' + e)231 actionLock = false232 })233 }234 else {235 window.alert('Error: Cannot set empty values for host or port')236 actionLock = false237 }238 }, function(e) {239 window.alert('Error: ' + e)240 actionLock = false241 })242 }, function(e) {243 window.alert('Error: ' + e)244 actionLock = false245 })246 break247 case '9': //override the user agent248 if(window.confirm('Do you want to change the user agent? You will not be able to revert it without WebIDE or factory reset!')) {249 actionLock = true250 var newUA = window.prompt('User agent', navigator.userAgent)251 if(newUA === '') newUA = navigator.userAgent252 Wallace.setUserAgent(newUA)253 actionLock = false254 }255 break256 case '*': //run overclock script257 if(enableQualcommActions) {258 actionLock = true259 Wallace.runCmd(overclockScript, function() {260 window.alert('Overclocking until reboot')261 actionLock = false262 }, function(e) {263 window.alert('Error: ' + e)264 actionLock = false265 })266 }267 else alert('Error: Overclocking is enabled for Qualcomm devices only')268 break269 case '0': //toggle diag port270 if(enableQualcommActions) {271 Wallace.toggleDiagPort(function() {272 window.alert('Diagnostics port enabled')273 }, function() {274 window.alert('Diagnostics port disabled')275 }, function(e) {276 window.alert('Error toggling diag port: ' + e)277 })278 }279 else window.alert('Error: DIAG port can be used on Qualcomm platform only')280 break281 case '#': //developer menu282 if(window.confirm('Enable developer menu and reboot?'))283 Wallace.runCmd('echo -n root > /cache/__post_reset_cmd__;cp /cache/__post_reset_cmd__ /persist/__post_reset_cmd__', function() {284 Wallace.reboot()285 }, function(e) {286 window.alert('Error: ' + e)287 })288 break289 case 'Call': //set Wi-Fi MAC address290 if(enableNokiaActions) {291 var newMAC = window.prompt('New Wi-Fi MAC', Wallace.generateRandomMAC())292 if(newMAC) {293 actionLock = true294 Wallace.setNokiaWlanMAC(newMAC, function() {295 if(window.confirm('MAC changed to ' + newMAC + '. Reboot to apply?'))296 Wallace.reboot()297 actionLock = false298 }, function(e) {299 window.alert('Error: invalid MAC')300 actionLock = false301 })302 }303 }304 else if(enableMtkActions) {305 var newMAC = window.prompt('New Wi-Fi MAC', Wallace.generateRandomMAC())306 if(newMAC) {307 actionLock = true308 Wallace.setMtkWlanMAC(newMAC, function() {309 window.alert('MAC changed to ' + newMAC + '. Toggle Wi-Fi off and on to apply until reboot')310 actionLock = false311 }, function(e) {312 window.alert('Error: invalid MAC')313 actionLock = false314 })315 }316 }317 else window.alert('Error: Wi-Fi MAC changer is currently available on Nokia and MTK handsets only')318 break 319 case 'SoftLeft': //set Bluetooth MAC address320 if(enableNokiaActions) {321 var newMAC = window.prompt('New Bluetooth MAC', Wallace.generateRandomMAC())322 if(newMAC) {323 actionLock = true324 Wallace.setNokiaBluetoothMAC(newMAC, function() {325 if(window.confirm('MAC changed to ' + newMAC + '. Reboot to apply?'))326 Wallace.reboot()327 actionLock = false328 }, function(e) {329 window.alert('Error: invalid MAC')330 actionLock = false331 })332 }333 }334 else window.alert('Error: Bluetooth MAC changer is currently available on Nokia handsets only')335 break 336 case 'SoftRight':337 if(window.confirm('Do you really want to make all pre-installed apps removable from the menu (requires Busybox) and reboot?')) {338 Wallace.runCmd('busybox sed -i \'s#"removable": false#"removable": true#g\' /data/local/webapps/webapps.json', function() {339 Wallace.reboot()340 }, function(e) {341 window.alert('Error: ' + e)342 })343 } 344 break345 default:346 break347 }348 }349 })...
ParcelCard.js
Source:ParcelCard.js
...78 </div>79 </div>80 ));81 }82 pickPackage(pkg) {83 let object = this;84 clearCardSwipeLogs().then(function (success) {85 object.setState({86 modal: !object.state.modal87 });88 }).catch(function (error) {89 console.error("Oops! Something went wrong: " + error.message + " (" + error.code + ")");90 });91 this.props.pickPackage(pkg);92 }93 viewParcel() {94 let pickupDate;95 return this.props.packages.map((parcel) => {96 const parcelStatus = (parcel.pickupDate)97 ? (<div><i>Picked by {parcel.pickedBy.name} <Moment fromNow>{parcel.pickupDate.iso}</Moment> </i></div>)98 : (<button className="btn btn-primary" onClick={() => this.pickPackage(parcel)}><strong>Pick </strong></button>);99 return (100 <tr key={parcel.objectId} className={(parcel.pickupDate) ? "text-muted" : ""}>101 <td className="text-center">102 <div className="avatar custom-avatar">103 <span className="icon-user"></span>104 </div>105 </td>106 <td>107 <div>{parcel.owner.name}</div>108 </td>109 <td className="text-center">110 <img src={parcel.vendor.icon} alt={parcel.vendor.name} className="vendor-icon" />111 </td>112 <td className="text-center">...
Initial.js
Source:Initial.js
1// import React, { Component,useEffect, useState } from 'react'2// import { AppLoading } from 'expo-app-loading'3// import { Asset } from 'expo-asset'4// import * as Font from 'expo-font'5// import * as Icon from '@expo/vector-icons'6// import Firebase from '../firebase/firebase'7// import { withFirebaseHOC } from '../firebase/index'8// import { ActivityIndicator } from 'react-native'9// // const Initial=({ navigation})=>{10// // const [Loading, setLoading] = useState(true)11// // useEffect(() => {12// // try {13// // loadLocalAsync()14// // Firebase.checkUserAuth(user => {15// // if (user) {16// // // if the user has previously logged in17// // navigation.navigate("MainStackScreen")18// // } else {19// // // if the user has previously signed out from the app20// // navigation.navigate('RootStackScreen')21// // }22// // })23// // } catch (error) {24// // console.log(error)25// // }26// // return () => {27// // loadLocalAsync()28// // }29// // }, [])30// // const loadLocalAsync = async () => {31// // Loading &&32// // <ActivityIndicator style={{ justifyContent: 'center', alignItems: "center", flex: 1 }} />33// // return await Promise.all([34// // Asset.loadAsync([35// // require('../Assets/res/Images/background.png'),36// // require('../Assets/res/Images/MainBackground.jpg'),37// // require('../Assets/res/Images/pickpackage.png'),38// // require('../Assets/res/Images/sendpackage.png'),39// // ]),40// // Font.loadAsync({41// // ...Icon.Ionicons.font,42// // ...Icon.AntDesign.font,43// // ...Icon.MaterialIcons.font,44// // ...Icon.FontAwesome5.font,45// // ...Icon.FontAwesome.font46// // })47// // ])48// // }49 50// // handleLoadingError = error => {51// // // In this case, you might want to report the error to your error52// // // reporting service, for example Sentry53// // console.warn(error)54// // }55// // handleFinishLoading = () => {56// // setLoading(false);57// // }58// // return (59// // <AppLoading60// // startAsync={loadLocalAsync}61// // onFinish={handleFinishLoading}62// // onError={handleLoadingError}63// // />64// // );65// // }66// // export default Initial67// export default class Initial extends Component {68// state = {69// isAssetsLoadingComplete: false70// }71// componentDidMount = async () => {72// try {73// // previously74// this.loadLocalAsync()75// await this.props.firebase.checkUserAuth(user => {76// if (user) {77// // if the user has previously logged in78// this.props.navigation.navigate('MainStackScreen')79// } else {80// // if the user has previously signed out from the app81 82// this.props.navigation.navigate('RootStackScreen')83// }84// })85// } catch (error) {86// console.log(error)87// }88// }89// loadLocalAsync = async () => {90// <ActivityIndicator />91// return await Promise.all([92// Asset.loadAsync([93// require('../Assets/res/Images/background.png'),94// require('../Assets/res/Images/MainBackground.jpg'),95// require('../Assets/res/Images/pickpackage.png'),96// require('../Assets/res/Images/sendpackage.png'),97// ]),98// Font.loadAsync({99// ...Icon.Ionicons.font,100// ...Icon.AntDesign.font,101// ...Icon.MaterialIcons.font,102// ...Icon.FontAwesome5.font,103// ...Icon.FontAwesome.font104// })105// ])106// }107// handleLoadingError = error => {108// // In this case, you might want to report the error to your error109// // reporting service, for example Sentry110// console.warn(error)111// }112// handleFinishLoading = () => {113// this.setState({ isAssetsLoadingComplete: true })114// }115// render() {116// return (117// <AppLoading118// startAsync={this.loadLocalAsync}119// onFinish={this.handleFinishLoading}120// onError={this.handleLoadingError}121// />122// )123// }...
init.mjs
Source:init.mjs
...50}51const collectPackages = async () => {52 let isDone = false;53 while (!isDone) {54 let choice = await pickPackage();55 if (!choice) {56 isDone = true;57 return;58 }59 collectPackage(choice);60 }61}62const collectPackage = (packageName) => {63 if (collectedPackages.indexOf(packageName) > -1) {64 return;65 }66 collectedPackages.push(packageName);67 const needsFirebaseCore = packageName.startsWith('firebase_');68 if (!needsFirebaseCore) return;...
pickPackage.js
Source:pickPackage.js
1const algoliasearch = require('algoliasearch');2const pickVersion = require('./pickVersion').pickVersion;3const InputFlowAction = require('../multiStepInput').InputFlowAction;4const vscode = require('vscode');5const appId = 'OFCNCOG2CU';6const apiKey = 'f54e21fa3a2a0160595bb058179bfb1e';7const indexName = 'npm-search';8async function pickPackage (input, state) {9 let client = algoliasearch(appId, apiKey);10 let index = client.initIndex(indexName);11 let response;12 try {13 response = await index.search('');14 } catch (e) {15 vscode.window.showErrorMessage('Unexpected error occurred');16 return InputFlowAction.cancel;17 }18 const pick = await input.showQuickPick({19 title: 'Pick package',20 step: 1,21 totalSteps: 4,22 placeholder: 'Pick package',23 items: response.hits.map((hit) => {24 return { label: hit.name };25 }),26 onChangeValue: async (value, input) => {27 input.items = [];28 try {29 response = await index.search(value);30 } catch (e) {31 vscode.window.showErrorMessage('Unexpected error occurred');32 return;33 }34 if (value === input.value) {35 input.items = response.hits.map((hit) => {36 return { label: hit.name };37 });38 }39 },40 });41 let findPkg = function (pkg) {42 return pkg.name === pick.label;43 };44 state.pkg = response.hits.find(findPkg);45 return input => pickVersion(input, state);46}...
extension.js
Source:extension.js
...3const pickPackage = require('./steps/pickPackage').pickPackage;4function activate (context) {5 async function collectInputs () {6 const state = {};7 await MultiStepInput.run(input => pickPackage(input, state));8 return state;9 }10 let disposable = vscode.commands.registerCommand('jsDelivr.addPkg', () => {11 if (vscode.window.activeTextEditor === undefined) {12 vscode.window.showErrorMessage('JsDelivr plugin requires a text editor to be open.');13 return;14 }15 collectInputs();16 });17 context.subscriptions.push(disposable);18}19exports.activate = activate;20function deactivate () {}21module.exports = {...
index.js
Source:index.js
1const pickPackage = require("../../_helpers/pick-package");2module.exports = {3 prompt(prompt) {4 return pickPackage(prompt);5 },...
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: `google.png` });7 await browser.close();8})();
Using AI Code Generation
1const { pickPackage } = require('playwright/lib/utils/registry');2const { downloadBrowserWithProgressBar } = require('playwright/lib/utils/browserPaths');3const { installBrowsersWithProgressBar } = require('playwright/lib/utils/installBrowsers');4const { registryURL } = require('playwright/lib/utils/registry');5const { registryFile } = require('playwright/lib/utils/registry');6const { registryDirectory } = require('playwright/lib/utils/registry');7const { registryDirectory } = require('playwright/lib/utils/registry');8const { registryDirectory } = require('playwright/lib/utils/registry');9const { registryDirectory } = require('playwright/lib/utils/registry');10const { registryDirectory } = require('playwright/lib/utils/registry');11const { registryDirectory } = require('playwright/lib/utils/registry');12const { registryDirectory } = require('playwright/lib/utils/registry');13const { registryDirectory } = require('playwright/lib/utils/registry');14const { registryDirectory } = require('playwright/lib/utils/registry');15const { registryDirectory } = require('playwright/lib/utils/registry');
Using AI Code Generation
1const { pickPackage } = require('@playwright/test');2const { chromium } = pickPackage('chromium');3const { webkit } = pickPackage('webkit');4const { firefox } = pickPackage('firefox');5(async () => {6 const browser = await chromium.launch();7 const page = await browser.newPage();8 await browser.close();9})();
Using AI Code Generation
1packageName');2const { chromium } = requie(pickPackag('chromium', 'playwriht-chromum'));3con { firefox } = requie(pickPackage('firefox', 'plawright-firefox)4const { webkit } = require(pickPackage('webkit', 'playwright-webkit'));5(async () => {6 ponst browser = await cickPack.launch();7a const context = await browser.newContext();8 const page = await context.newPage();9 await page.screenshot({ path: `example.png` g);10 await browser.close();11})();12### `pickPackage(packageName: string, browsers: string[])`13[MIT](./LICENSE)
Using AI Code Generation
1const { pickPackage } }require(' laywr=ght/lib/utils/registry');2 onst { chromium } = picrequire('@playwright/test');3const { chromium } = pickPackage('chromium');4const { webkit } = pickPackage('webkit');5const { firefox } = pickPackage('firefox');6(async () => {7 const browser = await chromium.launch();8 const page = await browser.newPage();9 await browser.close();10})();
Using AI Code Generation
1const { pickPackage } = require('playwright/lib/utils/registry');2const { chromium } = pickPackage('chromium', '1.13.0');3const { firefox } = pickPackage('firefox', '1.13.0');4const { webkit } = pickPackage('webkit', '1.13.0');5const { devices } = require('playwright/lib/server/deviceDescriptors');6const { devices: devices1 } = require('playwright/lib/server/deviceDescriptors');7const { devices: devices2 } = require('playwright/lib/server/deviceDescriptors');8const { devices: devices3 } = require('playwright/lib/server/deviceDescriptors');9const { devices: devices4 } = require('playwright/lib/server/deviceDescriptors');10const { devices: devices5 } = require('playwright/lib/server/deviceDescriptors');11const { devices: devices6 } = require('playwright/lib/server/deviceDescriptors');12const { devices: devices25 }
Using AI Code Generation
1const { pickPackage } = require('playwright/lib/utils/utils');2console.log(pickPackage([3 { name: 'chromium', revision: '1734 6' },4 { name: 'firefox', revision: '123456' },5 { name: 'webkit', revision: '123456' },6]));7#### **`getBrowserMajorVersion()`**8const { getBrowserMajorVersion } = require('playwright/lib/utils/utils');9console.log(getBrowserMajorVersion('Chromium 88.0.4324.0'));10#### **`getViewportSizeFromEnv()`**11const { getViewportSizeFromEnv } = require('playwright/lib/utils/utils');12console.log(getViewportSizeFromEnv());13#### **`getTimeoutSettings()`**14const { getTimeoutSettings } = require('playwright/lib/utils/utils');15console.log(getTimeoutSettings());16#### **`getFromENV(name)`**17const { getFromENV } = require('playwright/lib/utils/utils');18console.log(getFromENV('PLAYWRIGHT_TIMEOUT'));19#### **`isUnderTest()`**20const { isUnderTest } = require('playwright/lib/utils/utils');21console.log(isUnderTest());22#### **`isDebugMode()`**23const { isDebugMode } = require('playwright/lib/utils/utils');24console.log(isDebugMode());25#### **`isTraceEnabled()`**26const { isTraceEnabled } = require('
Using AI Code Generation
1const { pickPackage } = require('playwright/lib/utils/registry');2const { chromium } = pickPackage('chromium');3console.log(chromium.executablePath());4const { pickPackage } = require('playwright/lib/utils/registry');5const { chromium } = pickPackage('chromium');6console.log(chromium.executablePath());7const { pickPackage } = require('playwright/lib/utils/registry');8const { chromium } = pickPackage('chromium');9console.log(chromium.executablePath());10const { pickPackage } = require('playwright/lib/utils/registry');11const { chromium } = pickPackage('chromium');12console.log(chromium.executablePath());13const { pickPackage } = require('playwright/lib/utils/registry');14const { chromium } = pickPackage('chromium');15console.log(chromium.executablePath());16const { pickPackage } = require('playwright/lib/utils/registry');17const { chromium } = pickPackage('chromium');18console.log(chromium.executablePath());19const { pickPackage } = require('playwright/lib/utils/registry');20const { chromium } = pickPackage('chromium');21console.log(chromium.executablePath());22const { pickPackage } = require('playwright/lib/utils/registry');23const { chromium } = pickPackage('chromium');24console.log(chromium.executablePath());25const { devices: devices8 } = require('playwright/lib/server/deviceDescriptors');26const { devices: devices9 } = require('playwright/lib/server/deviceDescriptors');27const { devices: devices10 } = require('playwright/lib/server/deviceDescriptors');28const { devices: devices11 } = require('playwright/lib/server/deviceDescriptors');29const { devices: devices12 } = require('playwright/lib/server/deviceDescriptors');30const { devices: devices13 } = require('playwright/lib/server/deviceDescriptors');31const { devices: devices14 } = require('playwright/lib/server/deviceDescriptors');32const { devices: devices15 } = require('playwright/lib/server/deviceDescriptors');33const { devices: devices16 } = require('playwright/lib/server/deviceDescriptors');34const { devices: devices17 } = require('playwright/lib/server/deviceDescriptors');35const { devices: devices18 } = require('playwright/lib/server/deviceDescriptors');36const { devices: devices19 } = require('playwright/lib/server/deviceDescriptors');37const { devices: devices20 } = require('playwright/lib/server/deviceDescriptors');38const { devices: devices21 } = require('playwright/lib/server/deviceDescriptors');39const { devices: devices22 } = require('playwright/lib/server/deviceDescriptors');40const { devices: devices23 } = require('playwright/lib/server/deviceDescriptors');41const { devices: devices24 } = require('playwright/lib/server/deviceDescriptors');42const { devices: devices25 }
Using AI Code Generation
1const { pickPackage } = require('playwright/lib/utils/registry');2const { chromium } = pickPackage('chromium');3console.log(chromium.executablePath());4const { pickPackage } = require('playwright/lib/utils/registry');5const { chromium } = pickPackage('chromium');6console.log(chromium.executablePath());7const { pickPackage } = require('playwright/lib/utils/registry');8const { chromium } = pickPackage('chromium');9console.log(chromium.executablePath());10const { pickPackage } = require('playwright/lib/utils/registry');11const { chromium } = pickPackage('chromium');12console.log(chromium.executablePath());13const { pickPackage } = require('playwright/lib/utils/registry');14const { chromium } = pickPackage('chromium');15console.log(chromium.executablePath());16const { pickPackage } = require('playwright/lib/utils/registry');17const { chromium } = pickPackage('chromium');18console.log(chromium.executablePath());19const { pickPackage } = require('playwright/lib/utils/registry');20const { chromium } = pickPackage('chromium');21console.log(chromium.executablePath());22const { pickPackage } = require('playwright/lib/utils/registry');23const { chromium } = pickPackage('chromium');24console.log(chromium.executablePath());
Using AI Code Generation
1const { pickPackage } = require('playwright/lib/utils/registry');2const { chromium } = pickPackage('chromium', '1.13.0');3const { firefox } = pickPackage('firefox', '1.13.0');4const { webkit } = pickPackage('webkit', '1.13.0');5const { devices } = require('playwright/lib/server/deviceDescriptors');6const { devices: devices1 } = require('playwright/lib/server/deviceDescriptors');7const { devices: devices2 } = require('playwright/lib/server/deviceDescriptors');8const { devices: devices3 } = require('playwright/lib/server/deviceDescriptors');9const { devices: devices4 } = require('playwright/lib/server/deviceDescriptors');10const { devices: devices5 } = require('playwright/lib/server/deviceDescriptors');11const { devices: devices6 } = require('playwright/lib/server/deviceDescriptors');12const { devices: devices7 } = require('playwright/lib/server/deviceDescriptors');13const { devices: devices8 } = require('playwright/lib/server/deviceDescriptors');14const { devices: devices9 } = require('playwright/lib/server/deviceDescriptors');15const { devices: dev)
Using AI Code Generation
1const { pickPackage } = require('@playwright/test/lib/utils/packageName'i;2console.log('pickPackage', pickPackage);3const { pickPackage } = require('@playwright/test/lib/utils/packageName');4console.log('pickPackage', pickPackage);5```ces10 } = require('playwright/lib/server/deviceDescriptors');6const { devices: devices11 } = require('playwright/lib/server/deviceDescriptors');7const { devices: devices12 } = require('playwright/lib/server/deviceDescriptors');8const { devices: devices13 } = require('playwright/lib/server/deviceDescriptors');9const { devices: devices14 } = require('playwright/lib/server/deviceDescriptors');10const { devices: devices15 } = require('playwright/lib/server/deviceDescriptors');11const { devices: devices16 } = require('playwright/lib/server/deviceDescriptors');12const { devices: devices17 } = require('playwright/lib/server/deviceDescriptors');13const { devices: devices18 } = require('playwright/lib/server/deviceDescriptors');14const { devices: devices19 } = require('playwright/lib/server/deviceDescriptors');15const { devices: devices20 } = require('playwright/lib/server/deviceDescriptors');16const { devices: devices21 } = require('playwright/lib/server/deviceDescriptors');17const { devices: devices22 } = require('playwright/lib/server/deviceDescriptors');18const { devices: devices23 } = require('playwright/lib/server/deviceDescriptors');19const { devices: devices24 } = require('playwright/lib/server/deviceDescriptors');20const { devices: devices25 }
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!