(processes)
| 13816 | return 'text-gray-200'; |
| 13817 | } |
| 13818 | |
| 13819 | function startPwnLogStreaming(options = {}) { |
| 13820 | const viewer = document.getElementById('pwn-log-viewer'); |
| 13821 | if (!viewer) { |
| 13822 | return; |
| 13823 | } |
| 13824 | if (pwnLogStreamTimer) { |
| 13825 | return; |
| 13826 | } |
| 13827 | if (pwnLogStopTimeout) { |
| 13828 | clearTimeout(pwnLogStopTimeout); |
| 13829 | pwnLogStopTimeout = null; |
| 13830 | } |
| 13831 | pwnLogStreaming = true; |
| 13832 | setPwnLogIndicator(true); |
| 13833 | fetchPwnLogs({ initial: Boolean(options.initial) || pwnLogCursor === 0, silent: true }); |
| 13834 | pwnLogStreamTimer = setInterval(() => fetchPwnLogs({ silent: true }), PWN_LOG_POLL_INTERVAL); |
| 13835 | } |
| 13836 | |
| 13837 | function stopPwnLogStreaming() { |
| 13838 | if (pwnLogStreamTimer) { |
| 13839 | clearInterval(pwnLogStreamTimer); |
| 13840 | pwnLogStreamTimer = null; |
| 13841 | } |
| 13842 | pwnLogStreaming = false; |
| 13843 | setPwnLogIndicator(false); |
| 13844 | } |
| 13845 | |
| 13846 | function schedulePwnLogStop() { |
| 13847 | if (pwnLogStopTimeout) { |
| 13848 | return; |
| 13849 | } |
| 13850 | pwnLogStopTimeout = setTimeout(() => { |
no outgoing calls
no test coverage detected