summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/HTML/RemoteBrowsingContext.h
blob: f91a4c5134d5e2fbc01ccfa22db1273aa4117bcf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * Copyright (c) 2023, Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

#pragma once

#include <LibWeb/Bindings/MainThreadVM.h>
#include <LibWeb/HTML/AbstractBrowsingContext.h>

namespace Web::HTML {

class RemoteBrowsingContext final
    : public AbstractBrowsingContext
    , public Weakable<RemoteBrowsingContext> {
    JS_CELL(RemoteBrowsingContext, AbstractBrowsingContext);

public:
    static JS::NonnullGCPtr<RemoteBrowsingContext> create_a_new_remote_browsing_context(String handle);

    virtual HTML::WindowProxy* window_proxy() override;
    virtual HTML::WindowProxy const* window_proxy() const override;

    virtual WebIDL::ExceptionOr<void> navigate(
        JS::NonnullGCPtr<Fetch::Infrastructure::Request>,
        BrowsingContext&,
        bool,
        HistoryHandlingBehavior,
        Optional<PolicyContainer>,
        DeprecatedString,
        Optional<String>,
        Function<void(JS::NonnullGCPtr<Fetch::Infrastructure::Response>)>) override
    {
        return {};
    };

    virtual String const& window_handle() const override { return m_window_handle; }
    virtual void set_window_handle(String handle) override { m_window_handle = handle; };

private:
    explicit RemoteBrowsingContext(String);

    String m_window_handle;
};

}