From e4d3e7d4cf12f7ad3a054be61d0644b85a9ba0b9 Mon Sep 17 00:00:00 2001 From: David Capello Date: Mon, 13 Mar 2023 16:12:03 -0300 Subject: [PATCH] Add info about installed extensions w/Sentry breadcrumbs (#3729) --- src/app/extensions.cpp | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/app/extensions.cpp b/src/app/extensions.cpp index 08221531d..092ee4cc8 100644 --- a/src/app/extensions.cpp +++ b/src/app/extensions.cpp @@ -27,6 +27,10 @@ #include "base/fstream_path.h" #include "render/dithering_matrix.h" +#if ENABLE_SENTRY +#include "app/sentry_wrapper.h" +#endif + #ifdef ENABLE_SCRIPTING #include "app/script/engine.h" #include "app/script/luacpp.h" @@ -1067,14 +1071,25 @@ Extension* Extensions::loadExtension(const std::string& path, LOG("EXT: Extension '%s' loaded\n", name.c_str()); - std::unique_ptr extension( - new Extension(path, - name, - version, - displayName, - // Extensions are enabled by default - get_config_bool("extensions", name.c_str(), true), - isBuiltinExtension)); +#if ENABLE_SENTRY + if (!isBuiltinExtension) { + std::map data = { { "name", name }, + { "version", version } }; + if (json["author"].is_object()) { + data["url"] = json["author"]["url"].string_value(); + } + Sentry::addBreadcrumb("Load extension", data); + } +#endif + + auto extension = std::make_unique( + path, + name, + version, + displayName, + // Extensions are enabled by default + get_config_bool("extensions", name.c_str(), true), + isBuiltinExtension); auto contributes = json["contributes"]; if (contributes.is_object()) {