1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 09:28:13 +00:00

LibWeb+LibWebView+WebContent: Add APIs to manage an autoplay allowlist

The spec defines a Permissions Policy to control some browser behaviors
on a per-origin basis. Management of these permissions live in their own
spec: https://w3c.github.io/webappsec-permissions-policy/

This implements a somewhat ad-hoc Permissions Policy for autoplaying
media elements. We will need to implement the entire policy spec for
this to be more general.
This commit is contained in:
Timothy Flynn 2023-04-17 13:21:19 -04:00 committed by Andreas Kling
parent 6131e621d6
commit 7966fc4780
12 changed files with 209 additions and 0 deletions

View file

@ -74,6 +74,10 @@ struct ElementCreationOptions {
DeprecatedString is;
};
enum class PolicyControlledFeature {
Autoplay,
};
class Document
: public ParentNode
, public NonElementParentNode<Document>
@ -456,6 +460,8 @@ public:
DocumentUnloadTimingInfo const& previous_document_unload_timing() const { return m_previous_document_unload_timing; }
void set_previous_document_unload_timing(DocumentUnloadTimingInfo const& previous_document_unload_timing) { m_previous_document_unload_timing = previous_document_unload_timing; }
bool is_allowed_to_use_feature(PolicyControlledFeature) const;
void did_stop_being_active_document_in_browsing_context(Badge<HTML::BrowsingContext>);
bool query_command_supported(DeprecatedString const&) const;