jetpack-tab-setwindow

1.0.5-a • Public • Published

JetPack Tab.setWindow

Monkey patch Firefox Addon SDK's Tab class with a method for moving tabs to other windows.

Install

In your addon folder run

npm i jetpack-tab-setwindow --save

Usage

In your addon code include

require('jetpack-tab-setwindow');

That's it!

Now you can call setWindow(window, index) on any SDK tab.

const TABS = require("sdk/tabs");
 
// Move first tab to the end of second tab's window
TABS[0].setWindow(TABS[1].window, -1)
.then(function (newTab) {
    // newTab is a new object representing TABS[0], but the tab is the same!
    // All states are preserved, even video continues playing.
    // But newTab.id !== TABS[0].id
 
    // Move second tab to a new window (tear off)
    return TABS[1].setWindow(null)
    .then(function (newTab1) {
        // Note: if TABS[1] is the only tab in its window, tab is not detached and newTab1 === TABS[1]
    });
});
 

Note

This library uses Addon SDK low-level API, which is not encouraged.

Here is a note from Mozilla's SDK Add-ons website:

Note that directly accessing XUL objects and web content like this means you're no longer protected by the compatibility guarantees made by the SDK's high-level APIs. In particular, your code might not work with multiprocess Firefox.

So use with care.

Tested with Firefox 44 and Nightly 47.

Dependencies (0)

    Dev Dependencies (1)

    Package Sidebar

    Install

    npm i jetpack-tab-setwindow

    Weekly Downloads

    1

    Version

    1.0.5-a

    License

    MIT

    Unpacked Size

    11.1 kB

    Total Files

    4

    Last publish

    Collaborators

    • duzun