mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-21 07:38:07 +02:00
Handle broken, Ghostscript generated, Metadata that contains HTML character names (bug 1424938)
Please note that while this could be considered a regression in user-facing behaviour, I'm not convinced that it's really a regression as such since prior to PR 8912 the Metadata would fail to parse (with an XML error) and thus be ignored when setting the viewer title. With the refactored Metadata parsing we're now able to parse this, which uncovered issues with a subset of broken Ghostscript Metadata that uses HTML character names. Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1424938
This commit is contained in:
parent
b327633ad6
commit
ad5ed37059
2 changed files with 61 additions and 0 deletions
|
@ -49,4 +49,51 @@ describe('metadata', function() {
|
|||
|
||||
expect(metadata.getAll()).toEqual({ 'dc:title': 'PDF&', });
|
||||
});
|
||||
|
||||
it('should repair and handle invalid metadata (bug 1424938)', function() {
|
||||
let invalidData = '<x:xmpmeta xmlns:x=\'adobe:ns:meta/\' ' +
|
||||
'x:xmptk=\'XMP toolkit 2.9.1-13, framework 1.6\'>' +
|
||||
'<rdf:RDF xmlns:rdf=\'http://www.w3.org/1999/02/22-rdf-syntax-ns#\' ' +
|
||||
'xmlns:iX=\'http://ns.adobe.com/iX/1.0/\'>' +
|
||||
'<rdf:Description rdf:about=\'61652fa7-fc1f-11dd-0000-ce81d41f9ecf\' ' +
|
||||
'xmlns:pdf=\'http://ns.adobe.com/pdf/1.3/\' ' +
|
||||
'pdf:Producer=\'GPL Ghostscript 8.63\'/>' +
|
||||
'<rdf:Description rdf:about=\'61652fa7-fc1f-11dd-0000-ce81d41f9ecf\' ' +
|
||||
'xmlns:xap=\'http://ns.adobe.com/xap/1.0/\' ' +
|
||||
'xap:ModifyDate=\'2009-02-13T12:42:54+01:00\' ' +
|
||||
'xap:CreateDate=\'2009-02-13T12:42:54+01:00\'>' +
|
||||
'<xap:CreatorTool>\\376\\377\\000P\\000D\\000F\\000C\\000r\\000e\\000a' +
|
||||
'\\000t\\000o\\000r\\000 \\000V\\000e\\000r\\000s\\000i\\000o\\000n' +
|
||||
'\\000 \\0000\\000.\\0009\\000.\\0006</xap:CreatorTool>' +
|
||||
'</rdf:Description><rdf:Description ' +
|
||||
'rdf:about=\'61652fa7-fc1f-11dd-0000-ce81d41f9ecf\' ' +
|
||||
'xmlns:xapMM=\'http://ns.adobe.com/xap/1.0/mm/\' ' +
|
||||
'xapMM:DocumentID=\'61652fa7-fc1f-11dd-0000-ce81d41f9ecf\'/>' +
|
||||
'<rdf:Description rdf:about=\'61652fa7-fc1f-11dd-0000-ce81d41f9ecf\' ' +
|
||||
'xmlns:dc=\'http://purl.org/dc/elements/1.1/\' ' +
|
||||
'dc:format=\'application/pdf\'><dc:title><rdf:Alt>' +
|
||||
'<rdf:li xml:lang=\'x-default\'>\\376\\377\\000L\\000'\\000O\\000d' +
|
||||
'\\000i\\000s\\000s\\000e\\000e\\000 \\000t\\000h\\000\\351\\000m\\000a' +
|
||||
'\\000t\\000i\\000q\\000u\\000e\\000 \\000l\\000o\\000g\\000o\\000 ' +
|
||||
'\\000O\\000d\\000i\\000s\\000s\\000\\351\\000\\351\\000 \\000-\\000 ' +
|
||||
'\\000d\\000\\351\\000c\\000e\\000m\\000b\\000r\\000e\\000 \\0002\\0000' +
|
||||
'\\0000\\0008\\000.\\000p\\000u\\000b</rdf:li></rdf:Alt></dc:title>' +
|
||||
'<dc:creator><rdf:Seq><rdf:li>\\376\\377\\000O\\000D\\000I\\000S' +
|
||||
'</rdf:li></rdf:Seq></dc:creator></rdf:Description></rdf:RDF>' +
|
||||
'</x:xmpmeta>';
|
||||
let metadata = new Metadata(invalidData);
|
||||
|
||||
expect(metadata.has('dc:title')).toBeTruthy();
|
||||
expect(metadata.has('dc:qux')).toBeFalsy();
|
||||
|
||||
expect(metadata.get('dc:title')).toEqual(
|
||||
'L\'Odissee thématique logo Odisséé - décembre 2008.pub');
|
||||
expect(metadata.get('dc:qux')).toEqual(null);
|
||||
|
||||
expect(metadata.getAll()).toEqual({
|
||||
'dc:creator': 'ODIS',
|
||||
'dc:title': 'L\'Odissee thématique logo Odisséé - décembre 2008.pub',
|
||||
'xap:creatortool': 'PDFCreator Version 0.9.6',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue