“use strict”;
exports.availableDocumentFeatures = [
"FetchExternalResources", "ProcessExternalResources", "SkipExternalResources"
];
exports.defaultDocumentFeatures = {
FetchExternalResources: ["script", "link"], // omitted by default: "frame" ProcessExternalResources: ["script"], // omitted by default: "frame", "iframe" SkipExternalResources: false
};
exports.applyDocumentFeatures = (documentImpl, features) => {
features = features || {}; for (let i = 0; i < exports.availableDocumentFeatures.length; ++i) { const featureName = exports.availableDocumentFeatures[i]; let featureSource; if (features[featureName] !== undefined) { featureSource = features[featureName]; // We have to check the lowercase version also because the Document feature // methods convert everything to lowercase. } else if (typeof features[featureName.toLowerCase()] !== "undefined") { featureSource = features[featureName.toLowerCase()]; } else if (exports.defaultDocumentFeatures[featureName]) { featureSource = exports.defaultDocumentFeatures[featureName]; } else { continue; } const implImpl = documentImpl._implementation; implImpl._removeFeature(featureName); if (featureSource !== undefined) { if (Array.isArray(featureSource)) { for (let j = 0; j < featureSource.length; ++j) { implImpl._addFeature(featureName, featureSource[j]); } } else { implImpl._addFeature(featureName, featureSource); } } }
};