void MediaDocumentParser::createDocumentStructure() { Ref<Element> rootElement = document()->createElement(htmlTag, false); document()->appendChild(rootElement.copyRef(), IGNORE_EXCEPTION); document()->setCSSTarget(rootElement.ptr()); downcast<HTMLHtmlElement>(rootElement.get()).insertedByParser(); if (document()->frame()) document()->frame()->injectUserScripts(InjectAtDocumentStart); #if PLATFORM(IOS) Ref<Element> headElement = document()->createElement(headTag, false); rootElement->appendChild(headElement.copyRef(), IGNORE_EXCEPTION); Ref<Element> metaElement = document()->createElement(metaTag, false); metaElement->setAttribute(nameAttr, "viewport"); metaElement->setAttribute(contentAttr, "width=device-width,initial-scale=1,user-scalable=no"); headElement->appendChild(WTFMove(metaElement), IGNORE_EXCEPTION); #endif Ref<Element> body = document()->createElement(bodyTag, false); rootElement->appendChild(body.copyRef(), IGNORE_EXCEPTION); Ref<Element> mediaElement = document()->createElement(videoTag, false); m_mediaElement = downcast<HTMLVideoElement>(mediaElement.ptr()); m_mediaElement->setAttribute(controlsAttr, emptyAtom); m_mediaElement->setAttribute(autoplayAttr, emptyAtom); m_mediaElement->setAttribute(nameAttr, "media"); StringBuilder elementStyle; elementStyle.appendLiteral("max-width: 100%; max-height: 100%;"); #if PLATFORM(IOS) elementStyle.appendLiteral("width: 100%; height: 100%;"); #endif m_mediaElement->setAttribute(styleAttr, elementStyle.toString()); Ref<Element> sourceElement = document()->createElement(sourceTag, false); HTMLSourceElement& source = downcast<HTMLSourceElement>(sourceElement.get()); source.setSrc(document()->url()); if (DocumentLoader* loader = document()->loader()) source.setType(loader->responseMIMEType()); m_mediaElement->appendChild(WTFMove(sourceElement), IGNORE_EXCEPTION); body->appendChild(WTFMove(mediaElement), IGNORE_EXCEPTION); Frame* frame = document()->frame(); if (!frame) return; frame->loader().activeDocumentLoader()->setMainResourceDataBufferingPolicy(DoNotBufferData); frame->loader().setOutgoingReferrer(frame->document()->completeURL(m_outgoingReferrer)); }
void MediaDocumentParser::createDocumentStructure() { RefPtr<Element> rootElement = document()->createElement(htmlTag, false); document()->appendChild(rootElement, IGNORE_EXCEPTION); document()->setCSSTarget(rootElement.get()); toHTMLHtmlElement(rootElement.get())->insertedByParser(); if (document()->frame()) document()->frame()->injectUserScripts(InjectAtDocumentStart); RefPtr<Element> body = document()->createElement(bodyTag, false); rootElement->appendChild(body, IGNORE_EXCEPTION); RefPtr<Element> mediaElement = document()->createElement(videoTag, false); m_mediaElement = toHTMLVideoElement(mediaElement.get()); m_mediaElement->setAttribute(controlsAttr, ""); m_mediaElement->setAttribute(autoplayAttr, ""); m_mediaElement->setAttribute(nameAttr, "media"); StringBuilder elementStyle; elementStyle.appendLiteral("max-width: 100%; max-height: 100%;"); #if PLATFORM(IOS) elementStyle.appendLiteral("width: 100%; height: 100%;"); #endif m_mediaElement->setAttribute(styleAttr, elementStyle.toString()); RefPtr<Element> sourceElement = document()->createElement(sourceTag, false); HTMLSourceElement& source = toHTMLSourceElement(*sourceElement); source.setSrc(document()->url()); if (DocumentLoader* loader = document()->loader()) source.setType(loader->responseMIMEType()); m_mediaElement->appendChild(sourceElement, IGNORE_EXCEPTION); body->appendChild(mediaElement, IGNORE_EXCEPTION); Frame* frame = document()->frame(); if (!frame) return; frame->loader().activeDocumentLoader()->setMainResourceDataBufferingPolicy(DoNotBufferData); }
void MediaDocumentParser::createDocumentStructure() { RefPtr<Element> rootElement = document()->createElement(htmlTag, false); document()->appendChild(rootElement, IGNORE_EXCEPTION); document()->setCSSTarget(rootElement.get()); static_cast<HTMLHtmlElement*>(rootElement.get())->insertedByParser(); if (document()->frame()) document()->frame()->loader()->dispatchDocumentElementAvailable(); RefPtr<Element> body = document()->createElement(bodyTag, false); rootElement->appendChild(body, IGNORE_EXCEPTION); RefPtr<Element> mediaElement = document()->createElement(videoTag, false); m_mediaElement = static_cast<HTMLVideoElement*>(mediaElement.get()); m_mediaElement->setAttribute(controlsAttr, ""); m_mediaElement->setAttribute(autoplayAttr, ""); m_mediaElement->setAttribute(nameAttr, "media"); RefPtr<Element> sourceElement = document()->createElement(sourceTag, false); HTMLSourceElement* source = static_cast<HTMLSourceElement*>(sourceElement.get()); source->setSrc(document()->url()); if (DocumentLoader* loader = document()->loader()) source->setType(loader->responseMIMEType()); m_mediaElement->appendChild(sourceElement, IGNORE_EXCEPTION); body->appendChild(mediaElement, IGNORE_EXCEPTION); Frame* frame = document()->frame(); if (!frame) return; frame->loader()->activeDocumentLoader()->setMainResourceDataBufferingPolicy(DoNotBufferData); }