Add a utility function, for the viewer, that removes null
(\x00) characters (issue 6416)
Since some browsers render `null` characters, and others don't, this patch adds a way to remove them to prevent display issues in the viewer UI. Given that documents may contain very long outlines, I've added a utility function to avoid creating a lot of unnecessary `RegExp` objects. To avoid any future issues, this utility function is used for both the outline and the attachments. Fixes 6416.
This commit is contained in:
parent
3daae40425
commit
b7d1bed463
@ -14,7 +14,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
/* globals getFileName */
|
/* globals getFileName, removeNullCharacters */
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ var PDFAttachmentView = (function PDFAttachmentViewClosure() {
|
|||||||
div.className = 'attachmentsItem';
|
div.className = 'attachmentsItem';
|
||||||
var button = document.createElement('button');
|
var button = document.createElement('button');
|
||||||
this._bindLink(button, item.content, filename);
|
this._bindLink(button, item.content, filename);
|
||||||
button.textContent = filename;
|
button.textContent = removeNullCharacters(filename);
|
||||||
div.appendChild(button);
|
div.appendChild(button);
|
||||||
this.container.appendChild(div);
|
this.container.appendChild(div);
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
/* globals removeNullCharacters */
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
@ -138,7 +139,7 @@ var PDFOutlineView = (function PDFOutlineViewClosure() {
|
|||||||
div.className = 'outlineItem';
|
div.className = 'outlineItem';
|
||||||
var element = document.createElement('a');
|
var element = document.createElement('a');
|
||||||
this._bindLink(element, item);
|
this._bindLink(element, item);
|
||||||
element.textContent = item.title;
|
element.textContent = removeNullCharacters(item.title);
|
||||||
div.appendChild(element);
|
div.appendChild(element);
|
||||||
|
|
||||||
if (item.items.length > 0) {
|
if (item.items.length > 0) {
|
||||||
|
@ -75,6 +75,12 @@ var CustomStyle = (function CustomStyleClosure() {
|
|||||||
return CustomStyle;
|
return CustomStyle;
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
var NullCharactersRegExp = /\x00/g;
|
||||||
|
|
||||||
|
function removeNullCharacters(str) {
|
||||||
|
return str.replace(NullCharactersRegExp, '');
|
||||||
|
}
|
||||||
|
|
||||||
function getFileName(url) {
|
function getFileName(url) {
|
||||||
var anchor = url.indexOf('#');
|
var anchor = url.indexOf('#');
|
||||||
var query = url.indexOf('?');
|
var query = url.indexOf('?');
|
||||||
|
Loading…
Reference in New Issue
Block a user