gristlabs_grist-core/app/client/ui
Dmitry S a91d493ffc (core) Fix issue with 'UNEXPECTED ORDER OF CALLBACKS' in Client.ts.
Summary:
- Substantial refactoring of the logic when the server fails to send some
  messages to a client.
- Add seqId numbers to server messages to ensure reliable order.
- Add a needReload flag in clientConnect for a clear indication whent the
  browser client needs to reload the app.
- Reproduce some potential failure scenarios in a test case (some of which
  previously could have led to incorrectly ordered messages).
- Convert other Comm tests to typescript.
- Tweak logging of Comm and Client to be slightly more concise (in particular,
  avoid logging sessionId)

Note that despite the big refactoring, this only addresses a fairly rare
situation, with websocket failures while server is trying to send to the
client. It includes no improvements for failures while the client is sending to
the server.

(I looked for an existing library that would take care of these issues. A relevant article I found is https://docs.microsoft.com/en-us/azure/azure-web-pubsub/howto-develop-reliable-clients, but it doesn't include a library for both ends, and is still in review. Other libraries with similar purposes did not inspire enough confidence.)

Test Plan: New test cases, which reproduce some previously problematic scenarios.

Reviewers: paulfitz

Reviewed By: paulfitz

Differential Revision: https://phab.getgrist.com/D3470
2022-06-16 23:51:14 -04:00
..
AccountPage.ts (core) Migrate to SRP and add change password dialog 2022-03-16 21:35:06 -07:00
AccountWidget.ts (core) Product update popups and hosted stripe integration 2022-06-08 21:10:49 +02:00
AddNewButton.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
ApiKey.ts (core) Hide API key when it's not selected 2022-02-21 17:26:45 -08:00
App.css (core) Cleanup removing some old unused files, fixing logo.css, and removing #grist-app. 2020-10-09 17:04:09 -04:00
App.ts (core) Fix issue with 'UNEXPECTED ORDER OF CALLBACKS' in Client.ts. 2022-06-16 23:51:14 -04:00
AppHeader.ts (core) Product update popups and hosted stripe integration 2022-06-08 21:10:49 +02:00
AppUI.ts (core) Use new Banner component for activation messages 2022-06-13 10:20:31 -07:00
BillingForm.ts (core) Product update popups and hosted stripe integration 2022-06-08 21:10:49 +02:00
BillingPage.ts (core) Use new Banner component for activation messages 2022-06-13 10:20:31 -07:00
BillingPageCss.ts (core) add a way to change subdomain in billing pages 2021-08-19 21:22:41 -04:00
BillingPlanManagers.ts (core) Implement DiscourseConnect to enable easy sign-in to community forum 2021-10-01 11:24:22 -04:00
BottomBar.ts (core) Making side bars a bit more usable for narrow screen 2021-01-19 15:22:01 +01:00
buttons.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
CellContextMenu.ts (core) Adding new command Duplicate rows 2022-04-20 17:29:48 +02:00
CodeHighlight.ts (core) Update UI for formula and column label/id in the right-side panel. 2021-03-17 01:35:56 -04:00
ColumnFilterMenu.ts (core) Fix filtering of empty reflists 2022-06-11 00:16:57 +02:00
contextMenu.ts (core) Show default context menu on link 2022-02-18 10:09:36 +01:00
CustomSectionConfig.ts (core) Custom Widget column mapping feature. 2022-02-08 17:41:04 +01:00
CustomThemes.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
DocHistory.ts (core) Fix JS error when switching from DocHistory to ActionLog too quickly. 2020-12-11 14:33:29 -05:00
DocMenu.ts (core) Product update popups and hosted stripe integration 2022-06-08 21:10:49 +02:00
DocMenuCss.ts (core) Product update popups and hosted stripe integration 2022-06-08 21:10:49 +02:00
DocTour.ts (core) Use auto popup placement for DocTour on mobile 2021-12-16 16:06:15 +02:00
DocumentSettings.ts (core) add gvisor-based sandboxing to core 2022-03-24 17:04:49 -04:00
errorPages.ts (core) Add page titles to login and error pages 2022-06-12 20:31:09 -07:00
ExampleCard.ts (core) Polish UI/UX of onboarding popups 2021-07-30 15:44:18 +02:00
ExampleInfo.ts (core) Redesign examples and templates UI 2021-07-28 12:29:03 -07:00
FieldConfig.ts (core) Conditional formatting rules 2022-03-23 13:15:02 +01:00
FieldMenus.ts (core) Initial data tables page 2022-02-10 12:46:19 +02:00
FileDialog.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
FilterBar.ts (core) Allow filtering hidden columns 2021-11-22 10:26:08 -08:00
forms.ts (core) In Welcome questionnaire, add 'School' option, ask to enter company or school 2020-11-02 14:05:31 -05:00
googleAuth.ts (core) Extending Google Drive integration scope 2021-10-01 10:47:12 +02:00
GridOptions.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
GridViewMenus.ts (core) Initial data tables page 2022-02-10 12:46:19 +02:00
HomeImports.ts (core) Adding import from google drive to the home screen 2021-08-05 20:46:11 +02:00
HomeIntro.ts (core) Hide 'helpCenter' and 'templates' elements in HomeIntro when requested 2022-06-07 19:00:25 -04:00
HomeLeftPane.ts (core) Allow configuring (mostly hiding) various little bits of UI 2022-05-27 14:32:05 +02:00
LeftPanelCommon.ts (core) Allow configuring (mostly hiding) various little bits of UI 2022-05-27 14:32:05 +02:00
MakeCopyMenu.ts (core) Update design of empty docs home page, and add a "Manage Team" button. 2022-06-03 12:58:57 -04:00
MenuToggle.ts (core) Context menu for cards. 2021-06-29 15:29:56 +02:00
modals.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
mouseDrag.ts (core) Add our very own implementation of tokenfield (aka pillbox, tag list) 2021-05-03 17:16:24 -04:00
MultiSelector.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
NotifyUI.ts (core) Allow configuring (mostly hiding) various little bits of UI 2022-05-27 14:32:05 +02:00
OnBoardingPopups.ts (core) Fix bugs when both welcomeTour and docTour are available 2022-03-22 16:51:05 -04:00
OpenUserManager.ts (core) Update design of empty docs home page, and add a "Manage Team" button. 2022-06-03 12:58:57 -04:00
PagePanels.ts (core) Add document usage banners 2022-04-25 08:14:52 -07:00
Pages.ts (core) Updating RawData views 2022-05-04 21:41:42 +02:00
PageWidgetPicker.ts (core) Redirect less often in welcomeNewUser 2022-06-06 11:26:49 -07:00
PinnedDocs.ts (core) Fix staging test and tweak template line height 2021-07-29 08:16:19 -07:00
ProductUpgradesStub.ts (core) repair grist-ee build and add smoke test 2022-06-13 13:54:14 -04:00
resizeHandle.ts Initial config with a few files that build on client and server side. 2020-05-20 00:50:46 -04:00
RightPanel.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
RowContextMenu.ts (core) Adding new command Duplicate rows 2022-04-20 17:29:48 +02:00
selectBy.ts (core) Disambiguate label for link between summary table and source table with self reference 2022-06-07 17:07:45 +02:00
sendToDrive.ts (core) Extending Google Drive integration scope 2021-10-01 10:47:12 +02:00
setupPage.ts (core) Broadcast doc usage updates to clients 2022-06-06 09:55:34 -07:00
shadowScroll.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
ShareMenu.ts (core) Polish Access Details 2022-05-19 09:45:26 -07:00
SiteSwitcher.ts (core) Product update popups and hosted stripe integration 2022-06-08 21:10:49 +02:00
TemplateDocs.ts (core) Redesign examples and templates UI 2021-07-28 12:29:03 -07:00
Tools.ts (core) Show usage banners in doc menu of free team sites 2022-05-26 15:01:35 -07:00
tooltips.ts (core) Broadcast doc usage updates to clients 2022-06-06 09:55:34 -07:00
TopBar.ts (core) Update design of empty docs home page, and add a "Manage Team" button. 2022-06-03 12:58:57 -04:00
TopBarCss.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
transientInput.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
transitions.ts (core) Show a welcome card when a user opens an example for the first time. 2020-09-09 23:08:50 -04:00
TreeViewComponent.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
TreeViewComponentCss.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
TriggerFormulas.ts (core) Formula UI redesign 2021-11-05 13:07:30 +01:00
UserImage.ts (core) Polish Access Details 2022-05-19 09:45:26 -07:00
UserItem.ts (core) annotate shares listed in UserManager for documents 2021-10-25 14:29:19 -04:00
UserManager.ts (core) Update design of empty docs home page, and add a "Manage Team" button. 2022-06-03 12:58:57 -04:00
ViewLayoutMenu.ts (core) Initial data tables page 2022-02-10 12:46:19 +02:00
viewport.ts (core) Make mobile the default mode. 2021-02-25 11:31:43 -05:00
ViewSectionMenu.ts (core) Initial data tables page 2022-02-10 12:46:19 +02:00
VisibleFieldsConfig.ts (core) Fix some bugs with repositioning rows. 2022-06-07 16:55:45 -04:00
WelcomePage.ts (core) Add new Grist login page 2022-04-01 15:24:19 -07:00
WelcomeQuestions.ts (core) Remove code for unused welcome flows 2022-02-28 13:21:28 -08:00
welcomeTour.ts (core) Fix bugs when both welcomeTour and docTour are available 2022-03-22 16:51:05 -04:00
WidgetTitle.ts (core) Updating RawData views 2022-05-04 21:41:42 +02:00
widgetTypes.ts (core) move client code to core 2020-10-02 13:24:21 -04:00