@mtdt.temp/browser-core
Version:
Datadog browser core utilities.
30 lines • 1.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ERROR_NOT_ALLOWED_TRACKING_ORIGIN = exports.WARN_DOES_NOT_HAVE_ALLOWED_TRACKING_ORIGIN = void 0;
exports.isAllowedTrackingOrigins = isAllowedTrackingOrigins;
const display_1 = require("../tools/display");
const matchOption_1 = require("../tools/matchOption");
const extensionUtils_1 = require("./extension/extensionUtils");
const telemetry_1 = require("./telemetry");
exports.WARN_DOES_NOT_HAVE_ALLOWED_TRACKING_ORIGIN = 'Running the Browser SDK in a Web extension content script is discouraged and will be forbidden in a future major release unless the `allowedTrackingOrigins` option is provided.';
exports.ERROR_NOT_ALLOWED_TRACKING_ORIGIN = 'SDK initialized on a non-allowed domain.';
function isAllowedTrackingOrigins(configuration, windowOrigin = typeof location !== 'undefined' ? location.origin : '', errorStack = new Error().stack) {
const allowedTrackingOrigins = configuration.allowedTrackingOrigins;
if (!allowedTrackingOrigins) {
if ((0, extensionUtils_1.isUnsupportedExtensionEnvironment)(windowOrigin, errorStack)) {
display_1.display.warn(exports.WARN_DOES_NOT_HAVE_ALLOWED_TRACKING_ORIGIN);
const extensionUrl = (0, extensionUtils_1.extractExtensionUrlFromStack)(errorStack);
(0, telemetry_1.addTelemetryDebug)(exports.WARN_DOES_NOT_HAVE_ALLOWED_TRACKING_ORIGIN, {
extensionUrl: extensionUrl || 'unknown',
});
// TODO(next major): make `allowedTrackingOrigins` required in unsupported extension environments
}
return true;
}
const isAllowed = (0, matchOption_1.matchList)(allowedTrackingOrigins, windowOrigin);
if (!isAllowed) {
display_1.display.error(exports.ERROR_NOT_ALLOWED_TRACKING_ORIGIN);
}
return isAllowed;
}
//# sourceMappingURL=allowedTrackingOrigins.js.map