Merge pull request #15762 from Snuffleupagus/bug-1803050
Ignore PDF documents opened from "data:"-URLs when handling internal links (bug 1803050)
This commit is contained in:
commit
ff9d21ff0e
@ -52,6 +52,7 @@ import {
|
||||
getFilenameFromUrl,
|
||||
getPdfFilenameFromUrl,
|
||||
getXfaPageViewport,
|
||||
isDataScheme,
|
||||
isPdfFile,
|
||||
isValidFetchUrl,
|
||||
loadScript,
|
||||
@ -125,6 +126,7 @@ export {
|
||||
getXfaPageViewport,
|
||||
GlobalWorkerOptions,
|
||||
InvalidPDFException,
|
||||
isDataScheme,
|
||||
isPdfFile,
|
||||
loadScript,
|
||||
MissingPDFException,
|
||||
|
22
web/app.js
22
web/app.js
@ -42,6 +42,7 @@ import {
|
||||
getPdfFilenameFromUrl,
|
||||
GlobalWorkerOptions,
|
||||
InvalidPDFException,
|
||||
isDataScheme,
|
||||
isPdfFile,
|
||||
loadScript,
|
||||
MissingPDFException,
|
||||
@ -731,6 +732,9 @@ const PDFViewerApplication = {
|
||||
this._downloadUrl =
|
||||
downloadUrl === url ? this.baseUrl : downloadUrl.split("#")[0];
|
||||
}
|
||||
if (isDataScheme(url)) {
|
||||
this._hideViewBookmark();
|
||||
}
|
||||
let title = getPdfFilenameFromUrl(url, "");
|
||||
if (!title) {
|
||||
try {
|
||||
@ -766,8 +770,17 @@ const PDFViewerApplication = {
|
||||
* @private
|
||||
*/
|
||||
_hideViewBookmark() {
|
||||
const { viewBookmarkButton, presentationModeButton } =
|
||||
this.appConfig.secondaryToolbar;
|
||||
|
||||
// URL does not reflect proper document location - hiding some buttons.
|
||||
this.appConfig.secondaryToolbar.viewBookmarkButton.hidden = true;
|
||||
viewBookmarkButton.hidden = true;
|
||||
|
||||
// Avoid displaying multiple consecutive separators in the secondaryToolbar.
|
||||
if (presentationModeButton.hidden) {
|
||||
const element = document.getElementById("viewBookmarkSeparator");
|
||||
element.hidden = true;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@ -1124,6 +1137,11 @@ const PDFViewerApplication = {
|
||||
} else if (PDFJSDev.test("CHROME")) {
|
||||
baseDocumentUrl = location.href.split("#")[0];
|
||||
}
|
||||
if (baseDocumentUrl && isDataScheme(baseDocumentUrl)) {
|
||||
// Ignore "data:"-URLs for performance reasons, even though it may cause
|
||||
// internal links to not work perfectly in all cases (see bug 1803050).
|
||||
baseDocumentUrl = null;
|
||||
}
|
||||
this.pdfLinkService.setDocument(pdfDocument, baseDocumentUrl);
|
||||
this.pdfDocumentProperties.setDocument(pdfDocument);
|
||||
|
||||
@ -2137,7 +2155,7 @@ function webViewerInitialized() {
|
||||
}
|
||||
|
||||
if (!PDFViewerApplication.supportsFullscreen) {
|
||||
appConfig.secondaryToolbar.presentationModeButton.classList.add("hidden");
|
||||
appConfig.secondaryToolbar.presentationModeButton.hidden = true;
|
||||
}
|
||||
|
||||
if (PDFViewerApplication.supportsIntegratedFind) {
|
||||
|
@ -208,7 +208,7 @@ See https://github.com/adobe-type-tools/cmap-resources
|
||||
<span data-l10n-id="bookmark_label">Current View</span>
|
||||
</a>
|
||||
|
||||
<div class="horizontalToolbarSeparator"></div>
|
||||
<div id="viewBookmarkSeparator" class="horizontalToolbarSeparator"></div>
|
||||
|
||||
<button id="firstPage" class="secondaryToolbarButton" title="Go to First Page" tabindex="56" data-l10n-id="first_page">
|
||||
<span data-l10n-id="first_page_label">Go to First Page</span>
|
||||
|
Loading…
Reference in New Issue
Block a user