Demo/bin/Debug/front_end/sources/ThreadsSidebarPane.js

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

/**
 * @constructor
 * @extends {WebInspector.SidebarPane}
 * @implements {WebInspector.TargetManager.Observer}
 */
WebInspector.ThreadsSidebarPane = function()
{
    WebInspector.SidebarPane.call(this, WebInspector.UIString("Threads"));
    this.setVisible(false);

    /** @type {!Map.<!WebInspector.DebuggerModel, !WebInspector.UIList.Item>} */
    this._debuggerModelToListItems = new Map();
    /** @type {!Map.<!WebInspector.UIList.Item, !WebInspector.Target>} */
    this._listItemsToTargets = new Map();
    /** @type {?WebInspector.UIList.Item} */
    this._selectedListItem = null;
    this.threadList = new WebInspector.UIList();
    this.threadList.show(this.element);
    WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.DebuggerPaused, this._onDebuggerStateChanged, this);
    WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.DebuggerResumed, this._onDebuggerStateChanged, this);
    WebInspector.context.addFlavorChangeListener(WebInspector.Target, this._targetChanged, this);
    WebInspector.targetManager.observeTargets(this);
}

WebInspector.ThreadsSidebarPane.prototype = {
    /**
     * @override
     * @param {!WebInspector.Target} target
     */
    targetAdded: function(target)
    {
        var debuggerModel = WebInspector.DebuggerModel.fromTarget(target)
        if (!debuggerModel) {
            this._updateVisibility();
            return;
        }
        var listItem = new WebInspector.UIList.Item(target.name(), "");
        listItem.element.addEventListener("click", this._onListItemClick.bind(this, listItem), false);
        var currentTarget = WebInspector.context.flavor(WebInspector.Target);
        if (currentTarget === target)
            this._selectListItem(listItem);

        this._debuggerModelToListItems.set(debuggerModel, listItem);
        this._listItemsToTargets.set(listItem, target);
        this.threadList.addItem(listItem);
        this._updateDebuggerState(debuggerModel);
        this._updateVisibility();
    },

    _updateVisibility: function()
    {
        this._wasVisibleAtLeastOnce = this._wasVisibleAtLeastOnce || this._debuggerModelToListItems.size > 1;
        this.setVisible(this._wasVisibleAtLeastOnce);
    },

    /**
后面还有 74 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。