#ifndef HTMLMetaElement_h
#define HTMLMetaElement_h
#include "core/html/HTMLElement.h"
namespace WebCore {
enum ViewportErrorCode {
UnrecognizedViewportArgumentKeyError,
UnrecognizedViewportArgumentValueError,
TruncatedViewportArgumentValueError,
MaximumScaleTooLargeError,
TargetDensityDpiUnsupported
};
class HTMLMetaElement FINAL : public HTMLElement {
public:
static PassRefPtr<HTMLMetaElement> create(Document&);
const AtomicString& content() const;
const AtomicString& httpEquiv() const;
const AtomicString& name() const;
private:
explicit HTMLMetaElement(Document&);
typedef void (HTMLMetaElement::*KeyValuePairCallback)(const String& key, const String& value, void* data);
void processViewportKeyValuePair(const String& key, const String& value, void* data);
void parseContentAttribute(const String& content, KeyValuePairCallback, void* data);
virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
virtual void didNotifySubtreeInsertionsToDocument() OVERRIDE;
float parsePositiveNumber(const String& key, const String& value, bool* ok = 0);
Length parseViewportValueAsLength(const String& key, const String& value);
float parseViewportValueAsZoom(const String& key, const String& value);
float parseViewportValueAsUserZoom(const String& key, const String& value);
float parseViewportValueAsDPI(const String& key, const String& value);
void reportViewportWarning(ViewportErrorCode, const String& replacement1, const String& replacement2);
void process();
void processViewportContentAttribute(const String& content, ViewportDescription::Type origin);
};
}
#endif