Skip to content

Commit

Permalink
Add ability to open "about:downloads" tab and downloads library window
Browse files Browse the repository at this point in the history
(part 3 for #10)
  • Loading branch information
Infocatcher committed Oct 1, 2013
1 parent f39d69b commit 155fcac
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 2 deletions.
47 changes: 45 additions & 2 deletions bootstrap.js
Original file line number Diff line number Diff line change
Expand Up @@ -507,8 +507,10 @@ var dpTweaker = {
return;
var ok;
switch(cmd) {
case 1: ok = this.toggleDownloadPanel(window); break;
case 2: ok = this.showDownloadWindow(window); break;
case 1: ok = this.toggleDownloadPanel(window); break;
case 2: ok = this.showDownloadWindow(window); break;
case 3: ok = this.openDownloadsTab(window); break;
case 4: ok = this.openDownloadsLibrary(window); break;
default: return;
}
if(ok == false)
Expand Down Expand Up @@ -547,6 +549,47 @@ var dpTweaker = {
else
DownloadsPanel.hidePanel();
},
openDownloadsTab: function(window) {
const downloadsURI = "about:downloads";
var gBrowser = window.gBrowser;
// We need to check private state for Private Tab extension
var pbu = "PrivateBrowsingUtils" in window && window.PrivateBrowsingUtils;
var isPrivate = pbu && pbu.isWindowPrivate(window.content);
if(!Array.some(gBrowser.visibleTabs || gBrowser.tabs, function(tab) {
var browser = tab.linkedBrowser;
if(
browser
&& browser.currentURI
&& browser.currentURI.spec == downloadsURI
&& isPrivate == (pbu && pbu.isWindowPrivate(browser.contentWindow))
) {
gBrowser.selectedTab = tab;
return true;
}
return false;
})) {
//gBrowser.selectedTab = gBrowser.addTab(downloadsURI);
// See resource://app/components/DownloadsUI.js
window.openUILinkIn(downloadsURI, "tab");
}
},
openDownloadsLibrary: function(window) {
// See resource://app/components/DownloadsUI.js
var organizer = Services.wm.getMostRecentWindow("Places:Organizer");
if(!organizer) {
return window.openDialog(
"chrome://browser/content/places/places.xul",
"",
"chrome,toolbar=yes,dialog=no,resizable",
"Downloads"
);
}
else {
organizer.PlacesOrganizer.selectLeftPaneQuery("Downloads");
organizer.focus();
return organizer;
}
},
clearDownloadsId: "downloadPanelTweaker-menuItem-clearDownloads",
clearDownloads2Id: "downloadPanelTweaker-menuItem-clearDownloads2",
panelFooterContextId: "downloadPanelTweaker-popup-panelFooterContext",
Expand Down
2 changes: 2 additions & 0 deletions defaults/preferences/prefs.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ pref("extensions.downloadPanelTweaker.overrideShowAllDownloads.private", 0);
// 0 - perform default action (don't override)
// 1 - toggle download panel
// 2 - open old downloads window
// 3 - open "about:downloads" tab
// 4 - open downloads library

pref("extensions.downloadPanelTweaker.dontRemoveFinishedDownloads", true);
pref("extensions.downloadPanelTweaker.fixWrongTabsOnTopAttribute", true);
Expand Down

0 comments on commit 155fcac

Please sign in to comment.