function captureTab(tab) {
  let browser = getBrowserForTab(getTabForId(tab.id));
  try {
    PageThumbs.captureAndStore(browser);
  }
  catch(e){}
}
Example #2
0
  open(self).then(({ tabId, document }) => {
    sp.once("sayHello", _ => {
      assert.pass("The button was pressed!");
      tabs.activeTab.close(done);
    });

    let browser = getBrowserForTab(getTabForId(tabId));
    let browserMM = browser.messageManager;
    browserMM.loadFrameScript(self.data.url("test-button-frame-script.js"), false);
  });
Example #3
0
    open({ id: id }).then(({ tabId }) => {
      let tab = Tab({ tab: getTabForId(tabId) });
      assert.pass('the add-on prefs page was opened.');

      tab.attach({
        contentScriptWhen: "end",
        contentScript: 'self.postMessage({\n' +
                         'someCount: unsafeWindow.document.querySelectorAll("setting[title=\'some-title\']").length,\n' +
                         'somePreference: getAttributes(unsafeWindow.document.querySelector("setting[title=\'some-title\']")),\n' +
                         'myInteger: getAttributes(unsafeWindow.document.querySelector("setting[title=\'my-int\']")),\n' +
                         'myHiddenInt: getAttributes(unsafeWindow.document.querySelector("setting[title=\'hidden-int\']")),\n' +
                         'sayHello: getAttributes(unsafeWindow.document.querySelector("button[label=\'Click me!\']"))\n' +
                       '});\n' +
                       'function getAttributes(ele) {\n' +
                         'if (!ele) return {};\n' +
                         'return {\n' +
                           'pref: ele.getAttribute("pref"),\n' +
                           'type: ele.getAttribute("type"),\n' +
                           'title: ele.getAttribute("title"),\n' +
                           'desc: ele.getAttribute("desc"),\n' +
                           '"data-jetpack-id": ele.getAttribute(\'data-jetpack-id\')\n' +
                         '}\n' +
                       '}\n',
        onMessage: msg => {
          // test against doc caching
          assert.equal(msg.someCount, 1, 'there is exactly one <setting> node for somePreference');

          // test somePreference
          assert.equal(msg.somePreference.type, 'string', 'some pref is a string');
          assert.equal(msg.somePreference.pref, 'extensions.' + id + '.somePreference', 'somePreference path is correct');
          assert.equal(msg.somePreference.title, 'some-title', 'somePreference title is correct');
          assert.equal(msg.somePreference.desc, 'Some short description for the preference', 'somePreference description is correct');
          assert.equal(msg.somePreference['data-jetpack-id'], id, 'data-jetpack-id attribute value is correct');

          // test myInteger
          assert.equal(msg.myInteger.type, 'integer', 'myInteger is a int');
          assert.equal(msg.myInteger.pref, 'extensions.' + id + '.myInteger', 'extensions.test-simple-prefs.myInteger');
          assert.equal(msg.myInteger.title, 'my-int', 'myInteger title is correct');
          assert.equal(msg.myInteger.desc, 'How many of them we have.', 'myInteger desc is correct');
          assert.equal(msg.myInteger['data-jetpack-id'], id, 'data-jetpack-id attribute value is correct');

          // test myHiddenInt
          assert.equal(msg.myHiddenInt.type, undefined, 'myHiddenInt was not displayed');
          assert.equal(msg.myHiddenInt.pref, undefined, 'myHiddenInt was not displayed');
          assert.equal(msg.myHiddenInt.title, undefined, 'myHiddenInt was not displayed');
          assert.equal(msg.myHiddenInt.desc, undefined, 'myHiddenInt was not displayed');

          // test sayHello
          assert.equal(msg.sayHello['data-jetpack-id'], id, 'data-jetpack-id attribute value is correct');

          tab.close(done);
        }
      });
    })
Example #4
0
  open({ id: id }).then(({ tabId, document }) => {
    let tab = Tab({ tab: getTabForId(tabId) });
    sp.once('sayHello', _ => {
      assert.pass('The button was pressed!');
      tab.close(done);
    });

    tab.attach({
      contentScript: 'unsafeWindow.document.querySelector("button[label=\'Click me!\']").click();'
    });
  });
Example #5
0
    open(self).then(({ tabId }) => {
      assert.pass("the add-on prefs page was opened.");

      let browser = getBrowserForTab(getTabForId(tabId));
      let browserMM = browser.messageManager;
      browserMM.loadFrameScript(self.data.url("test-AOM-frame-script.js"), false);
      browserMM.addMessageListener("test-aom@jpm:results", ({ data }) => {
        // test against doc caching
        assert.equal(data.someCount, 1, "there is exactly one <setting> node for somePreference");

        // test somePreference
        assert.equal(data.somePreference.type, "string", "some pref is a string");
        assert.equal(data.somePreference.pref, "extensions."+self.id+".somePreference", "somePreference path is correct");
        assert.equal(data.somePreference.title, "some-title", "somePreference title is correct");
        assert.equal(data.somePreference.desc, "Some short description for the preference", "somePreference description is correct");
        assert.equal(data.somePreference["data-jetpack-id"], self.id, "data-jetpack-id attribute value is correct");

        // test myInteger
        assert.equal(data.myInteger.type, "integer", "myInteger is a int");
        assert.equal(data.myInteger.pref, "extensions."+self.id+".myInteger", "extensions.test-simple-prefs.myInteger");
        assert.equal(data.myInteger.title, "my-int", "myInteger title is correct");
        assert.equal(data.myInteger.desc, "How many of them we have.", "myInteger desc is correct");
        assert.equal(data.myInteger["data-jetpack-id"], self.id, "data-jetpack-id attribute value is correct");

        // test myHiddenInt
        assert.equal(data.myHiddenInt.type, undefined, "myHiddenInt was not displayed");
        assert.equal(data.myHiddenInt.pref, undefined, "myHiddenInt was not displayed");
        assert.equal(data.myHiddenInt.title, undefined, "myHiddenInt was not displayed");
        assert.equal(data.myHiddenInt.desc, undefined, "myHiddenInt was not displayed");

        // test sayHello
        assert.equal(data.sayHello["data-jetpack-id"], self.id, "data-jetpack-id attribute value is correct");

        tabs.activeTab.close(done);
      });
    })
Example #6
0
 mouse_scroll: function (event) {
   let tab = tabs.activeTab;
   let xulTab = tabUtils.getTabForId(tab.id);
   this.handle_mouse_scroll({event: event, tab: xulTab, e10s:false});
 },
Example #7
0
 setTabActive: function(worker) {
   let xulTab = tabUtils.getTabForId(worker.tabId);
   tabUtils.activateTab(xulTab, tabUtils.getOwnerWindow(xulTab));
 },
Example #8
0
 getDOMWindowByWorker: function (worker) {
   let xulTab = tabUtils.getTabForId(worker.tabId);
   let chromeWindow = tabUtils.getOwnerWindow(xulTab);
   return chromeWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindow);
 },
Example #9
0
 geXulTabBytWorker: function (worker) {
   return tabUtils.getTabForId(worker.tabId);
 },