Our overall guideline is the type names for events are singular, and the list of
events of that type are plural. 'subscriptions' was not following this guideline
and (potentially as a result) had a bug where it was impossible for clients to explicitly
subscribe to subscription change events properly.
(imported from commit 7b3162141fd673746e0489199966c29ea32ee876)
Chrome was showing a memory leak after many auto-reloads. Emptying the
the collections and removing the event listeners reduces the severity.
Before this change 40 reloads would would grow to about 140MB, now it
stays around 50MB.
(imported from commit 55fbeff9bdd0363bb95929f2981a2de238ff35d8)
Add try/catch blocks to get_updates_success and send a blueslip error on
errors we catch. This will let get_updates_success return successfully
so that the next call to get_updates will start immediately.
(imported from commit 44d8b85d9d8e930a5552a5fbf4af1d0e5e8c07e8)
Both pointer and last are fields that were removed when we changed the
protocol to use events like a year ago.
This conveniently allows us to stop exporting get_updates_params to
other modules.
(imported from commit 13651ee240ce6e1bafb241b185e5ef653c348cdf)
Previously, we waited until we'd fully loaded the home view to start
calling get_events, which:
(A) didn't make sense non-message related events
(B) resulted in our throwing "get_updates not started" errors when
users sent a message before the home view was fully loaded.
This commit only fixes problem (B); to fix problem (A) we will need to
change the event capture code to only capture some events.
(imported from commit 2aacd6bdfd1e7d7707e3a724f1fde7da4a556538)
Note that this makes the event fire after the home view has messages
loaded all the way to current; previously it only waited for the first
batch of messages to load.
(imported from commit a5c408ea0136c761f4cc77e8be4977b13acc6d77)