Closed
Bug 855334
(gaia-caldav2)
Opened 11 years ago
Closed 11 years ago
[meta] Add support for Google Calendar CalDAV v2 prior to September 16th (they shutdown the old entrypoint!!!)
Categories
(Firefox OS Graveyard :: Gaia::Calendar, defect)
Firefox OS Graveyard
Gaia::Calendar
Tracking
(Not tracked)
RESOLVED
FIXED
1.0.1 IOT1 (10may)
People
(Reporter: jlal, Assigned: jlal)
References
Details
(Keywords: late-l10n, meta, Whiteboard: [status: UX spec on its way][madrid])
Attachments
(2 files, 3 obsolete files)
Google is not shutting down CalDAV support but they are adding a new authentication layer which we don't support yet. We must fill out the form (see herehttps://developers.google.com/google-apps/calendar/caldav) (we are in the process of this now) and once we obtain the documentation we can implement changes required for the new Google entrypoint.
Assignee | ||
Comment 1•11 years ago
|
||
To be clear... the calendar will absolutely break on google if we don't fix this...
blocking-b2g: --- → tef?
Comment 2•11 years ago
|
||
For context to those triaging - read http://googleblog.blogspot.co.uk/2013/03/a-second-spring-of-cleaning.html for clarity. We don't fix this, we lose google calendar import support for v1 after Sept 16th on FF OS devices.
Comment 3•11 years ago
|
||
We need to block on this per comment 1. Triage team, please mark blocking. Thanks.
Updated•11 years ago
|
blocking-b2g: tef? → tef+
Updated•11 years ago
|
status-b2g18:
--- → affected
status-b2g18-v1.0.1:
--- → affected
Assignee | ||
Comment 5•11 years ago
|
||
I will take this one... We need to signup with Google first ( sent a email to :clee with the details and someone in product will follow up). The work mostly involves integrating their oauth2 layer (or so I was told)... I suspect this is a very small amount of work but we need to get the new entrypoint & docs to start.
Assignee: nobody → jlal
Flags: needinfo?(jlal)
Comment 6•11 years ago
|
||
Amelie - can you help us understand the latest we could still make this small change, given it's dependent upon an external process with Google? Kevin - can you add our other partner contacts to verify the same?
Flags: needinfo?(mei.kong)
Flags: needinfo?(khu)
Comment 7•11 years ago
|
||
(In reply to James Lal [:lightsofapollo] from comment #5) > We need to signup with Google first ( sent a email to :clee with the details > and someone in product will follow up) For those playing along at home, I spoke with clee and James is going to do the follow up here :)
Comment 8•11 years ago
|
||
(In reply to Alex Keybl [:akeybl] from comment #6) > Amelie - can you help us understand the latest we could still make this > small change, given it's dependent upon an external process with Google? > > Kevin - can you add our other partner contacts to verify the same? Better to have it before June 20th.
Flags: needinfo?(mei.kong)
Comment 9•11 years ago
|
||
Firefox_Mozilla@126.com, could we have your comments here? Thanks!
Flags: needinfo?(khu)
Updated•11 years ago
|
Whiteboard: [status: james please update once review Google info]
Updated•11 years ago
|
Whiteboard: [status: james please update once review Google info] → [status: james please update once review Google info][madrid]
Updated•11 years ago
|
Target Milestone: --- → Madrid (19apr)
Comment 10•11 years ago
|
||
Just noting to those that are tracking stuff - we're blocked here until we get an update from Google. Which likely isn't happening this week.
Updated•11 years ago
|
Whiteboard: [status: james please update once review Google info][madrid] → [status: needs legal input AND needs technical solution][madrid]
Assignee | ||
Comment 11•11 years ago
|
||
OK, I have the Google document detailing how to setup the caldav account. The issue is we must supply a Google API Key which provides likely need to supply themselves. My working theory is to create a build step where a JSON file must be provided that contains the API Key details. We will need to figure out the best way to get QA testing with our mozilla keys for now. I am not 100% sure yet but we may also need UX input depending on how we authenticate. I will start implementing the technical side now and post more details soon.
Assignee | ||
Comment 12•11 years ago
|
||
Sorry for the misspelling. "...is we must supply a Google API Key which __partners__ likely need to supply themselves."
Assignee | ||
Comment 13•11 years ago
|
||
We will likely need an oauth2 flow for this (which is unfortunate) as it may require user input to re-authenticate more frequently (not sure how often) then just the first login =/. We can likely avoid new strings/UX issues but this is going to be fairly jarring for the end-user I suspect. I will post some screenshots soon.
Assignee | ||
Comment 14•11 years ago
|
||
Another concern is the "refresh" tokens... periodic sync requires no user input in the typical CalDAV case but we _may_ need to prompt the user if we are offline for some period of time (looks like an hour). To avoid this we can hit the google oauth server for token refreshes while online but that only mitigates part of the problem...
Comment 15•11 years ago
|
||
The more discussion goes on this about the complexity, the more I'm thinking that the testing requirements on this bug is almost going to require a full blown test run with the google calendar integration again. Am I right?
Comment 16•11 years ago
|
||
(In reply to Jason Smith [:jsmith] from comment #15) > The more discussion goes on this about the complexity, the more I'm thinking > that the testing requirements on this bug is almost going to require a full > blown test run with the google calendar integration again. Am I right? I'd say so. We're milestoning this for 5/10 since this work needs to be frontloaded to accommodate for the above test run and cert cycles.
Target Milestone: 1.0.1 Madrid (19apr) → 1.0.1 IOT1 (10may)
Assignee | ||
Comment 17•11 years ago
|
||
OK, so we have a number of different issues... I think it makes sense to turn this into a metabug so we can show more progress here and attempt to front-load the part we need to test heavily first. - oAuth 2.0 authentication flow to get api key / allowing CalDAV to interact over oAuth 2 - handling cases where our refresh tokens expire after the user signs up (we need to have them re-authenticate again) - we need to add a build step so third-parties can declare their own google API keys. --- What we can do is land the initial work with a temporary API key so we can immediately start testing with partners while they get their own API keys and then delete the temp one prior to launch. I am still operating under the assumption everyone will need their own API key.
Updated•11 years ago
|
Flags: needinfo?(rmacdonald)
Comment 18•11 years ago
|
||
Quick update on UX status - James, Casey and I met this afternoon and here's the summary: - The flow for happy cases is similar to gmail contacts import and, as a result, involves minimal new UI - If the calendar fails to sync, due to a token expiry, password change or otherwise, we need to design exception cases. We discussed showing error notifications in the utility tray and within the app itself. Within the app, we would have a one time notification and an error icon indicator within the drawer and settings. Tapping on this would bring the user back to the third party website where they can re-authenticate. - If the user re-authenticates using another account with the same service, the existing calendar data will be replaced with the data for the new account. - James is targeting this for completion on May 10 - This means the UX spec and visuals are required by May 3. I've created a needsinfo for Przemek to confirm his availability next week. James, let me know if I've missed anything. - Rob
Flags: needinfo?(rmacdonald) → needinfo?(pabratowski)
Comment 19•11 years ago
|
||
(In reply to Rob MacDonald [:robmac] from comment #18) > Quick update on UX status - James, Casey and I met this afternoon and here's > the summary: > > - The flow for happy cases is similar to gmail contacts import and, as a > result, involves minimal new UI Marking with late-l10n so that others are aware of the new UX. We should be looking for the *absolute minimum* code/UX changes and string additions here. Make this as simple as possible.
Keywords: late-l10n
Comment 20•11 years ago
|
||
(In reply to Alex Keybl [:akeybl] from comment #19) > (In reply to Rob MacDonald [:robmac] from comment #18) > > Quick update on UX status - James, Casey and I met this afternoon and here's > > the summary: > > > > - The flow for happy cases is similar to gmail contacts import and, as a > > result, involves minimal new UI > > Marking with late-l10n so that others are aware of the new UX. We should be > looking for the *absolute minimum* code/UX changes and string additions > here. Make this as simple as possible. Completely agree. When UX gets an initial spec up, let's get a spec review here by a l10n reviewer to check for if they are okay with the strings being introduced.
Comment 21•11 years ago
|
||
So next steps for UX are: * Create new UX (and VxD?) specs; * There's a possibility of a new flow here, and hence new strings; let's get those to 110n ASAP; * Confirm Przemek's availability to work on this with the May 3 deadline in mind. Let me know if this is a Rob+Przemek or if Przemek can take point on this (more solo).
Assignee | ||
Comment 22•11 years ago
|
||
Keep in mind the code timelines do _not_ include the time it may take for partners to get their own API keys... We can reasonably say that if it works for our API keys it will work for theirs but that is not a guarantee.
Assignee | ||
Comment 23•11 years ago
|
||
Updated•11 years ago
|
Whiteboard: [status: needs legal input AND needs technical solution][madrid] → [status: UX spec on its way][madrid]
Assignee | ||
Comment 24•11 years ago
|
||
Turning this into a metabug we have multiple steps here.
blocking-b2g: tef+ → ---
Keywords: meta
Summary: Add support for Google Calendar CalDAV v2 prior to September 16th (they shutdown the old entrypoint!!) → [meta] Add support for Google Calendar CalDAV v2 prior to September 16th (they shutdown the old entrypoint!!)
Assignee | ||
Comment 25•11 years ago
|
||
Pointer to Github pull-request
Assignee | ||
Comment 26•11 years ago
|
||
Comment on attachment 744441 [details] Pointer to Github pull request: https://github.com/mozilla-b2g/gaia/pull/9500 targeted wrong bug #
Attachment #744441 -
Attachment is obsolete: true
Comment 27•11 years ago
|
||
Stephany Wilkes changed story state to started in Pivotal Tracker
Comment 28•11 years ago
|
||
Posting draft flows for team feedback. I look forward to everyone's comments. Also, can we link from the utility tray to the account settings view for the account that is not working?
Comment 29•11 years ago
|
||
Rob's spec it attached; please review. Clearing needinfo for Przemek: per Rob and Przemek, VxD is no longer needed. The icon required already existed and Rob has it.
Flags: needinfo?(pabratowski)
Comment 30•11 years ago
|
||
Comment on attachment 745245 [details]
Draft - Calendar oauth exception handling (for discussion)
Putting feedback on myself, James, and Kevin to provide feedback on the spec.
Attachment #745245 -
Flags: feedback?(kgrandon)
Attachment #745245 -
Flags: feedback?(jsmith)
Attachment #745245 -
Flags: feedback?(jlal)
Assignee | ||
Updated•11 years ago
|
Attachment #745245 -
Flags: feedback?(l10n)
Comment 31•11 years ago
|
||
Comment on attachment 745245 [details]
Draft - Calendar oauth exception handling (for discussion)
My feedback comments:
Generally makes sense to me with some scope and l10n refinement. We need to be really careful about scope here vs. balancing UX concerns vs. balancing l10n risk. Some of these UX concepts explored in the spec are great ideas, but I am concerned about the quality & l10n risk this poses given how late we're making changes here in 1.01. I'm going go into more detail below, but my general suggestion is that we should only introduce new UX with new strings when it's absolutely necessary and reuse existing UX in other cases to reduce schedule vs. quality vs. l10n risk.
Page 5 Comments
I think the sync error notification is a good idea in it's concept, but I think we should cut it from the 1.01 scope since 1) it's new UX with l10n strings and a custom button, so there's l10n and quality risk there 2) there's existing UX we can use here for sync failures to reduce change risk.
For the service auth view, I believe that the window.open UI design states that we should use an X, not a back button there for doing off-origin authentication. One thing I'm concerned about here that's outside of the UX scope is that we're relying on consuming Google web-based content in this workflow, which has been known to have a large amount of web compatibility problems on FF OS. If there's ways we can reduce our exposure to Google's web content, then we should do that if possible, as that avoid getting hit by the large array of compatibility problems Google's sites have on FF OS.
Page 6 Comments
I think the accounts drawer warning icon concept is a good idea, but not blocking for 1.01 in terms of UX needed here. We might need to keep this out of scope for 1.01 as a result.
The calendar settings warning icon concept is a good idea, but not blocking for 1.01 in terms of uX needed here. We might need to keep this out of scope for 1.01 as a result.
The account settings screen appears to be an entirely new UX. Specific comments on this design are:
* I think to avoid introducing a new string, let's use "Remove local data" instead of "Remove account"
* The manage account, display name, and the associated text box feels awkward and a forced feature to take up space. See the page 7 comments for more discussion on this.
Page 7 Comments
The account settings UI feels awkward anyways for including the display name concept - it's almost like we're forcing a feature here with low value to take up space. I would rather suggest cutting that feature and keeping around a status for if we're synced or not and allowing for sign in if need be (remember, the changed password use case can happen, so we shouldn't force the user to enter an error state to allow them to resign in if they already know they need to sign in again).
Page 11 Comments
I'd keep the concepts of this page out of scope for 1.01.
Attachment #745245 -
Flags: feedback?(jsmith) → feedback+
Comment 32•11 years ago
|
||
Comment on attachment 745245 [details]
Draft - Calendar oauth exception handling (for discussion)
I'd prefer to comment on the final patch, once there is one and it does actually need new strings. Cancelling feedback request for now.
Attachment #745245 -
Flags: feedback?(l10n)
Comment 33•11 years ago
|
||
Updated based on current feedback - details to be added within the bug comments.
Attachment #745245 -
Attachment is obsolete: true
Attachment #745245 -
Flags: feedback?(kgrandon)
Attachment #745245 -
Flags: feedback?(jlal)
Comment 34•11 years ago
|
||
(In reply to Jason Smith [:jsmith] from comment #31) > Comment on attachment 745245 [details] > Draft - Calendar oauth exception handling (for discussion) > > Page 5 Comments > > For the service auth view, I believe that the window.open UI design states > that we should use an X, not a back button there for doing off-origin > authentication. Thanks! Fixed in spec. > * I think to avoid introducing a new string, let's use "Remove local data" > instead of "Remove account" "Remove local data" isn't clear and suggests that the account will be retained but the data will be removed. The term "Remove account" is used in the title of the dialog that is triggered when tapping this button. If possible, I'd like to use this string in the button as it's much clearer. > * The manage account, display name, and the associated text box feels > awkward and a forced feature to take up space. See the page 7 comments for > more discussion on this. Agreed. Replaced with sync status as per your suggestion. I've posted a revised spec based on this feedback (attachment 746260 [details]). The updated version also includes proposed utility tray notifications. Thanks again and let me know if you have any additional comments.
Comment 35•11 years ago
|
||
Rob Macdonald changed story state to delivered in Pivotal Tracker
Comment 36•11 years ago
|
||
(In reply to Rob MacDonald [:robmac] from comment #34) > (In reply to Jason Smith [:jsmith] from comment #31) > > > * I think to avoid introducing a new string, let's use "Remove local data" > > instead of "Remove account" > > "Remove local data" isn't clear and suggests that the account will be > retained but the data will be removed. The term "Remove account" is used in > the title of the dialog that is triggered when tapping this button. If > possible, I'd like to use this string in the button as it's much clearer. Right, I agree here in it's concept. I'm just wondering if we need to be careful switching the string here, given that it's going to cause us to deliver another translated string as a result. > > > * The manage account, display name, and the associated text box feels > > awkward and a forced feature to take up space. See the page 7 comments for > > more discussion on this. > > Agreed. Replaced with sync status as per your suggestion. > > I've posted a revised spec based on this feedback (attachment 746260 [details] > [details]). The updated version also includes proposed utility tray > notifications. Thanks again and let me know if you have any additional > comments. Looks fine overall.
Assignee | ||
Comment 37•11 years ago
|
||
Jason- we don't use window.open here yet... once/if we can redirect we will use that functionality. We basically re-implement basic browser functionality (using mozbrowser).
Assignee | ||
Comment 38•11 years ago
|
||
@robmac: on page 7 the steps 6,7 don't seem particularly useful? (and add strings) Can we simply reuse the existing "we are setting up your account" flow and then redirect them back to the account list? ^ same with page 8 #4 #5 Icons + unable to sync should make it fairly clear when things fail... There is also the possibility of rolling failures ( basically we can never authenticate ) which is the worst case... Not sure how we would handle that or if we should invest for that particular error.
Comment 39•11 years ago
|
||
Updated based on feedback from James and others. - Modified final two views of calendar settings and flow to remove sync status and maintain consistency with current implementation.
Attachment #746260 -
Attachment is obsolete: true
Comment 40•11 years ago
|
||
The warning icon that was used for email is available here: https://bug813404.bugzilla.mozilla.org/attachment.cgi?id=690871 (It's part of bug 813404.) - Rob
Comment 41•11 years ago
|
||
Stephany Wilkes changed story state to accepted in Pivotal Tracker
Comment 42•11 years ago
|
||
Please note use of string "Unable to sync". Flagging Stas for L10N. - Rob
Flags: needinfo?(stas)
Comment 43•11 years ago
|
||
Please use needinfo if you needinfo, or if there's something else actionable. Which also implies that once there is something actionable, you should explicitly tell stas or I, as otherwise it may very well get lost in our bugmail.
Flags: needinfo?(stas)
Updated•11 years ago
|
Flags: in-moztrap?(jsmith)
Updated•11 years ago
|
Alias: gaia-caldav2
Assignee | ||
Comment 44•11 years ago
|
||
Update- Integrated up to first error flow (which landed in master) on my testing version of v1.0.1 https://github.com/lightsofapollo/gaia/tree/calendar-integration-v1.0.1 We did early testing for success flows and that part looks good... I still would like to spend some time re-testing everything for the error flow on v1.0.1 (tomorrow morning). I have just gotten it to the point where the conflicts are resolved and tests pass.
Assignee | ||
Comment 45•11 years ago
|
||
OK- I tested manually (in addition to the passing unit test suite for v1.0.1) throughout the day... All the basic operations worked for me (in combination) so I uplifted so others can begin testing (on v1.0.1)... Its important to note that we have the following new strings: modify-account-unable-to-sync=Unable to sync modify-account-sign-in=Sign in notification-error-sync-title=Calendar sync error notification-error-sync-description=Tap for more info @Pike- We tried to keep this to a minimum and given the new flows I think this is fairly decent (but obviously > 0 ;) ). I will leave this open so we can add any new bugs we find and for any final UX/string changes we may need as a result of partner testing.
Flags: needinfo?(l10n)
Updated•11 years ago
|
status-b2g18:
affected → ---
status-b2g18-v1.0.1:
affected → ---
Comment 46•11 years ago
|
||
James - Can you do the remaining uplifts in the bug dependencies here for b2g18? I'd like to make sure our 1.1 test run captures testing on this feature as well.
Flags: needinfo?(jlal)
Updated•11 years ago
|
Flags: needinfo?(l10n)
Updated•11 years ago
|
Summary: [meta] Add support for Google Calendar CalDAV v2 prior to September 16th (they shutdown the old entrypoint!!) → [meta] Add support for Google Calendar CalDAV v2 prior to September 16th (they shutdown the old entrypoint!!!)
Comment 48•11 years ago
|
||
Bug bash notes for reference for testing here - https://etherpad.mozilla.org/gaia-calendar-oauth-bug-bash
Comment 49•11 years ago
|
||
Testing and development work is finished here. Closing.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Updated•11 years ago
|
Flags: in-moztrap?(jsmith) → in-moztrap?
Updated•10 years ago
|
Flags: in-moztrap?
You need to log in
before you can comment on or make changes to this bug.
Description
•