Merge pull request #9821 from Snuffleupagus/onOpenWithURL-originalUrl

Set the correct document title when opening a new file in the `GENERIC` default viewer
This commit is contained in:
Tim van der Meij 2018-06-17 20:27:16 +02:00 committed by GitHub
commit 3b07147d98
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 12 deletions

View File

@ -593,13 +593,13 @@ let PDFViewerApplication = {
onOpenWithData(data) {
PDFViewerApplication.open(data);
},
onOpenWithURL(url, length, originalURL) {
onOpenWithURL(url, length, originalUrl) {
let file = url, args = null;
if (length !== undefined) {
args = { length, };
}
if (originalURL !== undefined) {
file = { url, originalURL, };
if (originalUrl !== undefined) {
file = { url, originalUrl, };
}
PDFViewerApplication.open(file, args);
},
@ -615,7 +615,7 @@ let PDFViewerApplication = {
});
},
setTitleUsingUrl(url) {
setTitleUsingUrl(url = '') {
this.url = url;
this.baseUrl = url.split('#')[0];
let title = getPDFFileNameFromURL(url, '');
@ -1928,8 +1928,13 @@ if (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {
let file = evt.fileInput.files[0];
if (URL.createObjectURL && !AppOptions.get('disableCreateObjectURL')) {
PDFViewerApplication.open(URL.createObjectURL(file));
let url = URL.createObjectURL(file);
if (file.name) {
url = { url, originalUrl: file.name, };
}
PDFViewerApplication.open(url);
} else {
PDFViewerApplication.setTitleUsingUrl(file.name);
// Read the local file into a Uint8Array.
let fileReader = new FileReader();
fileReader.onload = function webViewerChangeFileReaderOnload(evt) {
@ -1939,8 +1944,6 @@ if (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {
fileReader.readAsArrayBuffer(file);
}
PDFViewerApplication.setTitleUsingUrl(file.name);
// URL does not reflect proper document location - hiding some icons.
let appConfig = PDFViewerApplication.appConfig;
appConfig.toolbar.viewBookmark.setAttribute('hidden', 'true');

View File

@ -201,7 +201,7 @@ function requestAccessToLocalFile(fileUrl, overlayManager, callback) {
let file = this.files[0];
if (file) {
let originalFilename = decodeURIComponent(fileUrl.split('/').pop());
let originalURL = fileUrl;
let originalUrl = fileUrl;
if (originalFilename !== file.name) {
let msg = 'The selected file does not match the original file.' +
'\nOriginal: ' + originalFilename +
@ -213,9 +213,9 @@ function requestAccessToLocalFile(fileUrl, overlayManager, callback) {
}
// There is no way to retrieve the original URL from the File object.
// So just generate a fake path.
originalURL = 'file:///fakepath/to/' + encodeURIComponent(file.name);
originalUrl = 'file:///fakepath/to/' + encodeURIComponent(file.name);
}
callback(URL.createObjectURL(file), file.size, originalURL);
callback(URL.createObjectURL(file), file.size, originalUrl);
overlayManager.close('chromeFileAccessOverlay');
}
};
@ -384,8 +384,8 @@ ChromeExternalServices.initPassiveLoading = function(callbacks) {
let { overlayManager, } = PDFViewerApplication;
// defaultUrl is set in viewer.js
ChromeCom.resolvePDFFile(AppOptions.get('defaultUrl'), overlayManager,
function(url, length, originalURL) {
callbacks.onOpenWithURL(url, length, originalURL);
function(url, length, originalUrl) {
callbacks.onOpenWithURL(url, length, originalUrl);
});
};
ChromeExternalServices.createDownloadManager = function(options) {