This source file includes following definitions.
- isFormControlElement
- isTextFormControlElement
- tagName
- hasTagName
- hasHTMLTagName
- hasAttribute
- removeAttribute
- getAttribute
- setAttribute
- attributeCount
- shadowRoot
- attributeLocalName
- attributeValue
- innerText
- computeInheritedLanguage
- requestFullScreen
- boundsInViewportSpace
- imageContents
#include "config.h"
#include "WebDocument.h"
#include "WebElement.h"
#include "bindings/v8/ExceptionState.h"
#include "core/dom/Element.h"
#include "core/dom/NamedNodeMap.h"
#include "core/dom/custom/CustomElementCallbackDispatcher.h"
#include "core/dom/shadow/ShadowRoot.h"
#include "core/rendering/RenderBoxModelObject.h"
#include "core/rendering/RenderObject.h"
#include "public/platform/WebRect.h"
#include "wtf/PassRefPtr.h"
using namespace WebCore;
namespace blink {
bool WebElement::isFormControlElement() const
{
return constUnwrap<Element>()->isFormControlElement();
}
bool WebElement::isTextFormControlElement() const
{
return constUnwrap<Element>()->isTextFormControl();
}
WebString WebElement::tagName() const
{
return constUnwrap<Element>()->tagName();
}
bool WebElement::hasTagName(const WebString& tagName) const
{
return equalIgnoringCase(constUnwrap<Element>()->tagName(),
tagName.operator String());
}
bool WebElement::hasHTMLTagName(const WebString& tagName) const
{
const Element* element = constUnwrap<Element>();
return HTMLNames::xhtmlNamespaceURI == element->namespaceURI() && element->localName() == String(tagName).lower();
}
bool WebElement::hasAttribute(const WebString& attrName) const
{
return constUnwrap<Element>()->hasAttribute(attrName);
}
void WebElement::removeAttribute(const WebString& attrName)
{
CustomElementCallbackDispatcher::CallbackDeliveryScope deliverCustomElementCallbacks;
unwrap<Element>()->removeAttribute(attrName);
}
WebString WebElement::getAttribute(const WebString& attrName) const
{
return constUnwrap<Element>()->getAttribute(attrName);
}
bool WebElement::setAttribute(const WebString& attrName, const WebString& attrValue)
{
CustomElementCallbackDispatcher::CallbackDeliveryScope deliverCustomElementCallbacks;
TrackExceptionState exceptionState;
unwrap<Element>()->setAttribute(attrName, attrValue, exceptionState);
return !exceptionState.hadException();
}
unsigned WebElement::attributeCount() const
{
if (!constUnwrap<Element>()->hasAttributes())
return 0;
return constUnwrap<Element>()->attributeCount();
}
WebNode WebElement::shadowRoot() const
{
ShadowRoot* shadowRoot = constUnwrap<Element>()->shadowRoot();
if (!shadowRoot)
return WebNode();
return WebNode(shadowRoot->toNode());
}
WebString WebElement::attributeLocalName(unsigned index) const
{
if (index >= attributeCount())
return WebString();
return constUnwrap<Element>()->attributeItem(index).localName();
}
WebString WebElement::attributeValue(unsigned index) const
{
if (index >= attributeCount())
return WebString();
return constUnwrap<Element>()->attributeItem(index).value();
}
WebString WebElement::innerText()
{
return unwrap<Element>()->innerText();
}
WebString WebElement::computeInheritedLanguage() const
{
return WebString(constUnwrap<Element>()->computeInheritedLanguage());
}
void WebElement::requestFullScreen()
{
unwrap<Element>()->webkitRequestFullScreen(Element::ALLOW_KEYBOARD_INPUT);
}
WebRect WebElement::boundsInViewportSpace()
{
return unwrap<Element>()->boundsInRootViewSpace();
}
WebImage WebElement::imageContents()
{
if (isNull())
return WebImage();
WebCore::Image* image = unwrap<Element>()->imageContents();
if (!image)
return WebImage();
RefPtr<NativeImageSkia> bitmap = image->nativeImageForCurrentFrame();
if (!bitmap)
return WebImage();
return bitmap->bitmap();
}
WebElement::WebElement(const PassRefPtr<Element>& elem)
: WebNode(elem)
{
}
WebElement& WebElement::operator=(const PassRefPtr<Element>& elem)
{
m_private = elem;
return *this;
}
WebElement::operator PassRefPtr<Element>() const
{
return toElement(m_private.get());
}
}