// 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_;
}
}