This change adds a new ApplicationStopped event which is triggered
whenever the ApplicationConnection marks the application as stopped.
This event is listened by the UIConnector and will terminate any polling
that might be currently done.
Change-Id: I5e698fba7a94f530f69a9f6f554eea896c370824
Optimize resetting of state when detaching components (#10899, #11284)
This has a significant impact on some older browsers, especially IE8.
This change also adds hierarchy update profiling statements to
help find hotspots.
Change-Id: Id7025776f8606794ba1d7aef99e2c37832b0c6bb
Remove previously added attribute for WAI-ARIA live area
Set overlay container as live area instead
Change-Id: Ie75c2993fdb42f29f307cbd294ae3352d2ef1ce3
Verify CSRF token before accepting new CSRF connection (#11635)
* Can't open push connection during client-side init because CSRF token
is not available at that point. This allows simplifying the
initialization because the push state will not be checked until the
first response has been processed.
* Add helper for checking the CSRF token
Change-Id: I31da1ac669dc9a581cbd66f58c07f10ea4b8b676
* Add PushConnection interface and rename old class to
AtmospherePushConnection
* Define deferred binding to use AtmospherePushConnection by default
* Redesign connection and disconnection workflow to better cope with
situations where connection is quickly toggled
Change-Id: I9b9427c2df40d446a25895eb39e7b166cb929a85
For optimal performance, the script will still be included in the host
HTML if push is enabled when the UI is bootstrapped.
Change-Id: I2245b45434f3097c32fd3580267f692dce3b7649
Don't process push messages until init JSON is processed (#11529)
* The test is not running reliably in all browsers, but assuming this is
a symptom of other push issues and not related to this particular bug.
Change-Id: I848b57502aa01467b0f60624cf599247ec76f32f
* Asynchronous bidirectional communication
* Use Atmosphere as a backend
* Use websockets if available, fallback to HTTP streaming
* Push mode (disabled, manual, automatic)
* Configurable via servlet parameter pushMode
* Disabled: The default; regular AJAX communication
* Manual: Need explicit UI.push() call
* Automatic: push all UIs in session when lock released
* UI.push()
* Push pending state and RPC to client asynchronously
* Must hold session lock when invoking
Change-Id: Idb5978ac81f7ff1e66665df4e3f96e29e4c419d4
Enable setting loading indicator delays from the server (#7448)
* Refactored LoadingIndicator to a separate class on client side to enable customization and to remove clutter from ApplicationConnection
Change-Id: I12e94294beed9c65a5710bdfe2486bc0f1b92bd9
Removed CommunicationManager and PortletCommunicationManager
* Moved AbstractCommunicationManager abstract methods
getThemeResourceAsStream and createBootstrapHandler to VaadinService
* Made ACM non-abstract and renamed to LegacyCommunicationManager
* Lifted anonymous inner BootstrapHandler subclasses into named public classes
Change-Id: I31739ce8a506d572e75ca8cd5509be215e01693d
Do @DelegateToWidget based on applicable properties (#10954)
This change improves performance by itself and is needed for avoiding
the dependency on StateChangeEvent.getChangedProperties()
Change-Id: I590bc98e12bbb4ecaaa972b5f49c62dea91ac06c