Skip to content

mdr-ksk/Private_Tab

This branch is 885 commits behind Infocatcher/Private_Tab:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c902b95 · May 2, 2013
Apr 28, 2013
May 2, 2013
Apr 20, 2013
May 1, 2013
Apr 27, 2013
Jan 10, 2013
May 1, 2013
Jan 8, 2013
Apr 26, 2013
Apr 28, 2013
Mar 21, 2013
Mar 21, 2013
Apr 9, 2013

Repository files navigation

Works only in Gecko 20.0 and higher because used API doesn't exist in older versions!

Known issues:

We just inherit private state from selected tab and tries preserve private state of dropped link-like things, this is simple to implement, but may confuse a bit…

Styles:

You can use .tabbrowser-tab[privateTab-isPrivate] (private tab) and #main-window[privateTab-isPrivate] (built-in private window) selectors in styles for userChrome.css/Stylish.
Example styles:

API for other extensions:

Events:

You can listen for following events:

event.type event.targetevent.detail Description
PrivateTab:PrivateChangedtab 1 – private tab
0 – not private
Changed private state of the tab
PrivateTab:OpenInNewTab tab 1 – may be opened as child tab Link was opened in new private tab
PrivateTab:OpenNewTab tab Opened new (empty) private tab
API functions:

boolean privateTab.isTabPrivate(in DOMNode tab)
boolean privateTab.toggleTabPrivate(in DOMNode tab[, in boolean isPrivate])
void privateTab.readyToOpenTab(in boolean isPrivate)
void privateTab.readyToOpenTabs(in boolean isPrivate)

privateTab.isTabPrivate()

Investigates that the tab are private (true) or not (false), example:

// Close all (visible) private tabs:
Array.slice(gBrowser.visibleTabs || gBrowser.tabs).forEach(function(tab) {
	if(privateTab.isTabPrivate(tab))
		gBrowser.removeTab(tab);
});
privateTab.toggleTabPrivate()

Changes tab private state:
Toggle: privateTab.toggleTabPrivate(tab)
Make private: privateTab.toggleTabPrivate(tab, true)
Make not private: privateTab.toggleTabPrivate(tab, false)

// Make all (visible) tabs private:
Array.forEach(
	gBrowser.visibleTabs || gBrowser.tabs,
	function(tab) {
		if(!privateTab.isTabPrivate(tab))
			privateTab.toggleTabPrivate(tab, true);
	}
);
privateTab.readyToOpenTab()

Allows to open private or not private tab (independent of any inheritance mechanism), example:

// Open in private tab:
privateTab.readyToOpenTab(true);
gBrowser.addTab("https://mozilla.org/");
// Open in not private tab:
privateTab.readyToOpenTab(false);
gBrowser.addTab("https://mozilla.org/");
privateTab.readyToOpenTabs()

Allows to open many private or not private tabs (independent of any inheritance mechanism), example:

// Open in private tabs:
privateTab.readyToOpenTabs(true);
gBrowser.addTab("https://mozilla.org/");
gBrowser.addTab("https://addons.mozilla.org/");
// ...
privateTab.stopToOpenTabs();
Backward compatibility:

Check for Private Tab installed (and enabled):

if("privateTab" in window) {
	// Do something with "privateTab" object
}

About

Adds private tabs, extension for Firefox (20.0+) and SeaMonkey (2.17+)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 98.8%
  • Shell 1.2%