Serenity Operating System
1/*
2 * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#include <LibWeb/Bindings/Intrinsics.h>
8#include <LibWeb/DOM/Element.h>
9#include <LibWeb/ResizeObserver/ResizeObserver.h>
10
11namespace Web::ResizeObserver {
12
13// https://drafts.csswg.org/resize-observer/#dom-resizeobserver-resizeobserver
14WebIDL::ExceptionOr<JS::NonnullGCPtr<ResizeObserver>> ResizeObserver::construct_impl(JS::Realm& realm, WebIDL::CallbackType* callback)
15{
16 // FIXME: Implement
17 (void)callback;
18 return MUST_OR_THROW_OOM(realm.heap().allocate<ResizeObserver>(realm, realm));
19}
20
21ResizeObserver::ResizeObserver(JS::Realm& realm)
22 : PlatformObject(realm)
23{
24}
25
26ResizeObserver::~ResizeObserver() = default;
27
28JS::ThrowCompletionOr<void> ResizeObserver::initialize(JS::Realm& realm)
29{
30 MUST_OR_THROW_OOM(Base::initialize(realm));
31 set_prototype(&Bindings::ensure_web_prototype<Bindings::ResizeObserverPrototype>(realm, "ResizeObserver"));
32
33 return {};
34}
35
36// https://drafts.csswg.org/resize-observer/#dom-resizeobserver-observe
37void ResizeObserver::observe(DOM::Element& target, ResizeObserverOptions options)
38{
39 // FIXME: Implement
40 (void)target;
41 (void)options;
42}
43
44// https://drafts.csswg.org/resize-observer/#dom-resizeobserver-unobserve
45void ResizeObserver::unobserve(DOM::Element& target)
46{
47 // FIXME: Implement
48 (void)target;
49}
50
51// https://drafts.csswg.org/resize-observer/#dom-resizeobserver-disconnect
52void ResizeObserver::disconnect()
53{
54 // FIXME: Implement
55}
56
57}