Serenity Operating System
at master 41 lines 1.0 kB view raw
1/* 2 * Copyright (c) 2021, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <AK/URL.h> 10#include <LibJS/Heap/Cell.h> 11#include <LibJS/Script.h> 12#include <LibWeb/Forward.h> 13 14namespace Web::HTML { 15 16// https://html.spec.whatwg.org/multipage/webappapis.html#concept-script 17class Script 18 : public JS::Cell 19 , public JS::Script::HostDefined { 20 JS_CELL(Script, JS::Cell); 21 22public: 23 virtual ~Script() override; 24 25 AK::URL const& base_url() const { return m_base_url; } 26 DeprecatedString const& filename() const { return m_filename; } 27 28 EnvironmentSettingsObject& settings_object() { return m_settings_object; } 29 30protected: 31 Script(AK::URL base_url, DeprecatedString filename, EnvironmentSettingsObject& environment_settings_object); 32 33private: 34 virtual void visit_host_defined_self(JS::Cell::Visitor&) override; 35 36 AK::URL m_base_url; 37 DeprecatedString m_filename; 38 EnvironmentSettingsObject& m_settings_object; 39}; 40 41}