summaryrefslogtreecommitdiffstats
path: root/libs/wpewebkit/patches/500-wpe-show-hbbtv-xhtml.patch
blob: 3953f639a20d68e616933b0b9a3b5699ce7962b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
From 4da1748ec0f8cf4f08cc2392740c01f520c92e08 Mon Sep 17 00:00:00 2001
From: Daniel Golle <daniel@makrotopia.org>
Date: Sun, 25 Oct 2026 04:37:50 +0200
Subject: [PATCH] [WPE] Show application/vnd.hbbtv.xhtml+xml as XHTML

Reviewed by NOBODY (OOPS!).

The HbbTV edition of a broadcaster page is served as
application/vnd.hbbtv.xhtml+xml. WPE cannot show it: the type is not
among the supported non-image MIME types, so the response is downloaded
and the view reports a frame load interruption. Add the type to the
supported non-image MIME types and create an XHTML document for it, as
for application/xhtml+xml, so the page loads and parses as XHTML.

* Source/WebCore/dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
* Source/WebCore/platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::supportedNonImageMIMETypes):
---
 Source/WebCore/dom/DOMImplementation.cpp     | 3 ++-
 Source/WebCore/platform/MIMETypeRegistry.cpp | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

--- a/Source/WebCore/dom/DOMImplementation.cpp
+++ b/Source/WebCore/dom/DOMImplementation.cpp
@@ -167,7 +167,8 @@ Ref<Document> DOMImplementation::createD
     // Plug-ins cannot take over for HTML, XHTML, plain text, or non-PDF images.
     if (equalLettersIgnoringASCIICase(contentType, "text/html"_s))
         return HTMLDocument::create(frame, settings, url, documentIdentifier);
-    if (equalLettersIgnoringASCIICase(contentType, "application/xhtml+xml"_s))
+    if (equalLettersIgnoringASCIICase(contentType, "application/xhtml+xml"_s)
+        || equalLettersIgnoringASCIICase(contentType, "application/vnd.hbbtv.xhtml+xml"_s))
         return XMLDocument::createXHTML(frame, settings, url);
     if (equalLettersIgnoringASCIICase(contentType, "text/plain"_s))
         return TextDocument::create(frame, settings, url, documentIdentifier);
--- a/Source/WebCore/platform/MIMETypeRegistry.cpp
+++ b/Source/WebCore/platform/MIMETypeRegistry.cpp
@@ -229,6 +229,7 @@ HashSet<String, ASCIICaseInsensitiveHash
             "application/xhtml+xml"_s,
 #if !PLATFORM(IOS_FAMILY)
             "application/vnd.wap.xhtml+xml"_s,
+            "application/vnd.hbbtv.xhtml+xml"_s,
             "application/rss+xml"_s,
             "application/atom+xml"_s,
 #endif