Support loading of HTML imports using @HtmlImport (#8301)
Note that not all browsers yet support HTML imports. If a polyfill
is needed to load HTML imports, it must be loaded before HTML Imports
can be loaded. There is no automatic loading of any polyfills.
This allows selecting the widgetset name and URL simply by placing
a class in the default package if nothing is explicitly give by
the user. This can be used e.g. by the Maven plug-in and other build
automation tools to automatically generate widgetsets or use one
from CDN.
Change-Id: If3a7b35e3b25371e08e6d9b504fcda6f66de5119
Appending query param with vaadin version to js files (#12210)
while #7868 is supposed to solve the overall issue, this solves a big
part of the upgrade + cached files issues quickly.
When I use vaadin themes, I have control over how they are included, so
I can add a vaadin version number to it. For the default JS I cannot.
Change-Id: Ica1cddee417946aa32116eb09882a3dc6c2924a6
If for any reason a developer wants to parse the bootstrap html, this
constants allows easy identification of the bootstrap js.
Change-Id: I894cf6e22a7e6d9154c3c9124dda911a86a99475
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
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
Build a minified version of vaadinPush.js in vaadin-push.jar (#11630)
* Replaced jquery and jquery.atmosphere.js with original, unmodified versions
* Added vaadinPush.js build target to ide.xml and push/build.xml
* Uses yuicompressor to compress the resulting push javascript
Change-Id: I59ba9c2bbf74e05d10325d38efdb106b638cd8e7
Replaced Atmosphere portal implementation with the jQuery implementation (#11629)
* jquery-1.7.2.rebased.js and jquery.atmosphere.rebased.js are imported from atmosphere-jquery and updated to use the jQueryVaadin namespace instead of jQuery and $
Change-Id: I1461ac7803e90d2a40b390551023a118ed5dc704
* 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
* Fixed potential NPE by using existing helper method
* Pass /APP/ urls also to session handlers as at least GlobalResourceHandler requires it
* Fixed test to test /APP/ instead of /APP
Change-Id: I8d913e6a5509c63f8e47813fce5751f5279ed4fc
Refactored how all requests are handled by VaadinServlet and VaadinPortlet (#11192)
* Handling is now based on a list of RequestHandlers in VaadinService
* Request handling logic has been moved to VaadinService
* Users can customize the list by adding own (service level) request handlers
* For users specific request handlers you can still use the request handlers in VaadinSession
* Deprecated RequestType - all handlers are given the opportunity to handle a request until one of them chooses to handle it. RequestType makes no sense as it does not tell which handler will handle the request.
* Removed serveStaticResource which has never been used
Change-Id: Ia7d088535e46430ca8adf631d3f1dd944b9d51e2
Fixed locking in RequestHandlers and documented that RequestHandlers are called without locking (#9945)
* Added SynchronizedRequestHandler which locks the session for the whole request
* Made request handlers which do not do do heavy IO implement SynchronizedRequestHandler
* Fixed locking for GlobalResourceHandler, ConnectorResourceHandler, PublishedFileHandler
Change-Id: I0e7b442a9392828f1930685f194dc4f898d0f525
* Bootstrap installs a __gwtStatsEvent implementation for tracking GWT's
own bootstrap timing events
* Profiler.enter and Profiler.leave use __gwtStatsEvent
* Profiler data is displayed based on the data tracked by
__gwtStatsEvent
Change-Id: I3db05ca2622aecb745270f01d47cd71648e3bebd