[PALEMOON] Bug 1116176 - Create DownloadsHistoryDataItem and HistoryDownload objects

This commit is contained in:
janekptacijarabaci 2018-07-29 09:32:40 +02:00 committed by Roy Tam
commit 67f36036d3
3 changed files with 393 additions and 422 deletions

View file

@ -8,6 +8,7 @@
this.EXPORTED_SYMBOLS = [
"DownloadsCommon",
"DownloadsDataItem",
];
/**
@ -25,10 +26,9 @@ this.EXPORTED_SYMBOLS = [
* to build a consistent view of the available data.
*
* DownloadsDataItem
* Represents a single item in the list of downloads. This object either wraps
* an existing nsIDownload from the Download Manager, or provides the same
* information read directly from the downloads database, with the possibility
* of querying the nsIDownload lazily, for performance reasons.
* Represents a single item in the list of downloads. This object wraps the
* Download object from the JavaScript API for downloads. A specialized version
* of this object is implemented in the Places front-end view.
*
* DownloadsIndicatorData
* This object registers itself with DownloadsData as a view, and transforms the

View file

@ -880,10 +880,10 @@ const DownloadsView = {
},
// DownloadsView
onDataItemStateChanged(aDataItem, aOldState) {
onDataItemStateChanged(aDataItem) {
let viewItem = this._visibleViewItems.get(aDataItem);
if (viewItem) {
viewItem.onStateChanged(aOldState);
viewItem.onStateChanged();
}
},
@ -1126,16 +1126,14 @@ DownloadsViewItem.prototype = {
* the download might be the same as before, if the data layer received
* multiple events for the same download.
*/
onStateChanged(aOldState) {
{
onStateChanged() {
// If a download just finished successfully, it means that the target file
// now exists and we can extract its specific icon. To ensure that the icon
// is reloaded, we must change the URI used by the XUL image element, for
// example by adding a query parameter. Since this URI has a "moz-icon"
// scheme, this only works if we add one of the parameters explicitly
// supported by the nsIMozIconURI interface.
if (aOldState != Ci.nsIDownloadManager.DOWNLOAD_FINISHED &&
aOldState != this.dataItem.state) {
if (this.dataItem.state == Ci.nsIDownloadManager.DOWNLOAD_FINISHED) {
this._element.setAttribute("image", this.image + "&state=normal");
// We assume the existence of the target of a download that just completed