LibWeb/HTML: Use relevant global object's document in History
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (arm64, macos-15, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (x86_64, ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run

Corresponds to dba6e7b6c2
and 4c0401186c

The spec algorithms now use "the relevant global object's associated
document", so remove the concept of the History object itself having an
associated document. The spec has also combined the implementations for
forward/back/go so I've matched that too.
This commit is contained in:
Sam Atkins 2025-04-11 17:24:50 +01:00 committed by Andreas Kling
commit 141f6cb392
Notes: github-actions[bot] 2025-04-18 09:08:14 +00:00
3 changed files with 52 additions and 50 deletions

View file

@ -20,7 +20,7 @@ class History final : public Bindings::PlatformObject {
GC_DECLARE_ALLOCATOR(History);
public:
[[nodiscard]] static GC::Ref<History> create(JS::Realm&, DOM::Document&);
[[nodiscard]] static GC::Ref<History> create(JS::Realm&);
virtual ~History() override;
@ -41,14 +41,14 @@ public:
void set_state(JS::Value s) { m_state = s; }
private:
History(JS::Realm&, DOM::Document&);
History(JS::Realm&);
virtual void initialize(JS::Realm&) override;
virtual void visit_edges(Cell::Visitor&) override;
WebIDL::ExceptionOr<void> delta_traverse(WebIDL::Long delta);
WebIDL::ExceptionOr<void> shared_history_push_replace_state(JS::Value data, Optional<String> const& url, HistoryHandlingBehavior);
GC::Ref<DOM::Document> m_associated_document;
JS::Value m_state { JS::js_null() };
};