Closed Bug 1854422 Opened 8 months ago Closed 8 months ago

iCal web subscription Thunderbird 115.2.x does not load

Categories

(Calendar :: ICAL.js Integration, defect, P2)

Thunderbird 115

Tracking

(thunderbird_esr115+ fixed, thunderbird119 fixed)

RESOLVED FIXED
120 Branch
Tracking Status
thunderbird_esr115 + fixed
thunderbird119 --- fixed

People

(Reporter: alieber, Assigned: darktrojan)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

Steps to reproduce:

Go to Calendar tab, select add new calendar. Add a ical calendar url, for example https://ics.calendarlabs.com/75/b214553f/UK_Holidays.ics

No credentials used or needed.

Actual results:

No events add to calendar. Tried disabling and re-enabling this calendar and others (I have private urls not used in this example). I have exited Thunderbird and re-entered. Other calendar that are not thunderbird have no trouble loading these feeds.

Expected results:

Events should be added to calendar. Until a recent 115.2 update they did update successfully.

I have created a new calendar at the same calendar provider and its events do load, so it appears there is some format of ical event that Thunderbird is not happy with in the prior calendar. If there is a private way to share a feed/link, I can provide.

I have narrowed what is going on. If i create a new calendar with an ical feed, and the only event has a start and end time during the day, it is fine. If I switch that event to "All Day" then the feed is no longer interpreted in Thunderbird 115, and will never be again, even if i switch it back to a time of day event, so something gets permanently broken in Thunderbird's storage and/or parsing. Of course, there never used to be an issue with all day events in ical feeds.

So, here's a single event feed that doesn't work, then one that does:

Doesn't work

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Webmail/Webmail Calendar 1.0//EN
METHOD:PUBLISH
X-WR-CALNAME:Hi
BEGIN:VTIMEZONE
TZID:US/Eastern
BEGIN:DAYLIGHT
TZNAME:EDT
DTSTART:20220313T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZNAME:EST
DTSTART:20221106T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART:20230928
DTEND:20230929
CLASS:PUBLIC
UID:67846e7900b1c1a7e104f4b7089d64bc805c3faf
LOCATION:
DESCRIPTION:
SUMMARY:Test
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

Does work

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Webmail/Webmail Calendar 1.0//EN
METHOD:PUBLISH
X-WR-CALNAME:Hi
BEGIN:VTIMEZONE
TZID:US/Eastern
BEGIN:DAYLIGHT
TZNAME:EDT
DTSTART:20220313T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZNAME:EST
DTSTART:20221106T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;TZID=US/Eastern:20230928T080000
DTEND;TZID=US/Eastern:20230928T083000
CLASS:PUBLIC
UID:67846e7900b1c1a7e104f4b7089d64bc805c3faf
LOCATION:
DESCRIPTION:
SUMMARY:Test
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

For the failing I get

Error: invalid date-time value: "2023-09-28" Ical.jsm:6044:13
    fromDateTimeString resource:///modules/calendar/Ical.jsm:6044
    decorate resource:///modules/calendar/Ical.jsm:826
    _decorate resource:///modules/calendar/Ical.jsm:3080
    _hydrateValue resource:///modules/calendar/Ical.jsm:3063
    getValues resource:///modules/calendar/Ical.jsm:3231
    propertyIterator resource:///modules/CalICSService.jsm:486
    next self-hosted:1390
    getNextProperty resource:///modules/CalICSService.jsm:507
    getFirstProperty resource:///modules/CalICSService.jsm:502
    icalProperty resource:///modules/calendar/utils/calIteratorUtils.sys.mjs:164
    next self-hosted:1390
    setItemBaseFromICS resource:///components/calItemBase.js:928
    set icalComponent resource:///modules/CalEvent.jsm:162
    run resource:///modules/CalIcsParser.jsm:260


Component: Untriaged → Provider: ICS/WebDAV
Product: Thunderbird → Calendar

Seems libical didn't care about that though.

Component: Provider: ICS/WebDAV → ICAL.js Integration

(In reply to Magnus Melin [:mkmelin] from comment #4)

Seems libical didn't care about that though.

AFAIK ical.js cares in strict mode but would accept the value in non-strict mode.

I think we're using lenient mode already - https://searchfox.org/comm-central/rev/dccde521af98ee163a00c471c606a1d2c95ddab0/calendar/base/src/calICSService-worker.js#18
Or does that pref need to be set elsewhere as well?

Flags: needinfo?(geoff)

I think you're right, it's gone missing: it exists twice in 102.

Setting this property disappeared when libical was removed. I've added it to calUtils.jsm because that should get loaded before anything tries to use ical.js.

Assignee: nobody → geoff
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Severity: -- → S2
Flags: needinfo?(geoff)
Priority: -- → P2

Thanks Martin for noticing the discrepancy, and thanks Geoff for fixing!
This is likely what's causing many of the vague calendar problem reports we got on upgrade.

Target Milestone: --- → 120 Branch

Pushed by martin@humanoids.be:
https://hg.mozilla.org/comm-central/rev/bea7459df29b
Set ICAL.design.strict to false in the main thread. r=mkmelin

Status: ASSIGNED → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED

Comment on attachment 9355732 [details]
Bug 1854422 - Set ICAL.design.strict to false in the main thread. r=#thunderbird-reviewers

[Approval Request Comment]
Regression caused by (bug #): bug 1787097
User impact if declined: importing some (all?) ical files broken
Testing completed (on c-c, etc.): on c-c since Friday
Risk to taking this patch (and alternatives if risky): this patch just returns a setting to what we had before, there should be no risk

Attachment #9355732 - Flags: approval-comm-esr115?
Attachment #9355732 - Flags: approval-comm-beta?
Keywords: regression
Regressed by: 1787097

Comment on attachment 9355732 [details]
Bug 1854422 - Set ICAL.design.strict to false in the main thread. r=#thunderbird-reviewers

[Triage Comment]
Approved for beta

Thanks for the quick patch

Attachment #9355732 - Flags: approval-comm-beta? → approval-comm-beta+

Comment on attachment 9355732 [details]
Bug 1854422 - Set ICAL.design.strict to false in the main thread. r=#thunderbird-reviewers

[Triage Comment]
Approved for esr115

Attachment #9355732 - Flags: approval-comm-esr115? → approval-comm-esr115+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: