APIWebsitePolicies.h [plain text]
#pragma once
#include "APIObject.h"
#include "WebsiteAutoplayPolicy.h"
#include "WebsiteAutoplayQuirk.h"
#include "WebsitePopUpPolicy.h"
#include <WebCore/HTTPHeaderField.h>
#include <wtf/EnumTraits.h>
#include <wtf/OptionSet.h>
#include <wtf/Optional.h>
#include <wtf/Vector.h>
namespace WebKit {
struct WebsitePoliciesData;
}
namespace API {
class WebsiteDataStore;
class WebsitePolicies final : public API::ObjectImpl<API::Object::Type::WebsitePolicies> {
public:
static Ref<WebsitePolicies> create() { return adoptRef(*new WebsitePolicies); }
WebsitePolicies();
~WebsitePolicies();
bool contentBlockersEnabled() const { return m_contentBlockersEnabled; }
void setContentBlockersEnabled(bool enabled) { m_contentBlockersEnabled = enabled; }
OptionSet<WebKit::WebsiteAutoplayQuirk> allowedAutoplayQuirks() const { return m_allowedAutoplayQuirks; }
void setAllowedAutoplayQuirks(OptionSet<WebKit::WebsiteAutoplayQuirk> quirks) { m_allowedAutoplayQuirks = quirks; }
WebKit::WebsiteAutoplayPolicy autoplayPolicy() const { return m_autoplayPolicy; }
void setAutoplayPolicy(WebKit::WebsiteAutoplayPolicy policy) { m_autoplayPolicy = policy; }
const Vector<WebCore::HTTPHeaderField>& customHeaderFields() const { return m_customHeaderFields; }
Vector<WebCore::HTTPHeaderField>&& takeCustomHeaderFields() { return WTFMove(m_customHeaderFields); }
void setCustomHeaderFields(Vector<WebCore::HTTPHeaderField>&& fields) { m_customHeaderFields = WTFMove(fields); }
WebKit::WebsitePopUpPolicy popUpPolicy() const { return m_popUpPolicy; }
void setPopUpPolicy(WebKit::WebsitePopUpPolicy policy) { m_popUpPolicy = policy; }
WebsiteDataStore* websiteDataStore() const { return m_websiteDataStore.get(); }
void setWebsiteDataStore(RefPtr<WebsiteDataStore>&&);
WebKit::WebsitePoliciesData data();
private:
WebsitePolicies(bool contentBlockersEnabled, OptionSet<WebKit::WebsiteAutoplayQuirk>, WebKit::WebsiteAutoplayPolicy, Vector<WebCore::HTTPHeaderField>&&, WebKit::WebsitePopUpPolicy, RefPtr<WebsiteDataStore>&&);
bool m_contentBlockersEnabled { true };
OptionSet<WebKit::WebsiteAutoplayQuirk> m_allowedAutoplayQuirks;
WebKit::WebsiteAutoplayPolicy m_autoplayPolicy { WebKit::WebsiteAutoplayPolicy::Default };
Vector<WebCore::HTTPHeaderField> m_customHeaderFields;
WebKit::WebsitePopUpPolicy m_popUpPolicy { WebKit::WebsitePopUpPolicy::Default };
RefPtr<WebsiteDataStore> m_websiteDataStore;
};
}