UserActivation.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Copyright (c) 2024, Jamie Mansfield <jmansfield@cadixdev.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibWeb/Bindings/Intrinsics.h>
  7. #include <LibWeb/Bindings/UserActivationPrototype.h>
  8. #include <LibWeb/HTML/UserActivation.h>
  9. #include <LibWeb/HTML/Window.h>
  10. namespace Web::HTML {
  11. GC_DEFINE_ALLOCATOR(UserActivation);
  12. WebIDL::ExceptionOr<GC::Ref<UserActivation>> UserActivation::construct_impl(JS::Realm& realm)
  13. {
  14. return realm.create<UserActivation>(realm);
  15. }
  16. UserActivation::UserActivation(JS::Realm& realm)
  17. : PlatformObject(realm)
  18. {
  19. }
  20. void UserActivation::initialize(JS::Realm& realm)
  21. {
  22. Base::initialize(realm);
  23. WEB_SET_PROTOTYPE_FOR_INTERFACE(UserActivation);
  24. }
  25. // https://html.spec.whatwg.org/multipage/interaction.html#dom-useractivation-hasbeenactive
  26. bool UserActivation::has_been_active() const
  27. {
  28. // The hasBeenActive getter steps are to return true if this's relevant global object has sticky activation, and false otherwise.
  29. return verify_cast<HTML::Window>(relevant_global_object(*this)).has_sticky_activation();
  30. }
  31. // https://html.spec.whatwg.org/multipage/interaction.html#dom-useractivation-isactive
  32. bool UserActivation::is_active() const
  33. {
  34. // The isActive getter steps are to return true if this's relevant global object has transient activation, and false otherwise.
  35. return verify_cast<HTML::Window>(relevant_global_object(*this)).has_transient_activation();
  36. }
  37. }