webapprt/DownloadView.jsm
author Daniel Stenberg <daniel@haxx.se>
Fri, 29 Aug 2014 01:18:00 -0400
changeset 202352 fc191ae0a0e8aed804a77b3918cf827ca2a2b0da
parent 200447 9c96b4e6c9ee211b98cb0b7a5b25a5c8dd0c1b5d
permissions -rw-r--r--
Bug 939318 - Detect network interface changes on windows properly. r=mcmanus Now supports IPv6 as well if a new enough windows version is used. Which notification function to use is detect at run-time. Now sends CHANGED event if the online interface(s) are different in any way since it was previously checked and considered UP. CHANGED is sent before UP in case both are detected. nIOService: split up the network event receiver function from the network status init function and have the event receiver act on the incoming event. DNSservice: acts on network changes (flushes the host cache) HttpHandler: acts on network changes

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

"use strict";

this.EXPORTED_SYMBOLS = ["DownloadView"];

const Cu = Components.utils;

Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/Downloads.jsm");

this.DownloadView = {
  init: function() {
    Downloads.getList(Downloads.ALL)
             .then(list => list.addView(this))
             .catch(Cu.reportError);
  },

  onDownloadAdded: function(aDownload) {
    let dmWindow = Services.wm.getMostRecentWindow("Download:Manager");
    if (dmWindow) {
      dmWindow.focus();
    } else {
      Services.ww.openWindow(null,
                             "chrome://webapprt/content/downloads/downloads.xul",
                             "Download:Manager",
                             "chrome,dialog=no,resizable",
                             null);
    }
  },
};

DownloadView.init();