Skip to content

Commit

Permalink
Merge pull request #11134 from Snuffleupagus/addLinkAttributes-assert…
Browse files Browse the repository at this point in the history
…-url

Ensure that `addLinkAttributes` is always called with a valid `url` parameter
  • Loading branch information
timvandermeij authored Sep 11, 2019
2 parents 2d2ec11 + 00efff5 commit 12ff252
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 22 deletions.
26 changes: 12 additions & 14 deletions src/display/annotation_layer.js
Original file line number Diff line number Diff line change
Expand Up @@ -294,20 +294,18 @@ class LinkAnnotationElement extends AnnotationElement {
const { data, linkService, } = this;
const link = document.createElement('a');

addLinkAttributes(link, {
url: data.url,
target: (data.newWindow ?
LinkTarget.BLANK : linkService.externalLinkTarget),
rel: linkService.externalLinkRel,
enabled: linkService.externalLinkEnabled,
});

if (!data.url) {
if (data.action) {
this._bindNamedAction(link, data.action);
} else {
this._bindLink(link, data.dest);
}
if (data.url) {
addLinkAttributes(link, {
url: data.url,
target: (data.newWindow ?
LinkTarget.BLANK : linkService.externalLinkTarget),
rel: linkService.externalLinkRel,
enabled: linkService.externalLinkEnabled,
});
} else if (data.action) {
this._bindNamedAction(link, data.action);
} else {
this._bindLink(link, data.dest);
}

this.container.appendChild(link);
Expand Down
17 changes: 9 additions & 8 deletions src/display/display_utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,10 @@ const LinkTargetStringMap = [
* @param {ExternalLinkParameters} params
*/
function addLinkAttributes(link, { url, target, rel, enabled = true, } = {}) {
const urlNullRemoved = (url ? removeNullCharacters(url) : '');
assert(url && typeof url === 'string',
'addLinkAttributes: A valid "url" parameter must provided.');

const urlNullRemoved = removeNullCharacters(url);
if (enabled) {
link.href = link.title = urlNullRemoved;
} else {
Expand All @@ -365,14 +368,12 @@ function addLinkAttributes(link, { url, target, rel, enabled = true, } = {}) {
};
}

if (url) {
const LinkTargetValues = Object.values(LinkTarget);
const targetIndex =
LinkTargetValues.includes(target) ? target : LinkTarget.NONE;
link.target = LinkTargetStringMap[targetIndex];
const LinkTargetValues = Object.values(LinkTarget);
const targetIndex =
LinkTargetValues.includes(target) ? target : LinkTarget.NONE;
link.target = LinkTargetStringMap[targetIndex];

link.rel = (typeof rel === 'string' ? rel : DEFAULT_LINK_REL);
}
link.rel = (typeof rel === 'string' ? rel : DEFAULT_LINK_REL);
}

// Gets the file name from a given URL.
Expand Down

0 comments on commit 12ff252

Please sign in to comment.