private static Element createJavaScriptElement(String sourceUrl) { return createJavaScriptElement(sourceUrl, true); }
private static Element createInlineJavaScriptElement( String javaScriptContents) { // defer makes no sense without src: // https://developer.mozilla.org/en/docs/Web/HTML/Element/script Element wrapper = createJavaScriptElement(null, false); wrapper.appendChild( new DataNode(javaScriptContents, wrapper.baseUri())); return wrapper; }
private static Element getPushScript(BootstrapContext context) { VaadinRequest request = context.getRequest(); // Parameter appended to JS to bypass caches after version upgrade. String versionQueryParam = "?v=" + Version.getFullVersion(); // Load client-side dependencies for push support String pushJSPath = ServletHelper.getContextRootRelativePath(request) + "/"; if (request.getService().getDeploymentConfiguration() .isProductionMode()) { pushJSPath += ApplicationConstants.VAADIN_PUSH_JS; } else { pushJSPath += ApplicationConstants.VAADIN_PUSH_DEBUG_JS; } pushJSPath += versionQueryParam; return createJavaScriptElement(pushJSPath); }
private static void setupFrameworkLibraries(Element head, JsonObject initialUIDL, BootstrapContext context) { inlineEs6Collections(head, context); appendWebComponentsPolyfills(head, context); if (context.getPushMode().isEnabled()) { head.appendChild(getPushScript(context)); } head.appendChild(getBootstrapScript(initialUIDL, context)); head.appendChild(createJavaScriptElement(getClientEngineUrl(context))); }
private static Element createDependencyElement( BootstrapUriResolver resolver, LoadMode loadMode, JsonObject dependency, Dependency.Type type) { boolean inlineElement = loadMode == LoadMode.INLINE; String url = dependency.hasKey(Dependency.KEY_URL) ? resolver.resolveVaadinUri( dependency.getString(Dependency.KEY_URL)) : null; final Element dependencyElement; switch (type) { case STYLESHEET: dependencyElement = createStylesheetElement(url); break; case JAVASCRIPT: dependencyElement = createJavaScriptElement(url, !inlineElement); break; case HTML_IMPORT: dependencyElement = createHtmlImportElement(url); break; default: throw new IllegalStateException( "Unsupported dependency type: " + type); } if (inlineElement) { dependencyElement.appendChild( new DataNode(dependency.getString(Dependency.KEY_CONTENTS), dependencyElement.baseUri())); } return dependencyElement; }
createJavaScriptElement(context.getUriResolver() .resolveVaadinUri(es5AdapterUrl), false)); head.appendChild(createJavaScriptElement(resolvedUrl, false));