#ifndef InternalSettings_h
#define InternalSettings_h
#include "InternalSettingsGenerated.h"
#include "core/editing/EditingBehaviorTypes.h"
#include "heap/Handle.h"
#include "platform/geometry/IntSize.h"
#include "wtf/PassRefPtr.h"
#include "wtf/RefCounted.h"
#include "wtf/text/WTFString.h"
namespace WebCore {
class Document;
class ExceptionState;
class LocalFrame;
class Page;
class Settings;
class InternalSettings FINAL : public InternalSettingsGenerated {
public:
class Backup {
public:
explicit Backup(Settings*);
void restoreTo(Settings*);
bool m_originalCSSExclusionsEnabled;
bool m_originalAuthorShadowDOMForAnyElementEnabled;
bool m_originalExperimentalWebSocketEnabled;
bool m_originalStyleScoped;
bool m_originalCSP;
bool m_originalOverlayScrollbarsEnabled;
EditingBehaviorType m_originalEditingBehavior;
bool m_originalTextAutosizingEnabled;
IntSize m_originalTextAutosizingWindowSizeOverride;
float m_originalAccessibilityFontScaleFactor;
String m_originalMediaTypeOverride;
bool m_originalMockScrollbarsEnabled;
bool m_langAttributeAwareFormControlUIEnabled;
bool m_imagesEnabled;
bool m_shouldDisplaySubtitles;
bool m_shouldDisplayCaptions;
bool m_shouldDisplayTextDescriptions;
String m_defaultVideoPosterURL;
bool m_originalCompositorDrivenAcceleratedScrollEnabled;
bool m_originalLayerSquashingEnabled;
bool m_originalPasswordGenerationDecorationEnabled;
};
static PassRefPtrWillBeRawPtr<InternalSettings> create(Page& page)
{
return adoptRefWillBeNoop(new InternalSettings(page));
}
static InternalSettings* from(Page&);
void hostDestroyed() { m_page = 0; }
virtual ~InternalSettings();
void resetToConsistentState();
void setStandardFontFamily(const AtomicString& family, const String& script, ExceptionState&);
void setSerifFontFamily(const AtomicString& family, const String& script, ExceptionState&);
void setSansSerifFontFamily(const AtomicString& family, const String& script, ExceptionState&);
void setFixedFontFamily(const AtomicString& family, const String& script, ExceptionState&);
void setCursiveFontFamily(const AtomicString& family, const String& script, ExceptionState&);
void setFantasyFontFamily(const AtomicString& family, const String& script, ExceptionState&);
void setPictographFontFamily(const AtomicString& family, const String& script, ExceptionState&);
void setDefaultVideoPosterURL(const String& url, ExceptionState&);
void setEditingBehavior(const String&, ExceptionState&);
void setImagesEnabled(bool, ExceptionState&);
void setMediaTypeOverride(const String& mediaType, ExceptionState&);
void setMockScrollbarsEnabled(bool, ExceptionState&);
void setPasswordGenerationDecorationEnabled(bool, ExceptionState&);
void setTextAutosizingEnabled(bool, ExceptionState&);
void setAccessibilityFontScaleFactor(float fontScaleFactor, ExceptionState&);
void setTextAutosizingWindowSizeOverride(int width, int height, ExceptionState&);
void setTouchEventEmulationEnabled(bool, ExceptionState&);
void setViewportEnabled(bool, ExceptionState&);
void setCompositorDrivenAcceleratedScrollingEnabled(bool, ExceptionState&);
void setLayerSquashingEnabled(bool, ExceptionState&);
void setAuthorShadowDOMForAnyElementEnabled(bool);
void setCSSExclusionsEnabled(bool);
void setExperimentalWebSocketEnabled(bool);
void setLangAttributeAwareFormControlUIEnabled(bool);
void setOverlayScrollbarsEnabled(bool);
void setStyleScopedEnabled(bool);
void setExperimentalContentSecurityPolicyFeaturesEnabled(bool);
virtual void trace(Visitor* visitor) OVERRIDE { InternalSettingsGenerated::trace(visitor); }
private:
explicit InternalSettings(Page&);
Settings* settings() const;
Page* page() const { return m_page; }
static const char* supplementName();
Page* m_page;
Backup m_backup;
};
}
#endif