ICS calendars can't be set up anymore
Categories
(Calendar :: Provider: CalDAV, defect, P1)
Tracking
(thunderbird_esr78 unaffected, thunderbird82+ affected)
Tracking | Status | |
---|---|---|
thunderbird_esr78 | --- | unaffected |
thunderbird82 | + | affected |
People
(Reporter: mkmelin, Assigned: pmorris)
References
(Regression)
Details
(Keywords: regression)
Attachments
(1 file)
As reported on #maildev, ICS calendars can't be subscribed to anymore. Super likely due to bug 306495.
E.g. the Thunderbird event calendar: https://calendar.google.com/calendar/ical/jgarvd0cmlt3599e7gthhk01a8%40group.calendar.google.com/public/basic.ics but I tried other ICS too and it's not possible to subscribe.
AFAIKT existing subscribed calendars still work.
Assignee | ||
Comment 1•4 years ago
|
||
The problem is the ICS calendar detection code tries various requests, including PROPFIND, HEAD, and PUT, but not a GET. Not all servers support HEAD, so the solution is to also try a GET request. That succeeds for e.g. the Thunderbird event calendar in the description above.
As Philipp mentioned on chat, ideally we could cancel the GET request after the headers were complete, since all we need for detection is the headers. I looked into this but couldn't figure out a way to do it, so I'm going ahead with a simple GET solution to fix the regression.
Try run in progress: https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=ae6e106803426423ec060176b2fde3870bde60fa
Adding "cancel GET request after headers" can be done as a follow-up improvement. Below are some notes about that.
How to cancel a request: https://searchfox.org/mozilla-central/source/netwerk/base/nsIRequest.idl#66
How to tell when the headers have been received is elusive, the closest thing seems to be via notificationCallbacks
for the channel.
I looked at nsIProgressEventSink with its onStatus method: https://searchfox.org/mozilla-central/source/netwerk/base/nsIProgressEventSink.idl#68 but in the calendar code that's only a stub here: https://searchfox.org/comm-central/source/calendar/providers/ics/CalICSCalendar.jsm#1070 And Philipp mentioned that it doesn't take http into account, so not helpful for knowing when the headers are done.
Philipp also mentioned that there are "general http-on-examine-response observer notifications that might be usable as a hack, but they fire for all http requests".
Assignee | ||
Comment 2•4 years ago
|
||
Assignee | ||
Updated•4 years ago
|
Comment 3•4 years ago
|
||
I doubt it's worth figuring out how to cancel the GET request. Once the network connection is set up and the data is being transferred, is any calendar going to be so large (especially after compression) that it makes a significant delay?
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 4•4 years ago
|
||
Updated•4 years ago
|
Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/b12d85b106ef
Fix detecting and setting up ICS calendars. r=darktrojan
Reporter | ||
Updated•4 years ago
|
Description
•