diff options
Diffstat (limited to 'Source/WebKit2/UIProcess/WebPreferences.h')
-rw-r--r-- | Source/WebKit2/UIProcess/WebPreferences.h | 65 |
1 files changed, 36 insertions, 29 deletions
diff --git a/Source/WebKit2/UIProcess/WebPreferences.h b/Source/WebKit2/UIProcess/WebPreferences.h index 725d6113d..54435b87a 100644 --- a/Source/WebKit2/UIProcess/WebPreferences.h +++ b/Source/WebKit2/UIProcess/WebPreferences.h @@ -26,68 +26,62 @@ #ifndef WebPreferences_h #define WebPreferences_h +#include "APIExperimentalFeature.h" #include "APIObject.h" #include "FontSmoothingLevel.h" +#include "WebPreferencesDefinitions.h" #include "WebPreferencesStore.h" #include <wtf/HashSet.h> #include <wtf/PassRefPtr.h> #include <wtf/RefPtr.h> -#define DECLARE_PREFERENCE_GETTER_AND_SETTERS(KeyUpper, KeyLower, TypeName, Type, DefaultValue) \ +#define DECLARE_PREFERENCE_GETTER_AND_SETTERS(KeyUpper, KeyLower, TypeName, Type, DefaultValue, HumanReadableName, HumanReadableDescription) \ void set##KeyUpper(const Type& value); \ Type KeyLower() const; namespace WebKit { -class WebPageGroup; +class WebPageProxy; class WebPreferences : public API::ObjectImpl<API::Object::Type::Preferences> { public: - static PassRefPtr<WebPreferences> create() - { - return adoptRef(new WebPreferences); - } - static PassRefPtr<WebPreferences> create(const String& identifier) - { - return adoptRef(new WebPreferences(identifier)); - } - - static PassRefPtr<WebPreferences> create(const WebPreferences& other) - { - return adoptRef(new WebPreferences(other)); - } + static Ref<WebPreferences> create(const String& identifier, const String& keyPrefix, const String& globalDebugKeyPrefix); + static PassRefPtr<WebPreferences> createWithLegacyDefaults(const String& identifier, const String& keyPrefix, const String& globalDebugKeyPrefix); + + explicit WebPreferences(const String& identifier, const String& keyPrefix, const String& globalDebugKeyPrefix); + WebPreferences(const WebPreferences&); virtual ~WebPreferences(); - void addPageGroup(WebPageGroup*); - void removePageGroup(WebPageGroup*); + PassRefPtr<WebPreferences> copy() const; - const WebPreferencesStore& store() const { return m_store; } + void addPage(WebPageProxy&); + void removePage(WebPageProxy&); -#define DECLARE_PREFERENCE_GETTER_AND_SETTERS(KeyUpper, KeyLower, TypeName, Type, DefaultValue) \ - void set##KeyUpper(const Type& value); \ - Type KeyLower() const; \ + const WebPreferencesStore& store() const { return m_store; } FOR_EACH_WEBKIT_PREFERENCE(DECLARE_PREFERENCE_GETTER_AND_SETTERS) + FOR_EACH_WEBKIT_DEBUG_PREFERENCE(DECLARE_PREFERENCE_GETTER_AND_SETTERS) + FOR_EACH_WEBKIT_EXPERIMENTAL_FEATURE_PREFERENCE(DECLARE_PREFERENCE_GETTER_AND_SETTERS) -#undef DECLARE_PREFERENCE_GETTER_AND_SETTERS + static const Vector<RefPtr<API::Object>>& experimentalFeatures(); + bool isEnabledForFeature(const API::ExperimentalFeature&) const; + void setEnabledForFeature(bool, const API::ExperimentalFeature&); + void enableAllExperimentalFeatures(); // Exposed for WebKitTestRunner use only. void forceUpdate() { update(); } - static bool anyPageGroupsAreUsingPrivateBrowsing(); + static bool anyPagesAreUsingPrivateBrowsing(); private: - WebPreferences(); - explicit WebPreferences(const String&); - WebPreferences(const WebPreferences&); - void platformInitializeStore(); void update(); void updateStringValueForKey(const String& key, const String& value); void updateBoolValueForKey(const String& key, bool value); + void updateBoolValueForExperimentalFeatureKey(const String& key, bool value); void updateUInt32ValueForKey(const String& key, uint32_t value); void updateDoubleValueForKey(const String& key, double value); void updateFloatValueForKey(const String& key, float value); @@ -99,9 +93,22 @@ private: void updatePrivateBrowsingValue(bool value); - HashSet<WebPageGroup*> m_pageGroups; + void setPeerConnectionAndMediaStreamEnabled(bool value); + + void registerDefaultBoolValueForKey(const String&, bool); + void registerDefaultUInt32ValueForKey(const String&, uint32_t); + + bool platformGetStringUserValueForKey(const String& key, String& userValue); + bool platformGetBoolUserValueForKey(const String&, bool&); + bool platformGetUInt32UserValueForKey(const String&, uint32_t&); + bool platformGetDoubleUserValueForKey(const String&, double&); + + const String m_identifier; + const String m_keyPrefix; + const String m_globalDebugKeyPrefix; WebPreferencesStore m_store; - String m_identifier; + + HashSet<WebPageProxy*> m_pages; }; } // namespace WebKit |