diff --git a/static/skin/viewer.js b/static/skin/viewer.js
index 99ee06c4..75be6dc1 100644
--- a/static/skin/viewer.js
+++ b/static/skin/viewer.js
@@ -352,6 +352,10 @@ function linkShouldBeOpenedInANewWindow(linkElement, mouseEvent) {
|| mouseEvent.metaKey /* on Macs */;
}
+function goingToOpenALinkToAnUndisplayableResource(url) {
+ return !navigator.pdfViewerEnabled && url.pathname.endsWith('.pdf');
+}
+
function onClickEvent(e) {
const iframeDocument = contentIframe.contentDocument;
const target = matchingAncestorElement(e.target, iframeDocument, "a");
@@ -359,7 +363,8 @@ function onClickEvent(e) {
const target_href = getRealHref(target);
const target_url = new URL(target_href, iframeDocument.location);
const isExternalAppUrl = urlMustBeHandledByAnExternalApp(target_url);
- if ( isExternalAppUrl && !viewerSettings.linkBlockingEnabled ) {
+ if ( (isExternalAppUrl && !viewerSettings.linkBlockingEnabled)
+ || goingToOpenALinkToAnUndisplayableResource(target_url) ) {
target.setAttribute("target", "_blank");
}
diff --git a/test/server.cpp b/test/server.cpp
index 8f0b1a3d..f00bb691 100644
--- a/test/server.cpp
+++ b/test/server.cpp
@@ -75,7 +75,7 @@ const ResourceCollection resources200Compressible{
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/taskbar.css" },
{ STATIC_CONTENT, "/ROOT%23%3F/skin/taskbar.css?cacheid=80d56607" },
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/viewer.js" },
- { STATIC_CONTENT, "/ROOT%23%3F/skin/viewer.js?cacheid=fdec37a7" },
+ { STATIC_CONTENT, "/ROOT%23%3F/skin/viewer.js?cacheid=787e61d4" },
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/fonts/Poppins.ttf" },
{ STATIC_CONTENT, "/ROOT%23%3F/skin/fonts/Poppins.ttf?cacheid=af705837" },
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/fonts/Roboto.ttf" },
@@ -327,7 +327,7 @@ R"EXPECTEDRESULT(
-
+
const blankPageUrl = root + "/skin/blank.html?cacheid=6b1fa032";