MediaElementAudioSourceHandler::MediaElementAudioSourceHandler(AudioNode& node, HTMLMediaElement& mediaElement) : AudioHandler(NodeTypeMediaElementAudioSource, node, node.context()->sampleRate()) , m_mediaElement(mediaElement) , m_sourceNumberOfChannels(0) , m_sourceSampleRate(0) , m_passesCurrentSrcCORSAccessCheck(passesCurrentSrcCORSAccessCheck(mediaElement.currentSrc())) , m_maybePrintCORSMessage(!m_passesCurrentSrcCORSAccessCheck) , m_currentSrcString(mediaElement.currentSrc().string()) { ASSERT(isMainThread()); // Default to stereo. This could change depending on what the media element // .src is set to. addOutput(2); initialize(); }
JSValue jsHTMLMediaElementCurrentSrc(ExecState* exec, JSValue slotBase, const Identifier&) { JSHTMLMediaElement* castedThis = static_cast<JSHTMLMediaElement*>(asObject(slotBase)); UNUSED_PARAM(exec); HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(castedThis->impl()); JSValue result = jsString(exec, imp->currentSrc()); return result; }
void ChromeClientAndroid::enterFullscreenForNode(Node* node) { if (!node->hasTagName(HTMLNames::videoTag)) return; HTMLMediaElement* videoElement = static_cast<HTMLMediaElement*>(node); String url = videoElement->currentSrc(); LayerAndroid* layer = videoElement->platformLayer(); if (!layer) return; FrameView* frameView = m_webFrame->page()->mainFrame()->view(); android::WebViewCore* core = android::WebViewCore::getWebViewCore(frameView); if (core) core->enterFullscreenForVideoLayer(layer->uniqueId(), url); }
KURL HitTestResult::absoluteMediaURL() const { #if ENABLE(VIDEO) if (!(m_innerNonSharedNode && m_innerNonSharedNode->document())) return KURL(); if (!(m_innerNonSharedNode->renderer() && m_innerNonSharedNode->renderer()->isMedia())) return KURL(); AtomicString urlString; if (m_innerNonSharedNode->hasTagName(HTMLNames::videoTag) || m_innerNonSharedNode->hasTagName(HTMLNames::audioTag)) { HTMLMediaElement* mediaElement = static_cast<HTMLMediaElement*>(m_innerNonSharedNode.get()); urlString = mediaElement->currentSrc(); } else return KURL(); return m_innerNonSharedNode->document()->completeURL(deprecatedParseURL(urlString)); #else return KURL(); #endif }
JSValue* JSHTMLMediaElement::getValueProperty(ExecState* exec, int token) const { switch (token) { case ErrorAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return toJS(exec, WTF::getPtr(imp->error())); } case SrcAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsString(exec, imp->src()); } case CurrentSrcAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsString(exec, imp->currentSrc()); } case NetworkStateAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->networkState()); } case BufferingRateAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->bufferingRate()); } case BufferedAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return toJS(exec, WTF::getPtr(imp->buffered())); } case ReadyStateAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->readyState()); } case SeekingAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsBoolean(imp->seeking()); } case CurrentTimeAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->currentTime()); } case DurationAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->duration()); } case PausedAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsBoolean(imp->paused()); } case DefaultPlaybackRateAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->defaultPlaybackRate()); } case PlaybackRateAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->playbackRate()); } case PlayedAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return toJS(exec, WTF::getPtr(imp->played())); } case SeekableAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return toJS(exec, WTF::getPtr(imp->seekable())); } case EndedAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsBoolean(imp->ended()); } case AutoplayAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsBoolean(imp->autoplay()); } case StartAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->start()); } case EndAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->end()); } case LoopStartAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->loopStart()); } case LoopEndAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->loopEnd()); } case PlayCountAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->playCount()); } case CurrentLoopAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->currentLoop()); } case ControlsAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsBoolean(imp->controls()); } case VolumeAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->volume()); } case MutedAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsBoolean(imp->muted()); } case ConstructorAttrNum: return getConstructor(exec); } return 0; }