What is supported:
- Hold CTRL while clicking to select multiple rows.
- Hold SHIFT while clicking to select a range of folder from the currently active element.
- Hold CTRL and press arrow up/down to select next/previous row.
- Enable multiselection via data attribute to keep the widget modular.
Specific to Folder pane:
- Enable only a few simple actions when in multiselection
- Open in Tab/Window and Mark as Read are always enabled.
- Move and Copy only if conditions are met.
- Empty trash/junk only if the selected folders are all trash/junk.
Differential Revision: https://phabricator.services.mozilla.com/D203232
--HG--
extra : amend_source : 4386159ceacad69bb8c3d033b9007fa884926f5b
Very simple color customization for servers.
It leverages the same FolderTreeProperties module and flow of the folder pane.
Differential Revision: https://phabricator.services.mozilla.com/D211687
--HG--
extra : moz-landing-system : lando
What is supported:
- Hold CTRL while clicking to select multiple rows.
- Hold SHIFT while clicking to select a range of folder from the currently active element.
- Hold CTRL and press arrow up/down to select next/previous row.
- Enable multiselection via data attribute to keep the widget modular.
Specific to Folder pane:
- Enable only a few simple actions when in multiselection
- Open in Tab/Window and Mark as Read are always enabled.
- Move and Copy only if conditions are met.
- Empty trash/junk only if the selected folders are all trash/junk.
Differential Revision: https://phabricator.services.mozilla.com/D203232
--HG--
extra : amend_source : 20aec1999e7f5034189b7740f5e4747a76cd4c06
Update the message count when all messages have been loaded and when a message has been deleted.
Differential Revision: https://phabricator.services.mozilla.com/D210487
--HG--
extra : amend_source : fe232cc063cfc39502a94ef1d86cbc480f81fbf6
We stopped using this with the mail tabs rebuild.
Differential Revision: https://phabricator.services.mozilla.com/D211958
--HG--
extra : amend_source : a4cbe7fdfe4d379eae65d2cd70658159d3650294
This test was failing because layout happened and the document was resized after the test started
clicking on things. I also refactored the test a bit.
Differential Revision: https://phabricator.services.mozilla.com/D211689
--HG--
extra : rebase_source : 62b2fe264a75761904bcb86e21414abc92aa0164
Creates and heavily modifies a copy of PROTO_TREE_VIEW from jsTreeView.js. I've removed a bunch of
things that are no longer needed because we don't need to implement nsITreeView, and tidied up
what remains, while keeping the general concepts intact.
Differential Revision: https://phabricator.services.mozilla.com/D208446
--HG--
rename : mail/base/content/modules/thread-pane-columns.mjs => mail/base/content/modules/ThreadPaneColumns.mjs
rename : mailnews/base/content/jsTreeView.js => mail/base/content/modules/TreeDataAdapter.mjs
rename : mail/base/content/widgets/tree-selection.mjs => mail/base/content/modules/TreeSelection.mjs
rename : mail/base/test/widgets/files/autoTreeView.js => mail/base/test/widgets/files/autoTreeView.mjs
rename : mail/base/test/widgets/files/tree-element-test-common.js => mail/base/test/widgets/files/tree-element-test-common.mjs
rename : mail/base/test/widgets/files/tree-element-test-header.js => mail/base/test/widgets/files/tree-element-test-header.mjs
rename : mail/base/test/widgets/files/tree-element-test-no-header.js => mail/base/test/widgets/files/tree-element-test-no-header.mjs
extra : moz-landing-system : lando
Some of the functionality of calendar-ics-file-dialog.xhtml wasn't available in about:import, so I
copied it over. Some I decided wasn't that important, despite thinking so when I first wrote it.
Differential Revision: https://phabricator.services.mozilla.com/D210599
--HG--
extra : moz-landing-system : lando
When the view gets hidden, the resize observers are informed that its height is 0. Consequently
when it becomes unhidden, some calculations are performed using a cached height of 0, before the
resize observers are updated.
When the header itself is hidden, we DO cache a height of 0, because that is the actual height.
Differential Revision: https://phabricator.services.mozilla.com/D210245
--HG--
extra : amend_source : 28fb039d266f9884f4c3cd768e003f23a28fd6ec
- Fix a recent regression (from bug 1892074) by restoring the thread state when all messages have been loaded in any view searching one or more folders.
- Enable DBViewWrapper._threadExpandAll and threadPane.restoreThreadState() for synthetic views as well. This is necessary to use Grouped-By-Sort in Expand-All state without performance impact.
Differential Revision: https://phabricator.services.mozilla.com/D209493
--HG--
extra : amend_source : 3b08301bd81c8743cae1b9a60c8af1ff143204e3
Really a Windowx XP thing...
Differential Revision: https://phabricator.services.mozilla.com/D210022
--HG--
extra : rebase_source : 2de0e3e970367bbcb1528e2310ba5bf68e3095ad
extra : amend_source : 5213eceaddb12b829352c406c1603c7099ec607e
Resorting the messages is only necessary when changing from threaded or grouped to unthreaded.
Differential Revision: https://phabricator.services.mozilla.com/D208830
--HG--
extra : amend_source : 81cc22b8e615e0959a36b214a4e590d47e370a07
**How to Test**
- Check all actions that can open message in a new tab
- Using the context menu or middle click should always open a message in a tab
- Using shift with those above actions should focus those tabs, otherwise the tabs should open the background
- Double clicking a message when loadInBackground pref is false should open and focus on that message in a new tab
- Shift should open the above action in the background
- Vice versa for when loadInBackground pref is true
- Load in background pref should not affect middle click and context menu actions
Differential Revision: https://phabricator.services.mozilla.com/D209609
--HG--
extra : moz-landing-system : lando
We currently use getSmartServer() in various code areas to create, get
and update the smart account/server/folders. The virtual tags folders
were not handled by that method and the required code was only
triggered, when the user enabled the "tags" folder mode in the UI.
The WebExtension API needs access to these tag folders even if the user
has not yet enabled that folder mode.
This patch adds a SmartMailbox class, which simplifies tasks related to
unified mailbox folders and virtual tag folders, and creates the
virtual tag folders together with the unified mailbox folders.
It renames SmartServerUtils.sys.mjs to SmartMailboxUtils.sys.mjs.
Differential Revision: https://phabricator.services.mozilla.com/D208776
--HG--
rename : mail/modules/SmartServerUtils.sys.mjs => mail/modules/SmartMailboxUtils.sys.mjs
extra : moz-landing-system : lando
This is adding the required changes to make `runtime.getContexts()` work
in Thunderbird.
This also adds a mochitest, which is based on this m-c test:
/browser/components/extensions/test/browser/browser_ext_runtime_getContexts.js
Differential Revision: https://phabricator.services.mozilla.com/D209794
--HG--
extra : rebase_source : 8c0c71071c77eb7bacd06fa5c5a5ef787c163e2b
- This shows the appropriate confirmation dialog also when deleting messages in a unified folder, a conversation view or in the Search Messages dialog.
- Disable move/delete operations for expanded headers in Grouped By views (see also bug 1873313).
Differential Revision: https://phabricator.services.mozilla.com/D208902
--HG--
extra : amend_source : 10eae9c2eea8b3e3265864c63c87fce31ac6def5
This fixes the following issues:
- Selecting Grouped By Sort in a unified folder doesn't work properly under certain circumstances.
- In a single-folder view with bySize as the secondary sort, selecting Grouped By Sort always uses byDate as the sort type.
- In a multi-folder view with bySize as the primary sort, selecting Grouped By Sort destroys the view.
- Selecting Grouped By Sort when the view is sorted byUnread, byJunkStatus, or (in a single-folder view) byLocation leads to an empty view.
Differential Revision: https://phabricator.services.mozilla.com/D209492
For IMAP, it seems the double load is inevitable, see bug 520272 for history...
For local folders there was a counfusing double load which I've fixed, along
with some added documentation to clarify a few code paths.
Differential Revision: https://phabricator.services.mozilla.com/D207340
--HG--
extra : moz-landing-system : lando
**How to Test**
- Run a clobber do get a fresh TB profile
- Opening a message in a new tab should now focus to that tab
Differential Revision: https://phabricator.services.mozilla.com/D208362
--HG--
extra : moz-landing-system : lando
- Changes the behaviour when a certificate error is encountered. Instead of just showing the
certificate override dialog box, show a notification which opens the dialog if it is clicked on.
- Uses a different notification text depending on the type of error. Domain mismatch (potential
man-in-the-middle) errors will not show the certificate override dialog at all.
- Surfaces errors that appear from changing the displayed folder. Previously these just silently failed.
- Tests all of the above.
Differential Revision: https://phabricator.services.mozilla.com/D208956
--HG--
extra : rebase_source : bc569ba7a6555aef27fba39b1429a18c9cec7dbf
extra : amend_source : a48d8b7ad7f7030b33fcf5f543f00581785fedbd
We're missing a bunch of coverage data if the test finishes before the message loads. The data is not
from the loading window, but one of its ancestors, so I'm not entirely sure what's going on here.
Differential Revision: https://phabricator.services.mozilla.com/D209181
--HG--
extra : amend_source : c1d6b203cfc5701907421726295793507e51f4cb
When we don't provide setting up an account, it's just confusing.
Differential Revision: https://phabricator.services.mozilla.com/D208862
--HG--
extra : amend_source : 6b04ac5d861b6b046404bb6f52aeabb39df42e0f
This exposes the concept of folder modes in the folder pane to
WebExtensions. The MailTab type has gained a `folderMode` member and a
`folderModesEnabled` member.
The `MailTabs.update()` function is now able to modify the enabled and
the current folder modes.
Differential Revision: https://phabricator.services.mozilla.com/D208600
--HG--
extra : amend_source : 3d2077cba87056ef2c716628d1ccb3a2f5ac6e5a
This is based on
https://searchfox.org/comm-central/rev/9eee1dc9386561ac322d64adaa25e9cd55960ea1/mail/base/test/widgets/browser_treeView.js#56-70
but instead of creating a wrapper around each possible action, this
aims at checking the idle status *before each check*. If the tree
view is still busy updating the UI, the check waits until it is idle,
before moving on.
I found this approach less error-prone, as it is less likely to forget
to wrap a function call and therefore less likely to introduce new
intermittent fails.
Differential Revision: https://phabricator.services.mozilla.com/D208515
--HG--
extra : rebase_source : dc5fe7eaef1dbf22896f988a7bf9ac38a362f56e
extra : amend_source : 5c7f4f78cdc990d4bb72bc9fc702b407015c2bba
**How to test this**
- Open Preferences > general > Formatting of recipients:
- Change between the various radio button options.
- Assert that the `From` and `Correspondents` column in the table view are respecting the chosen option.
- Assert that if a recipient is saved in the address book with a display name, it is not overwritten.
- Assert that also in Cards View the sender follows the same data format.
Differential Revision: https://phabricator.services.mozilla.com/D207221
--HG--
extra : moz-landing-system : lando
Apparently detachment doesn't always complete after only requestAnimationFrame
Differential Revision: https://phabricator.services.mozilla.com/D208316
--HG--
extra : moz-landing-system : lando
Almost all are CCov builds timing out. Looking at the logs it seems the tests many times just is slow
to get started there.
Differential Revision: https://phabricator.services.mozilla.com/D208170
--HG--
extra : amend_source : ab33d7a98b5a6018916e2b99790c7ef2c794bb6e
- Set proper style attributes in threadTree when changing between grouped-by-sort and threaded in multi-folder search views.
- Actually set the collapsed/expanded state either in `onCreatedView` or in `onMessagesLoaded(all)`
- Correctly restore expand-all state of grouped-by-sort multi-folder search views (Bug 1892065)
Differential Revision: https://phabricator.services.mozilla.com/D207799
--HG--
extra : amend_source : b61a5c276374e0f08fe0f7f544cabcff172d80a8
Show the unabbreviated name in tooltips in both the folder list and the message list header,
Differential Revision: https://phabricator.services.mozilla.com/D207395
--HG--
extra : amend_source : ddf68c63c6b0e692032f32fbc4a5530ab7fc0e44
This is based on the fix for the same issue accepted in D207481. This
patch fixes all such usages in this test, not just the one which failed.
Differential Revision: https://phabricator.services.mozilla.com/D207525
--HG--
extra : amend_source : 54cee9fafc7d420de1534b9bc9f8d44e4758e038
**How to Test**
- Open mail tab
- Type input into either Quick Filter Bar or Global Search Bar
- Clear button should appear
- Clicking clear button should remove input and hide clear button
- Typing and hitting escape should remove input and hide clear button
- Typing and deleting should make clear button appear and then hide
Differential Revision: https://phabricator.services.mozilla.com/D207064
--HG--
extra : moz-landing-system : lando
The prior change seems to have landed between fixes, as it then caused the links
on our troubleshooting page to stop working, by forcibly removing their docShell.
We now work around this issue by detecting the special case when a parent opener
has isRemote set, such as in the extensions use case.
Differential Revision: https://phabricator.services.mozilla.com/D206445
--HG--
extra : rebase_source : e6c48e0911e067c12f8804d38df98999534efbfa
extra : amend_source : d6e6e5a13204c96f32739373692146bf70f4ef28
This patch adds support for the 3 injection points `document_start`,
`document_end` and `document_idle` for message display scripts. This
allows dark reader add-ons [1] to inject their CSS at an earlier stage,
reducing white flicker.
This patch also tries to remove a flicker, which currently happens when
switching messages.
To see the effect of the patch, try dark mode with [1] first and then
with [2], which is the updated verison of the add-on, using
`document_start` to inject the CSS as early as possible.
[1] : https://addons.thunderbird.net/addon/darko_t/
[2] : https://bugzilla.mozilla.org/attachment.cgi?id=9393235
Differential Revision: https://phabricator.services.mozilla.com/D205649
--HG--
extra : moz-landing-system : lando
MailUtils.sys.mjs already contains openMessageByMessageId(), which basically does the same thing as
openMessageForMessageId() in msgHdrView.js. This integrates the former into the latter, and by
moving it to MailUtils.sys.mjs makes it accessible in other parts of the front-end as well as for
(experimental) add-ons. The same goes for openBrowserWithMessageId().
Differential Revision: https://phabricator.services.mozilla.com/D206249
--HG--
extra : rebase_source : 490079901e8ebcc19bd792a3c90a944bb8c1b0ac
Delaying the thread kill commands to animation frames fixes the command forcing
the parent of the submenu popup to close before it can propagate there naturally.
As a trade-off we now have to wait for the commands to actually execute their action.
Differential Revision: https://phabricator.services.mozilla.com/D202861
--HG--
extra : amend_source : 5644c6bf7cb81a41373d4583f9004d6d2b3041ba
**HOW TO TEST**
- Ensure you are in the Grouped by Sort view in Cards view
- Launch Thunderbird
- Ensure the rows are styled correclty and there's no UI flicker (you should notice that without the patch)
Differential Revision: https://phabricator.services.mozilla.com/D206300
--HG--
extra : amend_source : 58283c351d34f794c7d0c3ceaba4ded009b8279a
Need to create a generic (not specific to download ) low space message property, too. Bug 1886349
Use Cr.NS_... idiom to refer to a constant.
Fixed the spelling attemped.
Differential Revision: https://phabricator.services.mozilla.com/D205286
--HG--
extra : rebase_source : caa216e963264cc2943b73f3f19e1c9f6c5a5b2e
This is the last patch for the stack of Bug 1877390. Everything outside
of DBViewWrapper now uses columnIds to for sorting. The special
handling for custom column sort has been moved entirely into the
DBViewWrapper.
Differential Revision: https://phabricator.services.mozilla.com/D200243
--HG--
extra : rebase_source : 20120c5c4dd999e8de965e20b812f923d95e3b5a
Both can be generated from DEFAULT_COLUMNS and do not need to be
maintained manually.
While modifying them, I learned that one of their use-cases in
HandleColumnClick() in threadPane.js can be simplified using the new
getter for primarySortColumnId.
Differential Revision: https://phabricator.services.mozilla.com/D200276
--HG--
extra : rebase_source : 4bea1ba0fdf8b5a2c4b87328b4c569bb6a386742
In threadPane.js exists similar code as in about3pane.js, to convert the
sort type of the current sort column into a columnId.
This patch moves these functions as an additional getter into
DBViewWrapper.jsm.
To avoid circular dependencies, this patch moves OUTGOING_FOLDER_FLAGS
from DBViewWrapper.jsm to FolderUtils.jsm.
Differential Revision: https://phabricator.services.mozilla.com/D200242
--HG--
extra : rebase_source : 1e47ef7b626915999d743915cd842d55fc3bb7d9
The function convertSortTypeToColumnID() uses dbView.curCustomColumn to
convert the "byCustom" sort type to a columnID. This however only works
for the current custom sort column, and not for any custom column. It is
also only used with the primarySortType (and not with any sort type) as
input.
To improve readability of this code, this patch reworks this function to
always return to columnID of the current sort column.
Differential Revision: https://phabricator.services.mozilla.com/D200212
--HG--
extra : rebase_source : 219d43da8faa064fdd95bc14388c1bc185aceb23
Failing at least comm/mail/components/extensions/test/browser/browser_ext_messages_open_attachment.js
--HG--
extra : amend_source : cfb6455a4d8c64f36dddcd841e011a7b7dbe10f6
Update outdated .jsm references in the tree.
Depends on D204766
Differential Revision: https://phabricator.services.mozilla.com/D204769
--HG--
extra : rebase_source : cdf8c1367702bb00c51a750cc712e156db65d371
extra : amend_source : 5f2256fc97ae8f3de2086ffbe99acde9fdef0473
The open/close Promises of PrintUtils are not returned from the m-c
component and are not accessible. The only access handle I could find is
the browser itself. Attaching the two callback methods is a very simple
solution, but is it any good?
This patch locks the composer (for example menus, action buttons
and commands) while the print preview modal dialog is shown.
Differential Revision: https://phabricator.services.mozilla.com/D204553
--HG--
rename : mail/components/extensions/test/browser/browser_ext_compose_onBeforeSend.js => mail/components/extensions/test/browser/browser_ext_compose_printPreview.js
extra : amend_source : e78f88df767abe3ed7a285bb11953c063a44e1f0
**How To Test**
- Open thunderbird. Use your find function and ensure findbar shows up and works.
- Switch to a multimessageview. Use your find function and ensure findbar shows up and works.
- Switch between message view and multimessageview to ensure that find bar is not overlapping or confusing browsers.
Differential Revision: https://phabricator.services.mozilla.com/D203217
--HG--
extra : moz-landing-system : lando
Modernizer browser_junkCommands.js which led me to find the bug.
Test cleanup will remove the folder, and url processing finishes later...
IMAP and NNTP urls also just return null.
Differential Revision: https://phabricator.services.mozilla.com/D204017
--HG--
extra : rebase_source : f38742af7a3d970a96eca0b2d5fa9ba606c82ced
extra : amend_source : d4f089e32ca10c39e652462420bc45d042b8e274
The attachment checker was doing some not quite ok things, and couldn't be converted to a standard module.
Fix the wrongdoings.
Differential Revision: https://phabricator.services.mozilla.com/D203740
--HG--
rename : mail/modules/AttachmentChecker.jsm => mail/modules/AttachmentChecker.worker.js
extra : rebase_source : 8cd0e035b571ddc349e3d7f9adbaa44fc58fdfcd
We have an observer in `MailGlue.sys.mjs` for `chrome-document-global-created`,
to create a new instance of the `LightweightThemeConsumer` for each new
opened document.
This is not fired for the `messageBrowser`, which appears to be a
content document.
This patch makes sure we also create such an instance for the
messageBrowser. The patch also adds a test.
**The Bug itself has a reproducer add-on, showcasing the introduced
change by adding a border to all theme-able elements. Without this
patch, the message header area is not touched.**
Differential Revision: https://phabricator.services.mozilla.com/D204029
--HG--
extra : amend_source : 1f0f31a8492de603f71477d8a5376895ecf44e1b
In case mailnews.headers.extraExpandedHeaders contains a header we "know about" and have
already defined behavior for, use the preferred behavior.
E.g. set List-Archive into the pref - without this fix it shows as a plain filed, not as a link.
Differential Revision: https://phabricator.services.mozilla.com/D203898
--HG--
extra : amend_source : 3b507a7907f42d493dd211e833c12cda1af8a50f
Remove some of things that shoudn't really be logged.
Some usage were in try-catches that should not reasonably throw.
Upgraded many debug/logs to warn - when appropriate.
Differential Revision: https://phabricator.services.mozilla.com/D203750
--HG--
extra : rebase_source : 73d8f0ba2ad7ebf0f82e71bed603f90e45dac0ce
extra : amend_source : 0824f75948689237cc7d49715a23603ce0f654a3
If a new tab is opened via a click on a link with target="_blank", we
trigger createContentWindowInFrame() in mailWindow.js, which creates a
new tab without loading any content. Till now we did not define the
created browser to be remote, but the CPP code which later loaded the
actual page, died on a MOZ_ASSERT because of this.
This patch is setting the remoteness only for the skipLoad case,
otherwise it will interfere with the logic in MailE10SUtils.loadURI().
Differential Revision: https://phabricator.services.mozilla.com/D203091
--HG--
extra : amend_source : 2930ea63d29993b8e144116d24f512658dc165d7
- sortByThread() is unused.
- nsImapIncomingServer::GetAllConnectionsIdle() was introduced in bug 1848775, and the comment wasn't updated.
- details-notification-incompatible was renamed in bug 1845109.
Differential Revision: https://phabricator.services.mozilla.com/D202661
--HG--
extra : moz-landing-system : lando
This is much cleaner than passing the test scope to each module and calling `registerCleanupFunction`
to shut down servers etc..
`TestUtils.promiseTestFinished` isn't called in XPCShell tests but because they run separately and
everything is cleaned up when the process ends, that doesn't matter.
Differential Revision: https://phabricator.services.mozilla.com/D202679
--HG--
extra : rebase_source : 4d3fe3ee0e32777734ccb850c30756cd4074c886
extra : amend_source : 9286c4162da1985f2fa9f7c50198501aecdac011