| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Represents a thread making a debug call to |
| // the visual debugger. |
| // |
| class Thread { |
| // Keeps track of all threads that debug calls came in from |
| // while the app is running. |
| static registered_threads = {}; |
| |
| constructor(json) { |
| this.threadName_ = json.thread_name; |
| // Calls from each thread is enabled by default. |
| this.enabled_ = true; |
| // Thread color overriding filter colors is disabled by default. |
| this.overrideFilters_ = false; |
| this.drawColor_ = '#000000'; |
| this.fillAlpha_ = "10"; |
| |
| // Add new thread to a pool of thread objects. |
| Thread.registered_threads[this.threadName_] = this; |
| |
| // Create thread filter chip. |
| const threadChip = createThreadChip(this); |
| const threadFilters = document.querySelector('#threads'); |
| threadFilters.appendChild(threadChip); |
| } |
| |
| static isThreadRegistered(threadName) { |
| // If thread already registered, return true. |
| return (threadName in Thread.registered_threads); |
| } |
| |
| static getThread(threadName) { |
| return Thread.registered_threads[threadName]; |
| } |
| |
| toggleEnableThread() { |
| this.enabled_ = !this.enabled_; |
| } |
| } |