Merge pull request #1326 from brendandahl/sanitizelinks
Sanitize pdf link urls.
This commit is contained in:
commit
6d23a0cb0f
23
src/core.js
23
src/core.js
@ -310,6 +310,22 @@ var Page = (function PageClosure() {
|
|||||||
return null;
|
return null;
|
||||||
return item.get(name);
|
return item.get(name);
|
||||||
}
|
}
|
||||||
|
function isValidUrl(url) {
|
||||||
|
if (!url)
|
||||||
|
return false;
|
||||||
|
var colon = url.indexOf(':');
|
||||||
|
if (colon < 0)
|
||||||
|
return false;
|
||||||
|
var protocol = url.substr(0, colon);
|
||||||
|
switch (protocol) {
|
||||||
|
case 'http':
|
||||||
|
case 'https':
|
||||||
|
case 'ftp':
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var annotations = xref.fetchIfRef(this.annotations) || [];
|
var annotations = xref.fetchIfRef(this.annotations) || [];
|
||||||
var i, n = annotations.length;
|
var i, n = annotations.length;
|
||||||
@ -338,7 +354,12 @@ var Page = (function PageClosure() {
|
|||||||
if (a) {
|
if (a) {
|
||||||
switch (a.get('S').name) {
|
switch (a.get('S').name) {
|
||||||
case 'URI':
|
case 'URI':
|
||||||
item.url = a.get('URI');
|
var url = a.get('URI');
|
||||||
|
// TODO: pdf spec mentions urls can be relative to a Base
|
||||||
|
// entry in the dictionary.
|
||||||
|
if (!isValidUrl(url))
|
||||||
|
url = '';
|
||||||
|
item.url = url;
|
||||||
break;
|
break;
|
||||||
case 'GoTo':
|
case 'GoTo':
|
||||||
item.dest = a.get('D');
|
item.dest = a.get('D');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user