summaryrefslogtreecommitdiffstats
path: root/devtools/client/application/panel.js
blob: 2165d69f8ed6eed747165a193f99ea4aea17901c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

"use strict";

/**
 * DevTools panel responsible for the application tool, which lists and allows to debug
 * service workers.
 */
class ApplicationPanel {
  /**
   * Constructor.
   *
   * @param {Window} panelWin
   *        The frame/window dedicated to this panel.
   * @param {Toolbox} toolbox
   *        The toolbox instance responsible for this panel.
   */
  constructor(panelWin, toolbox) {
    this.panelWin = panelWin;
    this.toolbox = toolbox;
  }

  async open() {
    await this.panelWin.Application.bootstrap({
      toolbox: this.toolbox,
      panel: this,
    });

    this.emit("ready");
    this.isReady = true;
    return this;
  }

  destroy() {
    this.panelWin.Application.destroy();
    this.panelWin = null;
    this.toolbox = null;
    this.emit("destroyed");
  }
}

exports.ApplicationPanel = ApplicationPanel;