Comment 14 for bug 888504

Revision history for this message
In , Ggmalheiros (ggmalheiros) wrote :

Yes its not a fix.
I think i found the problem.
on file calendar-js/calDavRequestHandlers.js on function wH_endElement, the code implemented in response-sync(that is no more implemented Collection Synchronization for WebDAV draft-daboo-webdav-sync-06 ) was not put refs in itemsNeedFetching array. so the process never get to multiget function.

So
file : components/calDavCalendar.js
    not comment line 1305.

On file calendar-js/calDavRequestHandlers.js
from line 574 a put this code:

            //case "response": // WebDAV Sync draft 3
            // break;
            case "response": // WebDAV Sync draft 0,1,2
                let r = this.currentResponse;
                // Deleted item
                if (r.href && r.href.length &&
                    r.status &&
                    r.status.length &&
                    r.status.indexOf(" 404") > 0) {
                    if (this.calendar.mPathIndex[r.href]) {
                        this.changeCount++;
                        this.calendar.deleteTargetCalendarItem(r.href);
                    }
                    else {
                        cal.LOG("CalDAV: skipping unfound deleted item : " + r.href);
                    }
                }
                else if (r.href &&
                    r.href.length) {
                    r.href = this.calendar.ensureDecodedPath(r.href);
                    this.itemsNeedFetching.push(r.href);
                    break;
                // Only handle Created or Updated calendar items
                } else if (r.getcontenttype &&

With this code the Icloud works fine with webdav-sync ( Collection Synchronization for WebDAV)