mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-04 15:19:42 +00:00
LibWeb: Stub Geolocation API
Some checks are pending
CI / macOS, arm64, Sanitizer_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, Clang (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / 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
Some checks are pending
CI / macOS, arm64, Sanitizer_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers_CI, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer_CI, Clang (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / 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
This commit is contained in:
parent
f3c1dfb2f1
commit
22bda8e5e2
Notes:
github-actions[bot]
2025-06-21 08:01:30 +00:00
Author: https://github.com/gmta
Commit: 22bda8e5e2
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5143
25 changed files with 480 additions and 57 deletions
70
Libraries/LibWeb/Geolocation/Geolocation.cpp
Normal file
70
Libraries/LibWeb/Geolocation/Geolocation.cpp
Normal file
|
@ -0,0 +1,70 @@
|
|||
/*
|
||||
* Copyright (c) 2025, Jelle Raaijmakers <jelle@ladybird.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <LibWeb/Bindings/GeolocationPrototype.h>
|
||||
#include <LibWeb/Bindings/Intrinsics.h>
|
||||
#include <LibWeb/Geolocation/Geolocation.h>
|
||||
|
||||
namespace Web::Geolocation {
|
||||
|
||||
GC_DEFINE_ALLOCATOR(Geolocation);
|
||||
|
||||
Geolocation::Geolocation(JS::Realm& realm)
|
||||
: PlatformObject(realm)
|
||||
{
|
||||
}
|
||||
|
||||
void Geolocation::initialize(JS::Realm& realm)
|
||||
{
|
||||
WEB_SET_PROTOTYPE_FOR_INTERFACE(Geolocation);
|
||||
Base::initialize(realm);
|
||||
}
|
||||
|
||||
// https://w3c.github.io/geolocation/#dom-geolocation-getcurrentposition
|
||||
void Geolocation::get_current_position([[maybe_unused]] GC::Ref<WebIDL::CallbackType> success_callback,
|
||||
[[maybe_unused]] GC::Ptr<WebIDL::CallbackType> error_callback, [[maybe_unused]] Optional<PositionOptions> options)
|
||||
{
|
||||
// FIXME: 1. If this's relevant global object's associated Document is not fully active:
|
||||
{
|
||||
// FIXME: 1. Call back with error errorCallback and POSITION_UNAVAILABLE.
|
||||
|
||||
// FIXME: 2. Terminate this algorithm.
|
||||
}
|
||||
|
||||
// FIXME: 2. Request a position passing this, successCallback, errorCallback, and options.
|
||||
dbgln("FIXME: Geolocation::get_current_position() not implemented yet");
|
||||
}
|
||||
|
||||
// https://w3c.github.io/geolocation/#watchposition-method
|
||||
WebIDL::Long Geolocation::watch_position([[maybe_unused]] GC::Ref<WebIDL::CallbackType> success_callback,
|
||||
[[maybe_unused]] GC::Ptr<WebIDL::CallbackType> error_callback, [[maybe_unused]] Optional<PositionOptions> options)
|
||||
{
|
||||
// FIXME: 1. If this's relevant global object's associated Document is not fully active:
|
||||
{
|
||||
// FIXME: 1. Call back with error passing errorCallback and POSITION_UNAVAILABLE.
|
||||
|
||||
// FIXME: 2. Return 0.
|
||||
}
|
||||
|
||||
// FIXME: 2. Let watchId be an implementation-defined unsigned long that is greater than zero.
|
||||
|
||||
// FIXME: 3. Append watchId to this's [[watchIDs]].
|
||||
|
||||
// FIXME: 4. Request a position passing this, successCallback, errorCallback, options, and watchId.
|
||||
|
||||
// FIXME: 5. Return watchId.
|
||||
dbgln("FIXME: Geolocation::watch_position() not implemented yet");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// https://w3c.github.io/geolocation/#clearwatch-method
|
||||
void Geolocation::clear_watch([[maybe_unused]] WebIDL::Long watch_id)
|
||||
{
|
||||
// FIXME: 1. Remove watchId from this's [[watchIDs]].
|
||||
dbgln("FIXME: Geolocation::clear_watch() not implemented yet");
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue