mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-02 22:30:31 +00:00
LibWeb: Implement UserActivation
This commit is contained in:
parent
227151b881
commit
01bd179eef
Notes:
sideshowbarker
2024-07-17 11:34:34 +09:00
Author: https://github.com/jamierocks
Commit: 01bd179eef
Pull-request: https://github.com/SerenityOS/serenity/pull/24437
Reviewed-by: https://github.com/ADKaster ✅
Reviewed-by: https://github.com/mattco98
Reviewed-by: https://github.com/tcl3
11 changed files with 104 additions and 0 deletions
46
Userland/Libraries/LibWeb/HTML/UserActivation.cpp
Normal file
46
Userland/Libraries/LibWeb/HTML/UserActivation.cpp
Normal file
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* Copyright (c) 2024, Jamie Mansfield <jmansfield@cadixdev.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <LibWeb/Bindings/Intrinsics.h>
|
||||
#include <LibWeb/Bindings/UserActivationPrototype.h>
|
||||
#include <LibWeb/HTML/UserActivation.h>
|
||||
#include <LibWeb/HTML/Window.h>
|
||||
|
||||
namespace Web::HTML {
|
||||
|
||||
JS_DEFINE_ALLOCATOR(UserActivation);
|
||||
|
||||
WebIDL::ExceptionOr<JS::NonnullGCPtr<UserActivation>> UserActivation::construct_impl(JS::Realm& realm)
|
||||
{
|
||||
return realm.heap().allocate<UserActivation>(realm, realm);
|
||||
}
|
||||
|
||||
UserActivation::UserActivation(JS::Realm& realm)
|
||||
: PlatformObject(realm)
|
||||
{
|
||||
}
|
||||
|
||||
void UserActivation::initialize(JS::Realm& realm)
|
||||
{
|
||||
Base::initialize(realm);
|
||||
WEB_SET_PROTOTYPE_FOR_INTERFACE(UserActivation);
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/interaction.html#dom-useractivation-hasbeenactive
|
||||
bool UserActivation::has_been_active() const
|
||||
{
|
||||
// The hasBeenActive getter steps are to return true if this's relevant global object has sticky activation, and false otherwise.
|
||||
return verify_cast<HTML::Window>(relevant_global_object(*this)).has_sticky_activation();
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/interaction.html#dom-useractivation-isactive
|
||||
bool UserActivation::is_active() const
|
||||
{
|
||||
// The isActive getter steps are to return true if this's relevant global object has transient activation, and false otherwise.
|
||||
return verify_cast<HTML::Window>(relevant_global_object(*this)).has_transient_activation();
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue