LibWeb: Move pdfViewerSupported's answer to Page

This will also be accessed by navigator.{plugins,mimeTypes} to
determine if they should expose any information.
This commit is contained in:
Luke Wilde 2023-02-28 00:20:09 +00:00 committed by Andreas Kling
parent 57d28c57f7
commit 5e422bdae0
Notes: sideshowbarker 2024-07-16 23:38:55 +09:00
3 changed files with 18 additions and 2 deletions

View file

@ -35,6 +35,15 @@ JS::ThrowCompletionOr<void> Navigator::initialize(JS::Realm& realm)
return {};
}
// https://html.spec.whatwg.org/multipage/system-state.html#dom-navigator-pdfviewerenabled
bool Navigator::pdf_viewer_enabled() const
{
// The NavigatorPlugins mixin's pdfViewerEnabled getter steps are to return the user agent's PDF viewer supported.
// NOTE: THe NavigatorPlugins mixin should only be exposed on the Window object.
auto const& window = verify_cast<HTML::Window>(HTML::current_global_object());
return window.page()->pdf_viewer_supported();
}
// https://w3c.github.io/webdriver/#dfn-webdriver
bool Navigator::webdriver() const
{

View file

@ -32,12 +32,11 @@ public:
bool cookie_enabled() const { return true; }
// NavigatorPlugins
// FIXME: Actually support pdf viewing
// https://html.spec.whatwg.org/multipage/system-state.html#dom-navigator-javaenabled
bool java_enabled() const { return false; }
// https://html.spec.whatwg.org/multipage/system-state.html#dom-navigator-pdfviewerenabled
bool pdf_viewer_enabled() const { return false; }
bool pdf_viewer_enabled() const;
bool webdriver() const;

View file

@ -114,6 +114,8 @@ public:
void dismiss_dialog();
void accept_dialog();
bool pdf_viewer_supported() const { return m_pdf_viewer_supported; }
private:
PageClient& m_client;
@ -139,6 +141,12 @@ private:
Optional<Empty> m_pending_alert_response;
Optional<bool> m_pending_confirm_response;
Optional<DeprecatedString> m_pending_prompt_response;
// https://html.spec.whatwg.org/multipage/system-state.html#pdf-viewer-supported
// Each user agent has a PDF viewer supported boolean, whose value is implementation-defined (and might vary according to user preferences).
// Spec Note: This value also impacts the navigation processing model.
// FIXME: Actually support pdf viewing
bool m_pdf_viewer_supported { false };
};
class PageClient {