diff --git a/web/app.js b/web/app.js index e065c8f31..8cd082b3f 100644 --- a/web/app.js +++ b/web/app.js @@ -569,14 +569,17 @@ var PDFViewerApplication = { setTitleUsingUrl: function pdfViewSetTitleUsingUrl(url) { this.url = url; this.baseUrl = url.split('#')[0]; - try { - this.setTitle(decodeURIComponent( - pdfjsLib.getFilenameFromUrl(url)) || url); - } catch (e) { - // decodeURIComponent may throw URIError, - // fall back to using the unprocessed url in that case - this.setTitle(url); + var title = getPDFFileNameFromURL(url, ''); + if (!title) { + try { + title = decodeURIComponent(pdfjsLib.getFilenameFromUrl(url)) || url; + } catch (e) { + // decodeURIComponent may throw URIError, + // fall back to using the unprocessed url in that case + title = url; + } } + this.setTitle(title); }, setTitle: function pdfViewSetTitle(title) { diff --git a/web/ui_utils.js b/web/ui_utils.js index 6e9cc9d30..54b4d9226 100644 --- a/web/ui_utils.js +++ b/web/ui_utils.js @@ -368,9 +368,13 @@ function noContextMenuHandler(e) { /** * Returns the filename or guessed filename from the url (see issue 3455). * url {String} The original PDF location. + * defaultFilename {string} The value to return if the file name is unknown. * @return {String} Guessed PDF file name. */ -function getPDFFileNameFromURL(url) { +function getPDFFileNameFromURL(url, defaultFilename) { + if (typeof defaultFilename === 'undefined') { + defaultFilename = 'document.pdf'; + } var reURI = /^(?:(?:[^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; // SCHEME HOST 1.PATH 2.QUERY 3.REF // Pattern to get last matching NAME.pdf @@ -392,7 +396,7 @@ function getPDFFileNameFromURL(url) { } } } - return suggestedFilename || 'document.pdf'; + return suggestedFilename || defaultFilename; } function normalizeWheelEventDelta(evt) {