Project

Profile

Help

Bug #4116

Cannot load SEF stylesheet under NW.js

Added by Olivier XILLO about 1 year ago. Updated 3 months ago.

Status:
Resolved
Priority:
Low
Assignee:
-
Sprint/Milestone:
-
Start date:
2019-01-28
Due date:
% Done:

0%

Applies to JS Branch:
1.0
Fix Committed on JS Branch:
1.0, Trunk
Fixed in JS Release:
SEF Generated with:
9.8
Company:
-
Contact person:
-
Additional contact persons:
-

Description

Using Saxon-JS 1.2.0, when trying to load a stylesheet in a NW.js app (v0.35.5) using Saxon-JS 1.2.0, the following is returned.

SaxonJS.js:17943 Uncaught XError: stylesheetLocation should be absolute by now

After digging into the code, the problem appears to come from the regex in the isAbsoluteURI function. Indeed, NW.js fetches the files from an 'chrome-extension://' URL.

Changing the regex to

/^(?:[a-z-]+:)?\/\//i

worked for me.

History

#1 Updated by Debbie Lockett about 1 year ago

Thanks for reporting the bug. And for digging down to find the cause, and provide a patch!

#2 Updated by Debbie Lockett 3 months ago

  • Status changed from New to Resolved
  • Fix Committed on JS Branch 1.0, Trunk added

The Uniform Resource Identifier (URI) spec (https://tools.ietf.org/html/rfc3986#section-3.1) says:

"Scheme names consist of a sequence of characters beginning with a letter and followed by any combination of letters, digits, plus ("+"), period ("."), or hyphen ("-"). Although schemes are case- insensitive, the canonical form is lowercase and documents that specify schemes must do so with lowercase letters. An implementation should accept uppercase letters as equivalent to lowercase in scheme names (e.g., allow "HTTP" as well as "http") for the sake of robustness but should only produce lowercase scheme names for consistency."

So for completeness, it looks like the regex should actually be /^(?:[A-Za-z][A-Za-z0-9+.-]+:)?\/\//i

Change committed on Saxon-JS 1.x and 2.0 branches.

Please register to edit this issue

Also available in: Atom PDF Tracking page