mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-08 17:30:09 +02:00
XFA - Add <a> element in button when an url is detected (bug 1716758)
- it aims to fix https://bugzilla.mozilla.org/show_bug.cgi?id=1716758; - some buttons have a JS action with the pattern `app.launchURL(...)` (or similar) so extract when it's possible the url and generate a <a> element with the href equals to the found url; - pdf.js already had some code to handle that so this patch slightly refactor that.
This commit is contained in:
parent
3b1d547738
commit
558e58f354
8 changed files with 173 additions and 44 deletions
|
@ -26,10 +26,14 @@ import {
|
|||
$toStyle,
|
||||
XFAObject,
|
||||
} from "./xfa_object.js";
|
||||
import {
|
||||
addDefaultProtocolToUrl,
|
||||
tryConvertUrlEncoding,
|
||||
} from "../core_utils.js";
|
||||
import { createValidAbsoluteUrl, warn } from "../../shared/util.js";
|
||||
import { getMeasurement, stripQuotes } from "./utils.js";
|
||||
import { selectFont } from "./fonts.js";
|
||||
import { TextMeasure } from "./text.js";
|
||||
import { warn } from "../../shared/util.js";
|
||||
|
||||
function measureToString(m) {
|
||||
if (typeof m === "string") {
|
||||
|
@ -633,11 +637,24 @@ function setFontFamily(xfaFont, node, fontFinder, style) {
|
|||
}
|
||||
}
|
||||
|
||||
function fixURL(str) {
|
||||
if (typeof str === "string") {
|
||||
let url = addDefaultProtocolToUrl(str);
|
||||
url = tryConvertUrlEncoding(url);
|
||||
const absoluteUrl = createValidAbsoluteUrl(url);
|
||||
if (absoluteUrl) {
|
||||
return absoluteUrl.href;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export {
|
||||
computeBbox,
|
||||
createWrapper,
|
||||
fixDimensions,
|
||||
fixTextIndent,
|
||||
fixURL,
|
||||
isPrintOnly,
|
||||
layoutClass,
|
||||
layoutNode,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue