Do not call requestStart/end multiple times when using push (#14228)
All HTTP request based push request invoke onRequestStart/End in the servlet.
We need to trigger start/end separately in push handler only for websocket messages
Change-Id: I16064ea88b0c70812f247028ddb23560536db70d
Reverting multiple commits that caused 100+ regression tests to fail.
Commits reverted:
* 392e8a0 - Minor refactor to #14147 patch
* 8d470c9 - Context menu is not shown in Table body on mobi... (#13694)
* f7dc719 - Fix Table stuck scroll position after setting ... (#14147)
Change-Id: I3f5ed7fa15a9cfebce7a57662d229bf46118c5d6
If for any reason a developer wants to parse the bootstrap html, this
constants allows easy identification of the bootstrap js.
Change-Id: I894cf6e22a7e6d9154c3c9124dda911a86a99475
Allow changing theme on the fly (#2874, #14139, #14124)
* Updates UI and overlay container class names when the theme changes
* Initially verifies that the theme has actually been loaded (for the embed case)
and class names have been properly set
* Forces a state change to all components to re-translate theme:// URLs
* Runs a full layout after the new theme has been loaded and activated
Change-Id: I5a7391abe1bb467130bbb4660e4829b43f3e4255
Disable automatic removal of trailing whitespace and reformatted using Luna
Automatic removal of trailing whitespaces in Eclipse does not work even
in a nearly consistent way across platforms, versions or even on the same
maching within the same workspaces. Saving the same file multiple times
even alternates between adding and removing a whitespace on empty block
comment lines when saving.
Change-Id: I0efd307fd48869ea688eb79aa77c9ba38de5a4a6
Client-side Grid header/footer rewrite: add default header support (#13334)
Currently supported:
* Adding and removal of header and footer rows
* Header is single-row by default
* Footer is zero-row by default
* Text captions
* Showing and hiding the whole header or footer
* Default header rows for sorting UI
TODO:
* Column spanning
* HTML content
* Widget content
* Component content
* Server side API
* Shared state handling
Change-Id: I3d6a2b75fad87780f83238ab792bbbcfe99a48fd
TextArea size get reset when css resize is set (#14080)
Listen to MouseUp event on the <textarea> and notify the state with the width and height if changed.
Add com.vaadin.client.Util.Size to manipulates the css width/height.
Change-Id: I96a308658d2877f1f6c05feaa7840a268bb06709
Grid header/footer rewrite: add partial shared state support (#13334)
Currently supported:
* Adding and removal of header and footer rows
* Header is single-row by default
* Footer is zero-row by default
* Text captions
* Showing and hiding the whole header or footer
* Passing captions and visibility in shared state
TODO:
* Column spanning
* HTML content
* Widget content
* Component content
* Sorting/Indicators
* Server side API
* Rest of shared state handling
Change-Id: Iddd1a596597c3b11ead50bd7d5d7011cd81e2c83
Improves performance of VaadinService.requestEnd(). (#14218)
Doing two times session.accessSynchronously is unnecessary effort in
multiple aspects:
* The session will be locked twice.
* CurrentInstances are set twice.
* CurrentInstances are restored twice.
* VaadinSession being checked for being the current via
VaadinService.verifyNoOtherSessionLocked(this);
When we leave requestEnd we unset all CurrentInstances. There is no need
to just restore them before doing so.
When we are in requestEnd, VaadinSession is set to "current" by
PushHandler.callWithUi() or VaadinService.handleRequest().
Also, the cleanupSession code does not need any of these thread locals,
so not having them set would also not hurt.
having an extra accessSynchronously call for just setting the duration
does not make a lot of sense. While it somehow wants to make the previous
accessSynchronously call to be counted completely into the duration it
invests an the same time that would have been left out additionally.
VaadinService removeClosedUIs is a cleanup which also locks and sets
CurrentInstances just to figure out that the UI it is checking is not
closing. This change moves that check out of ui.accessSynchronously.
In the end, the resulting code is a tiny bit less robust, however it
eliminates over 50% response time on trivial push request/responses.
Change-Id: If71d1dbbae5d1fd57d3d4e735c592fd263261a81
Remove csrfToken if disable-xsrf-protection is true (#14111)
If the server sends no token and the client value remains "init" then
it's not sent back to the server.
Change-Id: I74fc470c5c22d57c4a48eab3e4476ae4cc2dd242
Optimizes initial sizes of frequently used Collections. (#14223)
There are a few places in frequently used core classes which could
initialize collection classes with the correct (or slightly oversized)
length.
Maps are initialized with 2x the size due to its load factor.
Change-Id: I3aee5a60602937a8550ca5a200ec2a529ff36fe9
Optimize CurrentInstance.set(UI) and .set(VaadinSession). (#14220)
This change reduces the amount of intermediate steps taken to initialize
the thread locals for a given ui or vaadin session.
It mainly takes advantage of reusing the old values from the map in set()
instead of creating new ones to put into the "old" map which is returned.
Change-Id: I4dbaff973f46e73f8f3a0c285b14c97603f2d5a4
removes extra VaadinSession.setCurrent() from PushHandler. (#14222)
The setCurrent call on VaadinSession is not needed. the one extra call
can be saved because service.findVaadinSession will already set it.
Added a comment like it is done for UI (service.findUI will also set the
UI).
Change-Id: Ic24d922554d1316aae310813ef5d00a0bbfd418a
Fix overwrite mechanism for web.xml atmosphere init params (#14196).
Non obvious problem before. "config" is a property of AtmosphereFramework
which also has getInitParameter(String) method. So it compiles but does
not do what is intended: to check against the user defined web.xml
servlet init-prams.
(the variableName servletConfig has the same problem :-))
Change-Id: Ib02f0b94312327d482775456c2d63a904b1e8104
Avoid object creation in getAllChildrenIterable in most cases. (#14142)
API change from:
public static Iterable<ClientConnector> getAllChildrenIterable(final ClientConnector connector)
to
public static Iterable<? extends ClientConnector> getAllChildrenIterable(final ClientConnector connector)
avoids creating wrappers in case the component has either no subcomponents
or no extensions. This covers the vast majority of components.
Change-Id: I48ffd2f26f09c265fae6e1aaabdbaa655d52ffb8
This reverts commit 1b73b00b28 as
well as the related changes to @since, release notes etc.
Conflicts:
client/src/com/vaadin/client/ResourceLoader.java
client/src/com/vaadin/client/communication/TranslatedURLReference.java
client/src/com/vaadin/client/ui/ui/UIConnector.java
server/src/com/vaadin/ui/UI.java
shared/src/com/vaadin/shared/ui/ui/UIState.java
uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
Change-Id: Id882dc730f51055f6d17200964bcaf8a1f87a35f