-
-
Notifications
You must be signed in to change notification settings - Fork 291
Description
So I'm scraping a site and generating integrity attributes but after returning the parsed body the integrity attributes are being striped.
I've found at resource-handler/html/index.js:55 is the following section
then((updatedText) => {
el.setData(updatedText);
el.removeIntegrityCheck();
});
Which is the issue, it looks like you check a bunch of child elements to find any other resources to load but in the process remove the integrity (which makes sense if you change the content of the child resource), but my use case no child resource has anything that ever changes as all links are relative/external.
I applied the following patch locally to test:
almightyju@ecc8aac
But I'm not convinced its the right approach since it doesn't work without a modified getReference action as this line in resource-handler/index.js:61
const { reference } = await self.getReference({parentResource, resource: respondedResource, originalReference: childPath});
sets reference as 'relative/url' when the original reference was '/relative/url' which means the content is different in the html resource handler and strips the integrity attribute. I've changed the getReference function via a plugin for myself but I'm not sure how badly it will break other cases if this was in your library and without it my patch is rather obscure to use.
Hoping there might be an easy way to resolve the leading / being stripped from the originalReference :)