In step 2 of "fetch a style resource" we have:
Let base be sheet’s stylesheet base URL if it is not null, otherwise environmentSettings’s API base URL. [CSSOM]
However, only stylesheets constructed from JS have a base URL set. For those that don't, I believe we should fall back to sheet's location, and only afterwards use the API base URL. As an example:
index.html
<!DOCTYPE html>
<style>
@import url("data/sheet.css");
</style>
<div id="checkerboard"></div>
data/sheet.css
#checkerboard {
background: url("image.png");
}
With the current algorithm, sheet has no base URL, so it would fall back to the API base URL, which is the document's location. It would thus try to load image.png instead of data/image.png. Inserting the sheet's location as a fallback means that it would load relative to data/sheet.css, and so get data/image.png.
In step 2 of "fetch a style resource" we have:
However, only stylesheets constructed from JS have a base URL set. For those that don't, I believe we should fall back to sheet's location, and only afterwards use the API base URL. As an example:
index.html
data/sheet.css
With the current algorithm, sheet has no base URL, so it would fall back to the API base URL, which is the document's location. It would thus try to load
image.pnginstead ofdata/image.png. Inserting the sheet's location as a fallback means that it would load relative todata/sheet.css, and so getdata/image.png.