summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/ui/warning.js
blob: bf2b44941a750d1c4a748c275b7f93e065b18ba0 (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
/* 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';

const self = require('sdk/self');
const tabs = require('sdk/tabs');
const { Class } = require('sdk/core/heritage');
const { on, emit, once, off } = require('sdk/event/core');
const { EventTarget } = require('sdk/event/target');

const awNS = require('sdk/core/namespace').ns();

let AddonWarning = Class({
  extends: EventTarget,
  initialize: function initialize(options) {
    EventTarget.prototype.initialize.call(this, options);
    awNS(this).options = options;
  },
  open: function() {
    let self = this;
    let options = awNS(self).options;

    tabs.open({
      url: module.uri.replace(/lib\/addon-warning\.js/, 'data/warning.html'),
      onReady: function(tab) {
        let worker = tab.attach({
          contentScriptFile: module.uri.replace(/lib\/addon-warning\.js/, 'data/warning-mod.js')
        });

        worker.port.on('cancel', function(data) {
          emit(self, 'cancel');
        });
        worker.port.on('accept', function(data) {
          emit(self, 'accept');
        });

        worker.port.emit('load', options);
      }
    });
  }
});
exports.AddonWarning = AddonWarning;