mobile/android/components/DownloadManagerUI.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:450f54078442
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5 const Ci = Components.interfaces;
6 const Cr = Components.results;
7
8 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
9 Components.utils.import("resource://gre/modules/Services.jsm");
10
11 // -----------------------------------------------------------------------
12 // Download Manager UI
13 // -----------------------------------------------------------------------
14
15 function DownloadManagerUI() { }
16
17 DownloadManagerUI.prototype = {
18 classID: Components.ID("{93db15b1-b408-453e-9a2b-6619e168324a}"),
19
20 show: function show(aWindowContext, aDownload, aReason, aUsePrivateUI) {
21 if (!aReason)
22 aReason = Ci.nsIDownloadManagerUI.REASON_USER_INTERACTED;
23
24 this._getBrowserApp().selectOrOpenTab("about:downloads");
25 },
26
27 get visible() {
28 let browserApp = this._getBrowserApp();
29 let downloadsTab = browserApp.getTabWithURL("about:downloads");
30 return (downloadsTab && downloadsTab == browserApp.selectedTab) ? true : false;
31 },
32
33 getAttention: function getAttention() {
34 if (this._getBrowserApp().getTabWithURL("about:downloads"))
35 return;
36
37 throw Cr.NS_ERROR_UNEXPECTED;
38 },
39
40 _getBrowserApp: function getBrowserApp() {
41 try {
42 return Services.wm.getMostRecentWindow("navigator:browser").BrowserApp;
43 } catch (e) {
44 throw Cr.NS_ERROR_FAILURE;
45 }
46 },
47
48 QueryInterface: XPCOMUtils.generateQI([Ci.nsIDownloadManagerUI])
49 };
50
51 this.NSGetFactory = XPCOMUtils.generateNSGetFactory([DownloadManagerUI]);

mercurial