Closed Bug 1762690 Opened 3 years ago Closed 2 years ago

Implement ImapClient.jsm to interact with IMAP server

Categories

(MailNews Core :: Networking: IMAP, task)

Tracking

(thunderbird_esr91 wontfix)

RESOLVED FIXED
101 Branch
Tracking Status
thunderbird_esr91 --- wontfix

People

(Reporter: rnons, Assigned: rnons)

References

(Blocks 1 open bug)

Details

Attachments

(40 files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
No description provided.
Assignee: nobody → remotenonsense
Status: NEW → ASSIGNED
Target Milestone: --- → 101 Branch

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/48129a5ccb0b
Init ImapClient.jsm to interact with IMAP server.jsm. r=mkmelin
https://hg.mozilla.org/comm-central/rev/af98240b0763
Support PLAIN auth in ImapClient.jsm. r=mkmelin

Functions are added in ImapClient to send UID FETCH request, only to test ImapResponse.

Pushed by nicolai@thunderbird.net:
https://hg.mozilla.org/comm-central/rev/4f56c576aefa
Introduce ImapResponse.jsm to parse server responses. r=mkmelin

New messages should show up in the threadPane. Select a message to show in messagePane doesn't work yet.

Depends on D143965.

Pushed by nicolai@thunderbird.net:
https://hg.mozilla.org/comm-central/rev/769edef2f423
Change getMsgHdrs to scriptable msgHdrs attribute in nsIImapHeaderInfo. r=mkmelin
https://hg.mozilla.org/comm-central/rev/34a154d9d5b1
Save fetched IMAP msg to folder. r=mkmelin

Load msg in messagepane works as well.

Depends on D144253.

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/df2b2bbd15f9
Support setting msg flags in ImapClient.jsm. r=mkmelin

Rename _idleConnections to _freeConnections to avoid confusion with the IDLE command.

This patch only adds code to send IDLE/NOOP, follow-up patches will actually handle IDLE/NOOP responses.

NOOP can return more than flags changes, will handle them in later patches.

Depends on D145412.

Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/3d71f1e68fb4
Use IDLE and NOOP commands to receive updates from server. r=mkmelin
https://hg.mozilla.org/comm-central/rev/3f0cf40e7d9c
Update message flags in SELECT and NOOP response. r=mkmelin

Because a single response can span multiple chunks, and can contain multiple types of data.

Delete messages not found on server.

Depends on D145825.

Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/5ca34706fe3d
Rewrite ImapResponse to do incremental parsing. r=mkmelin
https://hg.mozilla.org/comm-central/rev/173ade8a15b0
Handle EXISTS and EXPUNGE in NOOP responses. r=mkmelin

Also implement possibleImapMailbox and discoveryDone of nsIImapServerSink, which are used to create new folders and remove folders not found on server.

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/0aeb0dc79b20
Implement discoverAllFolders in ImapClient.jsm to sync folders with server. r=mkmelin

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/cab2af2da91f
Support LOGIN/CRAM-MD5/OAUTH auth in ImapClient.jsm. r=mkmelin

Enable test_imapAuthMethods.js.

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/1635afefd810
Support GSSAPI/NTLM auth in ImapClient.jsm. r=mkmelin

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/0a1fb0b52bfa
Add MailAuthenticator.getCramMd5Token to be reused by Smtp/Pop3/Imap clients. r=mkmelin

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/a5ede899464b
Enable test_imapPasswordFailure.js for imap-js. r=mkmelin

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/440ab3a1ee66
Support STARTTLS in ImapClient.jsm and enable test_starttlsFailure.js. r=mkmelin
https://hg.mozilla.org/comm-central/rev/6519667c7dcf
Support EXTERNAL auth in ImapClient.jsm. r=mkmelin

Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/5f74df87f615
Enable test_autosync_date_constraints and test_bccProperty for imap-js. r=mkmelin

Improve literal string parsing in ImapResponse.jsm.

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/ebd9fb0f0f65
Enable test_filterCustomHeaders.js for imap-js. r=mkmelin

Pushed by alessandro@thunderbird.net:
https://hg.mozilla.org/comm-central/rev/11d2d2714a8b
Fetch headers first, then fetch body on demand in ImapClient. r=mkmelin

Chunking and download on demand need some more work.

Call parseAdoptedMsgLine only when downloading for offline.

Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/815c7aa26fa1
Disable three tests for imap-js. r=mkmelin,benc

Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/24201dc5e5d4
Enable test_stopMovingToLocalFolder.js for imap-js. r=benc
https://hg.mozilla.org/comm-central/rev/af26a1c1d48d
Enable test_subfolderLocation.js and test_syncChanges.js for imap-js. r=benc
https://hg.mozilla.org/comm-central/rev/0436118c423e
Enable test_dod for imap-js. r=benc
https://hg.mozilla.org/comm-central/rev/77f37cd92742
Enable test_folderOfflineFlags and test_gmailAttributes for imap-js. r=benc

Mac doesn't like test_stopMovingToLocalFolder.js (intermittent, I think) or test_subfolderLocation.js: https://treeherder.mozilla.org/logviewer?job_id=392077313&repo=comm-central&lineNumber=3739

Flags: needinfo?(remotenonsense)

I'm building on mac, took longer than I thought, will try to fix it later today.

Introduce MsgProtocolInfo.sys.mjs to reuse code between nntp/pop3/imap protocol info modules.

Flags: needinfo?(remotenonsense)

Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/bc77a8863e0a
Enable test_imapAutoSync and test_imapHighWater for imap-js. r=mkmelin
https://hg.mozilla.org/comm-central/rev/0edf682ff82d
Fix test_stopMovingToLocalFolder.js for macOS by normalizing folder path. r=mkmelin

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/dce7635831db
Handle MOVE/APPEND responses in ImapClient.jsm. r=mkmelin

Pushed by mkmelin@iki.fi: https://hg.mozilla.org/comm-central/rev/d11c1e1ed44e Fetch QUOTA data in ImapClient.jsm. r=mkmelin

Also fix parsing imap-message url.

Please rebase for the most recent push, there's a small conflict

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/abc179445e80
Set \SEEN flag to sent message in ImapClient. r=mkmelin

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/349776adde80
Send IDLE only after finishing all requests in imap-js. r=mkmelin

Pushed by alessandro@thunderbird.net:
https://hg.mozilla.org/comm-central/rev/4c822872fe07
Prevent timeout when idling in ImapClient.jsm. r=mkmelin

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/5356ae9214f6
Consume message one by one before response is completed in ImapClient. r=mkmelin
https://hg.mozilla.org/comm-central/rev/5b49c4e18562
Use _actionInFolder to simplify code in ImapClient. r=mkmelin

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/5a549175d3ab
Fix test_autosync_date_constraints.js in debug build. r=mkmelin

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/9beb0a0575ef
Start idle only if ImapClient is still online. r=mkmelin

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/33b33fbfb571
Remove old draft when saving new draft in imap-js. r=mkmelin

_reset will clear the _urlListener, which is used to pass failedSecInfo to show exception dialog.

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/e314ed173f4c
Show cert exception dialog when creating account with STARTTLS in imap-js. r=mkmelin

Pushed by mkmelin@iki.fi: https://hg.mozilla.org/comm-central/rev/2455dae0e648 Enable test_offlinePlayback.js for imap-js. r=mkmelin
Pushed by mkmelin@iki.fi: https://hg.mozilla.org/comm-central/rev/e7b5389b068a Enable test_offlineStoreLocking and test_trustSpamAssassin for imap-js. r=mkmelin
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Keywords: leave-open
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: