public static BrowserErrorNode newBrowserErrorNode(@NotNull BrowserNode parent,
@Nullable String pathToJsFileWithError,
@Nullable String errorMessage) {
ConfigNode configNode = parent.getParent();
String basePath = configNode.getAbsoluteBasePath();
final JsErrorMessage parsedErrorMessage;
if (basePath != null && errorMessage != null) {
parsedErrorMessage = JsErrorMessage.parseFromText(errorMessage, new File(basePath));
} else {
parsedErrorMessage = null;
}
JsErrorMessage result = null;
if (pathToJsFileWithError == null) {
result = parsedErrorMessage;
} else {
File file = new File(pathToJsFileWithError);
if (file.isAbsolute() && file.isFile()) {
if (parsedErrorMessage != null && parsedErrorMessage.getFileWithError().equals(file)) {
result = parsedErrorMessage;
} else {
result = new JsErrorMessage(file, 1, null, false, null, -1, -1);
}
}
}
return new BrowserErrorNode(parent, result);
}