mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-31 13:19:05 +00:00
LibWeb: Implement Navigator.mediaCapabilities
This is enough to stop Crunchyroll showing an unsupported browser modal :^)
This commit is contained in:
parent
4c5a176354
commit
f08946bcd2
Notes:
github-actions[bot]
2024-09-05 13:53:31 +00:00
Author: https://github.com/jamierocks
Commit: f08946bcd2
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1283
Reviewed-by: https://github.com/tcl3 ✅
3 changed files with 19 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2022, Andrew Kaster <akaster@serenityos.org>
|
* Copyright (c) 2022, Andrew Kaster <akaster@serenityos.org>
|
||||||
* Copyright (c) 2022, Linus Groh <linusg@serenityos.org>
|
* Copyright (c) 2022, Linus Groh <linusg@serenityos.org>
|
||||||
|
* Copyright (c) 2024, Jamie Mansfield <jmansfield@cadixdev.org>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-2-Clause
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -66,6 +67,7 @@ void Navigator::visit_edges(Cell::Visitor& visitor)
|
||||||
visitor.visit(m_clipboard);
|
visitor.visit(m_clipboard);
|
||||||
visitor.visit(m_user_activation);
|
visitor.visit(m_user_activation);
|
||||||
visitor.visit(m_service_worker_container);
|
visitor.visit(m_service_worker_container);
|
||||||
|
visitor.visit(m_media_capabilities);
|
||||||
}
|
}
|
||||||
|
|
||||||
JS::NonnullGCPtr<MimeTypeArray> Navigator::mime_types()
|
JS::NonnullGCPtr<MimeTypeArray> Navigator::mime_types()
|
||||||
|
@ -122,4 +124,11 @@ JS::NonnullGCPtr<ServiceWorkerContainer> Navigator::service_worker()
|
||||||
return *m_service_worker_container;
|
return *m_service_worker_container;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JS::NonnullGCPtr<MediaCapabilitiesAPI::MediaCapabilities> Navigator::media_capabilities()
|
||||||
|
{
|
||||||
|
if (!m_media_capabilities)
|
||||||
|
m_media_capabilities = heap().allocate<MediaCapabilitiesAPI::MediaCapabilities>(realm(), realm());
|
||||||
|
return *m_media_capabilities;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include <LibWeb/HTML/NavigatorOnLine.h>
|
#include <LibWeb/HTML/NavigatorOnLine.h>
|
||||||
#include <LibWeb/HTML/PluginArray.h>
|
#include <LibWeb/HTML/PluginArray.h>
|
||||||
#include <LibWeb/HTML/UserActivation.h>
|
#include <LibWeb/HTML/UserActivation.h>
|
||||||
|
#include <LibWeb/MediaCapabilitiesAPI/MediaCapabilities.h>
|
||||||
#include <LibWeb/StorageAPI/NavigatorStorage.h>
|
#include <LibWeb/StorageAPI/NavigatorStorage.h>
|
||||||
|
|
||||||
namespace Web::HTML {
|
namespace Web::HTML {
|
||||||
|
@ -56,6 +57,8 @@ public:
|
||||||
|
|
||||||
JS::NonnullGCPtr<ServiceWorkerContainer> service_worker();
|
JS::NonnullGCPtr<ServiceWorkerContainer> service_worker();
|
||||||
|
|
||||||
|
JS::NonnullGCPtr<MediaCapabilitiesAPI::MediaCapabilities> media_capabilities();
|
||||||
|
|
||||||
static WebIDL::Long max_touch_points();
|
static WebIDL::Long max_touch_points();
|
||||||
|
|
||||||
virtual ~Navigator() override;
|
virtual ~Navigator() override;
|
||||||
|
@ -82,6 +85,9 @@ private:
|
||||||
|
|
||||||
// https://w3c.github.io/ServiceWorker/#navigator-serviceworker
|
// https://w3c.github.io/ServiceWorker/#navigator-serviceworker
|
||||||
JS::GCPtr<ServiceWorkerContainer> m_service_worker_container;
|
JS::GCPtr<ServiceWorkerContainer> m_service_worker_container;
|
||||||
|
|
||||||
|
// https://w3c.github.io/media-capabilities/#dom-navigator-mediacapabilities
|
||||||
|
JS::GCPtr<MediaCapabilitiesAPI::MediaCapabilities> m_media_capabilities;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#import <HTML/PluginArray.idl>
|
#import <HTML/PluginArray.idl>
|
||||||
#import <HTML/ServiceWorkerContainer.idl>
|
#import <HTML/ServiceWorkerContainer.idl>
|
||||||
#import <HTML/UserActivation.idl>
|
#import <HTML/UserActivation.idl>
|
||||||
|
#import <MediaCapabilitiesAPI/MediaCapabilities.idl>
|
||||||
#import <StorageAPI/NavigatorStorage.idl>
|
#import <StorageAPI/NavigatorStorage.idl>
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/system-state.html#navigator
|
// https://html.spec.whatwg.org/multipage/system-state.html#navigator
|
||||||
|
@ -29,6 +30,9 @@ interface Navigator {
|
||||||
|
|
||||||
// https://w3c.github.io/ServiceWorker/#navigator-serviceworker
|
// https://w3c.github.io/ServiceWorker/#navigator-serviceworker
|
||||||
[SecureContext, SameObject] readonly attribute ServiceWorkerContainer serviceWorker;
|
[SecureContext, SameObject] readonly attribute ServiceWorkerContainer serviceWorker;
|
||||||
|
|
||||||
|
// https://w3c.github.io/media-capabilities/#dom-navigator-mediacapabilities
|
||||||
|
[SameObject] readonly attribute MediaCapabilities mediaCapabilities;
|
||||||
};
|
};
|
||||||
|
|
||||||
// NOTE: As NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, and NavigatorAutomationInformation
|
// NOTE: As NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, and NavigatorAutomationInformation
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue