autodetect remote calendar type so user doesn't need to pick (with DNS or .well-known)
Categories
(Calendar :: Provider: CalDAV, enhancement)
Tracking
(thunderbird_esr78+ wontfix, thunderbird81 fixed)
People
(Reporter: dmosedale, Assigned: pmorris)
References
(Blocks 1 open bug)
Details
(Whiteboard: [no l10n impact])
Attachments
(16 files, 6 obsolete files)
|
6.25 KB,
text/plain
|
Details | |
|
32.12 KB,
image/jpeg
|
Details | |
|
2.41 KB,
patch
|
Fallen
:
review+
Fallen
:
approval-calendar-beta+
|
Details | Diff | Splinter Review |
|
18.66 KB,
image/png
|
Details | |
|
29.66 KB,
image/png
|
Details | |
|
47 bytes,
text/x-phabricator-request
|
rjl
:
approval-comm-beta+
|
Details | Review |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
aleca
:
ui-review+
Fallen
:
feedback+
|
Details | Review |
|
8.08 KB,
image/svg+xml
|
Details | |
|
24.01 KB,
image/png
|
Details | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review | |
|
47 bytes,
text/x-phabricator-request
|
Details | Review |
Comment 1•20 years ago
|
||
Updated•19 years ago
|
Comment 2•19 years ago
|
||
| Reporter | ||
Comment 3•18 years ago
|
||
Comment 4•18 years ago
|
||
Comment 5•17 years ago
|
||
Comment 6•17 years ago
|
||
Comment 7•17 years ago
|
||
Comment 8•17 years ago
|
||
Comment 9•17 years ago
|
||
Updated•17 years ago
|
Updated•17 years ago
|
Comment 10•17 years ago
|
||
Comment 11•17 years ago
|
||
Comment 12•17 years ago
|
||
Comment 14•17 years ago
|
||
Updated•17 years ago
|
Comment 15•17 years ago
|
||
Comment 16•16 years ago
|
||
Comment 17•16 years ago
|
||
Comment 18•15 years ago
|
||
Comment 19•15 years ago
|
||
Comment 20•14 years ago
|
||
Comment 21•13 years ago
|
||
Comment 22•13 years ago
|
||
Comment 23•13 years ago
|
||
Comment 25•11 years ago
|
||
Comment 27•11 years ago
|
||
Comment 28•11 years ago
|
||
Comment 29•11 years ago
|
||
Comment 30•11 years ago
|
||
Updated•11 years ago
|
Comment 34•11 years ago
|
||
Updated•11 years ago
|
Comment 41•8 years ago
|
||
Comment 42•8 years ago
|
||
Comment 43•8 years ago
|
||
Comment 44•7 years ago
|
||
Comment 45•7 years ago
|
||
Comment 46•7 years ago
|
||
Comment 47•7 years ago
|
||
Comment 48•7 years ago
|
||
Comment 49•7 years ago
|
||
Comment 50•7 years ago
|
||
Comment 51•7 years ago
|
||
Comment 52•7 years ago
|
||
Comment 53•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Comment 54•7 years ago
|
||
Updated•6 years ago
|
Comment 56•6 years ago
|
||
This patch depends on bug 1546606 and applies on an older version of c-c, please see bug 1546606 for the parent. I'm dumping it here because it doesn't look like I will get to this any time soon, but I'd like it to be finished. Magnus, can you find someone to work on this?
There are two parts to it, mainly because hg got confused when I had them both in one. Maybe the hg mv'ing around is not really great. I'm fine adapting the filenames differently if necessary.
Comment 57•6 years ago
|
||
This is the actual meat. What we may want to do is de-xpcom the new classes, as we're aiming to get rid of it. I'm fairly certain there are no tests in this patch, but some of those would be good too.
Updated•6 years ago
|
Comment 59•5 years ago
|
||
| Assignee | ||
Comment 60•5 years ago
•
|
||
Thanks Khushil! I've now got the patch mostly un-bit-rotted by converting various things to the new ways to do them. Still WIP.
- I've omitted the "other" tab for now since we no longer support WCAP calendars (bug 1579020) and birthday calendars appear to be unimplemented. (Those were the two options in the "other" tab.) We can add this back when needed.
- I left out the gdata changes since it is now in its own repo.
- I've kept the two new XPCOM classes as XPCOM for now.
- Creating local calendars works.
- TODO: Troubleshoot issues when trying to set up a remote google calendar, do further testing.
- TODO: calendar-list-tree no longer exists, so will need to use a richlistbox instead, like we've done elsewhere
- TODO: add an email field to local calendar tab, as in the current dialog.
Here are a few screenshots. (I know the input fields should be wider.)
| Assignee | ||
Comment 61•5 years ago
•
|
||
As you type in an email address, the domain appears in the location field. (You can still type something into the location field if you want to override it.) There's no need to choose "CalDAV" or "ICS" as in the current dialog; it is automatically detected.
If you check the box for "doesn't require credentials" the username, password, and "use password manager" rows are immediately hidden.
| Assignee | ||
Comment 62•5 years ago
|
||
| Assignee | ||
Comment 63•5 years ago
|
||
Depends on D78369
| Assignee | ||
Comment 64•5 years ago
|
||
This is the main patch for this bug that Philipp wrote, with
various changes made to counter bit rot and update some parts.
For example WCAP calendars are no longer supported and the
gData provider is now in its own repo, so I have removed
these parts. That includes the "other" tab since it contained
WCAP and birthday calendars, and birthday calendars are not
implemented yet.
The bit rot changes include using HTML table instead of XUL grid,
using static XPCOM component registration in components.conf
files, updating module import syntax, replacing
calendar-list-tree (no longer exists) with a richlistbox,
using 'addEventListener' instead of 'ondialogaccept' attributes
since the latter were not working, updating things related
to <dialog> now being a child of <window>, etc.
Depends on D78370
| Assignee | ||
Comment 65•5 years ago
|
||
Depends on D78371
Updated•5 years ago
|
| Assignee | ||
Comment 66•5 years ago
•
|
||
I just uploaded my current WIP patches so Philipp can take a look, particularly for how to do the de-xpcom part. (Apologies for the churn. When using phabricator I guess I should leave the 'r?darktrojan' out of the commit messages until I'm actually ready for review.)
Edit: I've used comments with "AUTODETECT" to mark places where I know there are still things to do.
Comment 67•5 years ago
|
||
(In reply to Paul Morris [:pmorris] from comment #64)
For example WCAP calendars are no longer supported and the
gData provider is now in its own repo, so I have removed
these parts. That includes the "other" tab since it contained
WCAP and birthday calendars, and birthday calendars are not
implemented yet.
When I wrote this, I was trying to keep extensibility in mind. Add-ons may be adding different types of calendars, some can do autodetection based on few information, others might require a specific URL, others might not need anything at all. The birthdays case was for example to account for the ThunderBirthday extension.
Even if these are empty (and thus hidden) now, it would allow provider extensions to be more flexible.
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
| Assignee | ||
Comment 68•5 years ago
•
|
||
Thanks Philipp for the feedback. I've just uploaded a new WIP revision that:
- addresses almost all of your comments
- has a working first pass on the de-xpcom parts like we discussed
- is now working for subscribing to network calendars
- includes some other minor improvements
(In reply to Philipp Kewisch [:Fallen] [:📆][:🧩] from comment #67)
When I wrote this, I was trying to keep extensibility in mind.
Ah, okay, that makes sense. I have some questions, so will try to set up a meeting to discuss extensibility details and a few other items like the TODOs for filterprovider and preferprovider, etc.
| Assignee | ||
Comment 69•5 years ago
•
|
||
On extensibility, maybe there are better options than having an "other" tab. Having an "other" tab implies that things in it don't fit under the "on my computer" or "on the network" tabs. For example, technically "birthdays" would be "on my computer" and WCAP (if still supported) would be "on the network". So for those to be under "other" is not that bad but not ideal either.
What if, instead of tabs at the top, there was a list on the left side where add-ons could add new options below "on the computer" and "on the network". (Like "birthdays" in this image.) That avoids having an "other" category and you don't have to click on "other" to see what's under there. All the options are visible at the top level.
(You could do the same thing with the tabs at the top, allowing add-ons to add new tab types, but I think the sidebar list would be better for use of space. Also picking an item from a list seems more in line with this kind of dialog flow than the tabs at the top.)
Alex, I'd be curious to hear what you think.
Comment 70•5 years ago
|
||
That's interesting, thanks for the NI on this.
I'm not sure about the sidebar list because, even if it's a good concept to organize and allowing the implementation of multiple sections, it doesn't translate very well in the context of a dialog.
A sidebar takes up too much space, that's why we use those in Tabs, and since this is a creation wizard, you don't really need to always see the other options once you make the decisions of creating a specific calendar.
Probably I missed something from previous comments (apologies if my questions are silly or already answered) but is there any specific reason why we don't want to keep the initial radio button selection?
Another solution might be reusing the styling of the Account Central by implementing those styled hub buttons for the different calendar types.
| Assignee | ||
Comment 71•5 years ago
|
||
Thanks Alex. I've discussed some of these UI/UX details with Philipp, Magnus, and Alex over the last two days, and here are the main take-aways:
- go back to using the radio button selection for the first view (for "on my computer" or "on the network"), rather than tabs or sidebar
- probably show no password field (and no "save password with password manager" checkbox) on the first "on the network" view
- then if a password is needed, ask for it on the next view (along with a "save password with pwd manager" checkbox)
- by default check the "use pwd manager to save this pwd" checkbox, for consistency with email setup wizard
- maybe disable rather than hide the username field when "no credentials" checkbox is checked, to prevent jumpiness (if this works well)
- for the calendar properties view, don't allow edits to username or calendar name (e.g. like location which is already read-only there)
There are further improvements that we want to do, but that's for a future iteration. (For example, streamlining setting up calendars for existing email accounts, etc.)
| Assignee | ||
Comment 72•5 years ago
•
|
||
Another UI question. How to handle when the user has already subscribed to some of the network calendars found by auto-detection:
- Don't include already subscribed calendars in the list of calendars that you can subscribe to.
- Show them in the list but disabled so their text and color circle are greyed out and you can't check their checkbox.
1 is simpler but the user won't see all the calendars for a given provider in the list, which might be confusing. With 2 the user can see all their calendars for a provider in the list but some of them are disabled.
I have 2 working, since Philipp's patch was already moving in that direction (see comment below). It would be easy to switch to 1 if we want that. If we want 2, then if all the calendars are already subscribed, we'd want a string to indicate that (as Philipp mentions in the comment below). We don't have such a string right now and the string freeze date has passed.
Another approach (also involving a new string) would be to add something like this to the names of the disabled calendars in the list:
[ ] Thunderbird Events (Already Subscribed)
In the attached image the first two calendars in the list are disabled (already subscribed) and you cannot check their check box.
Philipp's comment on this from his patch:
// Remove existing calendars first. In the future we may just show them with special UI, but
// then we also need a string to show in case all calendars are already subscribed.
Comment 73•5 years ago
|
||
I agree with solution 2.
Show the already subscribed calendar disabled to let the user know that we found them but he doesn't need to do anything.
The (Already subscribed) string would be a really nice addition, but I guess it's not possible since we missed the string freeze window.
| Assignee | ||
Comment 74•5 years ago
|
||
Thanks aleca, that makes sense to me.
I've uploaded a new revision of the patches to Phabricator that, among other things (like adding email field to local calendar panel), implements the changes from comment 71, (except for "for the calendar properties view, don't allow edits to username or calendar name" which I haven't gotten to yet).
The way I've done the separate password step could be more efficient, but it should be sufficient to get it working. More testing of edge cases is needed. (When an authentication error occurs, advance to the password screen to allow entering a password, then do everything again but now with the password. Ideally we'd use the results from the first attempt to only do what was really needed on the second attempt.)
I've started to update the existing tests. The browser_localICS.js test is still failing, and I haven't had time to fully investigate, but it looks like there might be an issue there beyond just updating the test.
There are various refinements left to do, but I've uploaded another WIP patch in case anyone wants to take a look or test it out.
Updated•5 years ago
|
| Assignee | ||
Comment 75•5 years ago
|
||
Updated the main patch again.
- Added support for subscribing to local ICS files (needed for one of the tests).
- Existing tests updated and working.
- Existing tests converted to mochitest style.
- Password prompt is now a separate prompt rather than a panel in the dialog (per discussions with Magnus and Alex).
- Changes to calendar color and name are reflected in the calendar list.
Main outstanding tasks:
- Extensibility: make it easier for add-ons to add UI (radio button on first panel and panel with iframe they can add UI to, like cloudfile provider)
- Write tests.
- Add more assertions to existing tests.
UI questions:
- "no credentials" check box, currently disables username and clears it. Is this working like we want? Previously it hid (and cleared) the username, password, and "save password" elements.
- Now that we've changed the password flow, "save password in password manager?" is never asked or answered in the oauth flow (e.g. google calendar).
Comment 76•5 years ago
|
||
For OAuth2, "save password" is not really a thing. What you really save is the token anyway... Using it without saving "passwords" would be very cumbersome - and it's also not supported when accessing mail with OAuth2 authentication.
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
| Assignee | ||
Comment 77•5 years ago
|
||
To allow for add-ons that want to add their own UI to this
dialog for particular calendar types (e.g. birthdays).
Depends on D78371
| Assignee | ||
Comment 78•5 years ago
|
||
Comment on attachment 9154333 [details]
Bug 306495 - Implement a new calendar creation dialog. r=darktrojan
Thanks Magnus for answering that Oauth question, glad it's not an issue.
Patches are ready for review now. I'm also flagging aleca for ui-review and Fallen for feedback on these patches. The three cases I've been focusing on are 1. local calendars, 2. caldav calendars (e.g. fastmail), 3. oauth calendars (google).
The existing tests are updated to work. The next step on my list is to write more tests to better cover the new functionality. I can do that either in another patch on this bug before landing or we could do it as a follow-up if we want to go ahead and land this to get some experience with it on nightly.
Updated•5 years ago
|
Updated•5 years ago
|
Comment 79•5 years ago
|
||
Comment on attachment 9154333 [details]
Bug 306495 - Implement a new calendar creation dialog. r=darktrojan
removing the UI review flag as the patch has bitrotted.
| Assignee | ||
Comment 80•5 years ago
|
||
Also refactor the previously unused error handling code to make
it work for this.
Depends on D78371
| Assignee | ||
Comment 81•5 years ago
|
||
And rename from "autodetect" to "detect" or "detection" everywhere.
Depends on D82231
| Assignee | ||
Comment 82•5 years ago
|
||
Comment on attachment 9154333 [details]
Bug 306495 - Implement a new calendar creation dialog. r=darktrojan
Requesting ui-review now that the patches are updated to address Geoff's review. Here is the order to use when applying the patches.
- Bug 306495 - Make changes to
openLocalCalendarfunction. r=darktrojan - Bug 306495 - Move openLocalCalendar out of calendar-creation.js. r=darktrojan
- Bug 306495 - Implement a new calendar creation dialog. r=darktrojan
- Bug 306495 - Always reject the
CalDavResponseBase.respondedpromise with an error. r=darktrojan - Bug 306495 - Convert
Autodetectmodule tocal.provider.detection. r=darktrojan - Bug 306495 - Make the calendar creation dialog more extensible. r=darktrojan
(See the "Downloading a patch from Phabricator" section here: https://pypi.org/project/MozPhab/ for how to download a series of patches all in one command using moz-phab.)
Comment 83•5 years ago
|
||
Comment on attachment 9154333 [details]
Bug 306495 - Implement a new calendar creation dialog. r=darktrojan
Marking this ui-r+ to match the comments left on Phabricator
| Assignee | ||
Comment 84•5 years ago
|
||
Thanks aleca, I've made those changes. I've rebased on top of bug 1650925, and everything is still working as expected. I haven't uploaded the latest versions to phab yet since it would add that extra patch as well. Better to wait for it to land first.
Since there's more to do on the 'extensibility' patch it may make sense to go ahead with landing the others and then finalize the extensibility patch afterwards. So here's a try run without the extensibility patch: https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=eed1767333148c2e719cc3a1085c0494d5bf653a
Updated•5 years ago
|
| Assignee | ||
Comment 85•5 years ago
|
||
Depends on D81005
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
| Assignee | ||
Comment 86•5 years ago
|
||
All patches have now been reviewed, and the review comments addressed. Here's a try run, recently started:
https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=142d216fa26fe1018bf20c08c55f3df780b5367b
| Assignee | ||
Comment 87•5 years ago
|
||
Depends on D83567
| Assignee | ||
Comment 88•5 years ago
|
||
Here's a new try run with a new patch added to fix the browser_calendarList test:
https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=2213c6a6c73510c0501a5d05f61d7132614d1057
The two failing windows tests are a mystery. I couldn't figure them out by looking at the try logs and don't have a windows machine handy at the moment to try and fix them. Maybe we could go ahead and land this and file a bug for those tests and fix them in a follow-up? (Once the new patch is reviewed.)
| Assignee | ||
Comment 89•5 years ago
|
||
Made some changes Geoff suggested in code review. Here's a new try run, which looks good except for the same windows failures. I think we should fix them in a follow-up so we can go ahead and land these changes, since I don't have access to a windows machine at the moment.
https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=3ee4653181395856ceef9c61dad84885ee5a6d88
| Assignee | ||
Comment 90•5 years ago
|
||
I'm happy to do the landing on this, since it's several patches.
Comment 91•5 years ago
|
||
You shouldn't land it with known failures. For that you'd at least have to add a patch to disable those tests, get review, then leave this bug open to fix them.
From the logs, I'd guess the problem is the (right) window doesn't have/get focus as expected, so the bowser_basicFunctionality.js test doesn't run.
| Assignee | ||
Comment 92•5 years ago
|
||
This test was failing on Windows for some reason, so remove
the mozmill parts.
Depends on D85620
| Assignee | ||
Comment 93•5 years ago
|
||
Here is the latest try run. The windows failure for browser_basicFunctionality.js is still there, after rewriting the test in mochitest style and adding a line to focus the window. I don't have access to a windows machine to troubleshoot it locally. Not sure what's causing the problem. Geoff, do you have any ideas?
Try run:
https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=d154e94472ad5039a8b55cf04afdbe4fc5d4285b
Log where the failure is happening:
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=312606987&repo=try-comm-central&lineNumber=2711-2720
Comment 94•5 years ago
|
||
Try putting Services.focus.focusedWindow = window; in the cleanup function. You want it to happen after the test does its thing, not before it. No other great ideas I'm afraid.
| Assignee | ||
Comment 95•5 years ago
|
||
(In reply to Geoff Lankow (:darktrojan) from comment #94)
Try putting
Services.focus.focusedWindow = window;in the cleanup function. You want it to happen after the test does its thing, not before it. No other great ideas I'm afraid.
I gave that a try but got the same failure: https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=d93d1a8e84b199affc5baebfe3ef0a58ac1be4cc&selectedTaskRun=bJ8b5rt2Tt-SYvtTlhs0zA.0
Updated•5 years ago
|
| Assignee | ||
Comment 96•5 years ago
|
||
All patches are reviewed, and per Geoff's suggestion I've disabled the test that was failing on windows for now (only disabled on windows). So this is ready to land.
Comment 97•5 years ago
|
||
Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/55ca0c018533
Make changes to openLocalCalendar function. r=darktrojan
https://hg.mozilla.org/comm-central/rev/3267048c6fc8
Move openLocalCalendar out of calendar-creation.js. r=darktrojan
https://hg.mozilla.org/comm-central/rev/e02191ac356d
Implement a new calendar creation dialog. r=darktrojan
https://hg.mozilla.org/comm-central/rev/2b27e47b6985
Make the calendar creation dialog more extensible. r=Fallen
https://hg.mozilla.org/comm-central/rev/39c6f1c56fbd
Improve provider preference handling for calendar detection. r=Fallen
https://hg.mozilla.org/comm-central/rev/77ce4d218966
Fix the browser_calendarList.js mochitest. r=darktrojan
https://hg.mozilla.org/comm-central/rev/437c9b55e071
Remove mozmill code from browser_basicFunctionality.js test. r=darktrojan
https://hg.mozilla.org/comm-central/rev/2dff15f0c150
Improve error handling in calendar detection code. r=darktrojan,Fallen
https://hg.mozilla.org/comm-central/rev/d6c3a697d63c
Convert Autodetect module to cal.provider.detection. r=darktrojan
Comment 98•5 years ago
|
||
Please if there are many phab patches in the bug make sure they are all stacked up. Otherwise it's a bit of work to find out how to get them all landed at once.
| Assignee | ||
Comment 99•5 years ago
|
||
Glad to help with this. Can you say more about what you mean by "all stacked up"? Do you mean just putting "part 1", "part 2" etc. in the commit messages?
Comment 100•5 years ago
|
||
I think the last 3 patches (of the landed) were not connected to the series. Didn't check the details, but I guess they didn't (all) have a parent changeset in the patches to land and were thus independent?
-> lando as well as using moz-phab to grab the patches would only automatically want to land 6 of the patches
| Assignee | ||
Comment 101•5 years ago
|
||
Huh, they are all in a series for me locally. When I do hg log I see a parent listed for only the first commit. Maybe there's something I need to do when running moz-phab.
Comment 102•5 years ago
|
||
Comment on attachment 9154330 [details]
Bug 306495 - Make changes to openLocalCalendar function. r=darktrojan
[Triage Comment]
For all commits in comment 97. Approved by pmorris via Matrix.
https://hg.mozilla.org/comm-central/rev/55ca0c018533
https://hg.mozilla.org/comm-central/rev/3267048c6fc8
https://hg.mozilla.org/comm-central/rev/e02191ac356d
https://hg.mozilla.org/comm-central/rev/2b27e47b6985
https://hg.mozilla.org/comm-central/rev/39c6f1c56fbd
https://hg.mozilla.org/comm-central/rev/77ce4d218966
https://hg.mozilla.org/comm-central/rev/437c9b55e071
https://hg.mozilla.org/comm-central/rev/2dff15f0c150
https://hg.mozilla.org/comm-central/rev/d6c3a697d63c
Comment 103•5 years ago
|
||
| bugherder uplift | ||
Thunderbird 81.0b3:
https://hg.mozilla.org/releases/comm-beta/rev/9b162bc01ae6
https://hg.mozilla.org/releases/comm-beta/rev/165fcb63f9c3
https://hg.mozilla.org/releases/comm-beta/rev/00761c3607c3
https://hg.mozilla.org/releases/comm-beta/rev/c8c85671d457
https://hg.mozilla.org/releases/comm-beta/rev/ee4ed0b36e84
https://hg.mozilla.org/releases/comm-beta/rev/7f0999d4a9bd
https://hg.mozilla.org/releases/comm-beta/rev/a306df9065ca
https://hg.mozilla.org/releases/comm-beta/rev/df7e75ecf827
https://hg.mozilla.org/releases/comm-beta/rev/08c5698909b3
Updated•5 years ago
|
Comment 104•4 years ago
|
||
I don't think we'll be able to uplift to 78. Too many loose ends.
Description
•