This is part of the work to remove XUL overlays. The overlay was originally
created to help startup performance, but inlining the overlay seems to
no longer have detrimental effects to performance and is more straightforward.
MozReview-Commit-ID: 7sfVel6qvgv
--HG--
extra : rebase_source : b6311cf1fb98851b4f4203c314ae9ecc8160d766
This is part of the work to remove XUL overlays. The overlay was originally
created to help startup performance, but using a hidden panel instead seems to
have no detrimental effects to performance and is more straightforward.
MozReview-Commit-ID: JlWcZEhPXyH
--HG--
rename : browser/components/downloads/content/downloadsOverlay.xul => browser/components/downloads/content/downloadsPanel.inc.xul
extra : rebase_source : 60a9fec344b1e346594015cd36947fe1779257a7
This patch was autogenerated by my decomponents.py
It covers almost every file with the extension js, jsm, html, py,
xhtml, or xul.
It removes blank lines after removed lines, when the removed lines are
preceded by either blank lines or the start of a new block. The "start
of a new block" is defined fairly hackily: either the line starts with
//, ends with */, ends with {, <![CDATA[, """ or '''. The first two
cover comments, the third one covers JS, the fourth covers JS embedded
in XUL, and the final two cover JS embedded in Python. This also
applies if the removed line was the first line of the file.
It covers the pattern matching cases like "var {classes: Cc,
interfaces: Ci, utils: Cu, results: Cr} = Components;". It'll remove
the entire thing if they are all either Ci, Cr, Cc or Cu, or it will
remove the appropriate ones and leave the residue behind. If there's
only one behind, then it will turn it into a normal, non-pattern
matching variable definition. (For instance, "const { classes: Cc,
Constructor: CC, interfaces: Ci, utils: Cu } = Components" becomes
"const CC = Components.Constructor".)
MozReview-Commit-ID: DeSHcClQ7cG
--HG--
extra : rebase_source : d9c41878036c1ef7766ef5e91a7005025bc1d72b
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm
MozReview-Commit-ID: 1Nc3XDu0wGl
--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
extra : intermediate-source : 34c999fa006bffe8705cf50c54708aa21a962e62
extra : histedit_source : b2be2c5e5d226e6c347312456a6ae339c1e634b0
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm
MozReview-Commit-ID: 1Nc3XDu0wGl
--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm
MozReview-Commit-ID: 1Nc3XDu0wGl
--HG--
extra : rebase_source : c004a023389f1f6bf3d2f3efe93c13d423b23ccd
This also changes the Library window to use the newly added back-end object. The only user-visible change should be how the selection behaves when retrying downloads.
MozReview-Commit-ID: 7CQr1m21rcB
--HG--
extra : rebase_source : e36faf63dadeba0c897b769cb7e14a2d01d0f628
extra : amend_source : 2c7a88b6e3d6de50b37c34a5579b3ab6fb0c10dd
The DownloadList object now provides batch notifications directly, in preparation for linking front-end views to other types of download lists without having to use the DownloadsData indirection.
MozReview-Commit-ID: FOTz1YwGRE1
--HG--
extra : rebase_source : df2d50d50c45a98e257caaa6efa9d0da2fa79237
extra : source : 278858e3d78b5e371f865adac043d07b770f1d3f
The front-end download views now maintain the old download state themselves, instead of relying on the DownloadsData object dispatching the onDownloadStateChanged notification.
This allows each view to keep only the state relevant to it, for example the Downloads Panel already keeps the state only for the visible items. This also makes it possible for each view to use a different hash than the one provided by the legacy stateOfDownload method, and allows bypassing the DownloadsData indirection entirely.
MozReview-Commit-ID: 2D1ixsZCkCa
--HG--
extra : rebase_source : f429fe475ea1887180e269ee8aa0addcee76704d
extra : source : df5f46c825a10587149a7bbac2e126c3906e0393
When a new front-end view is added to the DownloadsData object, the Download objects it contains are loaded into the view starting with the newest, which is the opposite of the order used by the underlying DownloadList.
This was originally implemented as an optimization for the Downloads Panel, at a time when the full list of completed downloads was persisted in the same SQLite database as session downloads. This difference is now unnecessary given the low number of session downloads, and can be removed in preparation for bypassing the DownloadsData indirection entirely.
MozReview-Commit-ID: 5EBkqvyXFq4
--HG--
extra : rebase_source : 44b8783e5c44460d3aa4fb9bd0834c981110e98e
extra : source : 56b8e456797c56c45ed791c0d40f43031e94dc22
The height of the "panelmultiview" binding is now determined by the stack layout code, and doesn't have to be calculated manually via JavaScript anymore. This allows the removal of mutation and overflow observers, and reduces the number of synchronous layouts being made.
There is still a workaround included for wrapping blocks not being taken into account in height calculations.
MozReview-Commit-ID: 9rrPU5O5hUx
--HG--
extra : rebase_source : b872c14a553c4293ac476d5d22c634a5a0f6cb24
extra : intermediate-source : bf96469b6ea7daee29eb75a60d11f017a1c86a64
extra : source : 719bb4e7286fbd3baf32061929e4b7d9f953c671
1) In the Downloads Panel, hovering over an item would sometimes not trigger an
actual selection, due to an error in how 'onDownloadMouseOver()' events were
processed - 'aEvent.orginalTarget' doesn't take retargets into account. Fixed
by using 'aEvent.target' instead of 'aEvent.originalTarget'.
2) In the Downloads Panel, right-clicking an item opens a context menu that
lets you act on the selected item. However, if you unintentionally hover over a
different item when the context menu is open, the selection changes. You may,
for example, 'Remove From History' a different, unintended item. Fixed by
inhibiting item selection when a context menu is open for a download item.
MozReview-Commit-ID: DLIAFNcs33N
--HG--
extra : rebase_source : c4021fc7634836a0b7739f8cf0c9524d732b18b9