Henri Sara [Wed, 28 Aug 2013 09:34:53 +0000 (12:34 +0300)]
Use the add() path of CssLayout only when appending to the end (#11284)
This should get the benefits of the previous optimization on initial
rendering without negatively affecting the performance when modifying a
layout with complex non-leaf children.
Henri Sara [Thu, 22 Aug 2013 08:55:38 +0000 (11:55 +0300)]
Optimize large Vertical/HorizontalLayout client side (#12420, #10899)
Spacing is now only handled at the beginning and end of hierarchy
updates, not for every component separately.
Some more profiling data on potential hotspots is also generated when
Profiler is used.
Henri Sara [Thu, 22 Aug 2013 08:03:47 +0000 (11:03 +0300)]
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.
John Ahlroos [Thu, 22 Aug 2013 08:10:18 +0000 (11:10 +0300)]
Fixed failing TabKeyboardNavigation test #12433
The test fails on Opera 12 since the assertText is done before the
tabsheet has had time to change the tab content. Added a small waiting
period after the tab is changed before the assert is made to fix the
issue.
John Ahlroos [Wed, 21 Aug 2013 11:51:50 +0000 (14:51 +0300)]
Fixed test broken by PopupDateField communication change #6252
After #6252 the value is no longer communicated to the server
immediatly but only once the popup is closed. Changed the test to assume
the new behaviour.
John Ahlroos [Wed, 21 Aug 2013 10:34:37 +0000 (13:34 +0300)]
Fixed test broken by fixes to drag&drop #12406
Due to the fixes to the VDragAndDropManager the drop location became a
lot more accurate and so changed where the drops were made in the test.
To fix it I adjusted the pixel position within the drop target element to account for the
changed accuracy.
John Ahlroos [Tue, 20 Aug 2013 10:30:47 +0000 (13:30 +0300)]
Fixed DragAndDropWrapper using wrong drop target in IE8 #12406
VDragAndDropManager was assuming that the target element will always be
inside the cloned "drag image" element while dragging. This assumption
is false since the "drag image" can be 0x0px or transparent effectivly
disabling dragging.
Since Testbench 2 is also very flaky in using the Vaadin locators with
the drag/drop commands I replaced the locators with shorter locators
using a debug id to make the test more readable and stable.
Henrik Paul [Thu, 15 Aug 2013 05:59:03 +0000 (08:59 +0300)]
Make sure that no fileIds are replayed to the client (#12330)
Due to how ProxyReceivers are constructed and serialized, we don't want
to resend the ProxyReceivers for files that already are in the queue.
Either we needed to change the way ProxyReceivers behave, or just make
sure that they aren't resent. I chose the double-check method.
Disable failing calendar Actions Menu Test (#12181)
This test cannot be completed in a smart fashion until TestBench 3 is in
use, because of differences in the DOM structure created by GWT for IE
and Opera, versus Webkit and Gecko browsers. TB2 requires identical DOM
structure for assertion queries to work.
The session might be invalidated before lockSession() acquires the lock.
Check if the session is still valid after locking and ensure
SessionExpiredException is thrown if not.
Fabian Lange [Wed, 17 Jul 2013 09:44:57 +0000 (11:44 +0200)]
Fixes parsing of multiple push messages in streaming mode (#12197)
The current atmosphere code can handle messages split up using the message
length header. But it does not handle the case where the header is actually
split up itself.
This patch solves it by making sure the length header stays intact.
Corresponding atmosphere ticket:
https://github.com/Atmosphere/atmosphere/issues/1199
John Ahlroos [Fri, 26 Jul 2013 08:07:36 +0000 (11:07 +0300)]
Fixes button :active state on firefox #12126
When doing event.preventDefault() firefox will not trigger the :active
selector intentionally (see
https://bugzilla.mozilla.org/show_bug.cgi?id=771241).
Event.preventDefault() was added to prevent text selection in #10917
but it actually is not needed since the button also uses the
user-select:none css attribute which effectivly prevents the text selection.
Also now applying the previously browser specific (ie,opera) .v-pressed
classname to all browsers to make styling of the pressed state a bit easier
to do for all browsers and not reliant on the :active pseudo-class which is a
non-standard pseudo-class.
John Ahlroos [Thu, 25 Jul 2013 06:53:50 +0000 (09:53 +0300)]
Fixes light theme window sprites #12171
The close buttons images for the Window black theme was mistakenly
added to the white theme sprite and ended up in the middle of the
light theme window. Moved the black theme button images to the
black theme sprite.
Fabian Lange [Thu, 13 Jun 2013 13:11:39 +0000 (15:11 +0200)]
When InputStream cannot be opened while writing static resource response, display 404 instead of 500 (#10920)
A security audit revealed that it is possible to trigger an error 500 with
stack trace by just trying a directory traversal. An example of this can be
found in the sampler: http://demo.vaadin.com/sampler/VAADIN/widgetsets/
While there are other scenarios that can produce exceptions, in this place
Vaadin can handle it more graceful by just catching the exception and
returning 404.
Fabian Lange [Thu, 13 Jun 2013 12:51:08 +0000 (14:51 +0200)]
Make UploadInterruptedException visible (#12070)
When another threads interrupts the Upload, the UploadInterruptedException is
thrown. The respective StreamVariable will receive
streamingFailed(StreamingErrorEvent event) which contains the causing exception
via event.getException(). When the UploadInterruptedException is not public, it
is impossible to react on it in the StreamVariable (e.g. treating an
IOException differently from an UploadInterruptedException).