summaryrefslogtreecommitdiffstats
path: root/kit
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2022-09-27 11:40:25 +0300
committerTor Lillqvist <tml@iki.fi>2022-10-13 17:02:08 +0300
commit0a0f309228fb866a6898e89442b5fa875f419dd4 (patch)
tree5323606177b96b96d66cb2716b7044594cd77a82 /kit
parentDownloaded fonts don't need to be visible to Kit processes any longer (diff)
downloadonline-0a0f309228fb866a6898e89442b5fa875f419dd4.tar.gz
online-0a0f309228fb866a6898e89442b5fa875f419dd4.zip
Add alternative ways to handle "missing fonts": log, report, or ignore
The default is to log to the coolwsd log file. Signed-off-by: Tor Lillqvist <tml@collabora.com> Change-Id: I894f8c4b19ee96f7323512e63c8c66372d8516d9
Diffstat (limited to 'kit')
-rw-r--r--kit/ChildSession.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/kit/ChildSession.cpp b/kit/ChildSession.cpp
index 64968696ac..318747a5a7 100644
--- a/kit/ChildSession.cpp
+++ b/kit/ChildSession.cpp
@@ -3128,7 +3128,25 @@ void ChildSession::loKitCallback(const int type, const std::string& payload)
sendTextFrame("printranges: " + payload);
break;
case LOK_CALLBACK_FONTS_MISSING:
- sendTextFrame("fontsmissing: " + payload);
+ {
+ static std::string fontsMissingHandling = std::string(std::getenv("FONTS_MISSING_HANDLING"));
+ if (fontsMissingHandling == "report" || fontsMissingHandling == "both")
+ sendTextFrame("fontsmissing: " + payload);
+ if (fontsMissingHandling == "log" || fontsMissingHandling == "both")
+ {
+#if 0
+ Poco::JSON::Parser parser;
+ Poco::JSON::Object::Ptr root = parser.parse(payload).extract<Poco::JSON::Object::Ptr>();
+
+ const Poco::Dynamic::Var fontsMissing = root->get("fontsmissing");
+ if (fontsMissing.isArray())
+ for (const auto &f : fontsMissing)
+ LOG_INF("Font missing: " << f.convert<std::string>());
+#else
+ LOG_INF("Fonts missing: " << payload);
+#endif
+ }
+ }
break;
default:
LOG_ERR("Unknown callback event (" << lokCallbackTypeToString(type) << "): " << payload);