@@ -158,13 +158,51 @@ public Logger logger() {
158
158
}
159
159
final Engine engine = engineRef .get ();
160
160
if (engine == null ) {
161
- showMessageWithUrlLink ("JX Browser engine failed to start" , contentManager );
161
+ showMessageWithUrlLink (jxBrowserErrorMessage () , contentManager );
162
162
return null ;
163
163
} else {
164
164
return new EmbeddedJxBrowserTab (engine );
165
165
}
166
166
}
167
167
168
+ private @ NotNull String jxBrowserErrorMessage () {
169
+ final String defaultError = "JX Browser engine failed to start" ;
170
+ if (jxBrowserManager == null ) {
171
+ return defaultError ;
172
+ }
173
+ switch (jxBrowserManager .getStatus ()) {
174
+ case NOT_INSTALLED :
175
+ return "JX Browser is not installed" ;
176
+ case INSTALLATION_IN_PROGRESS :
177
+ return "JX Browser installation in progress" ;
178
+ case INSTALLATION_SKIPPED :
179
+ return "JX Browser installation skipped" ;
180
+ case INSTALLATION_FAILED :
181
+ final InstallationFailedReason failedReason = jxBrowserManager .getLatestFailureReason ();
182
+ final @ Nullable String errorFromFailedMessage = jxBrowserErrorFromFailedReason (failedReason );
183
+ return errorFromFailedMessage != null ? errorFromFailedMessage : defaultError ;
184
+ default :
185
+ return defaultError ;
186
+ }
187
+ }
188
+
189
+ private @ Nullable String jxBrowserErrorFromFailedReason (@ Nullable InstallationFailedReason failedReason ) {
190
+ if (failedReason == null ) return null ;
191
+ final FailureType failureType = failedReason .failureType ;
192
+ if (failureType == null ) return null ;
193
+ return switch (failureType ) {
194
+ case SYSTEM_INCOMPATIBLE -> "System is incompatible with JX Browser" ;
195
+ case FILE_DOWNLOAD_FAILED -> "JX Browser file download failed" ;
196
+ case MISSING_KEY -> "JX Browser license key is missing" ;
197
+ case DIRECTORY_CREATION_FAILED -> "JX Browser directory creation failed" ;
198
+ case MISSING_PLATFORM_FILES -> "JX Browser platform files are missing" ;
199
+ case CLASS_LOAD_FAILED -> "JX Browser class load failed" ;
200
+ case CLASS_NOT_FOUND -> "JX Browser class not found" ;
201
+ default -> null ;
202
+ };
203
+
204
+ }
205
+
168
206
private void manageJxBrowserDownload (ContentManager contentManager ) {
169
207
final JxBrowserStatus jxBrowserStatus = jxBrowserManager .getStatus ();
170
208
0 commit comments