Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 13 additions & 15 deletions scripts/build/build-test-apps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,9 @@ import { printLog, runMain } from '../lib/executionUtils.ts'
import { command } from '../lib/command.ts'
import { modifyFile } from '../lib/filesUtils.ts'

interface ExtensionConfig {
name: string
initParameter: string
}

const EXTRA_EXTENSIONS: ExtensionConfig[] = [
{ name: 'allowed-tracking-origin', initParameter: 'allowedTrackingOrigins: [/^chrome-extension:\\/\\//],' },
{ name: 'invalid-tracking-origin', initParameter: "allowedTrackingOrigins: ['https://app.example.com']," },
const OTHER_EXTENSIONS: Array<{ name: string; options?: { runAt?: string } }> = [
{ name: 'cdn' },
{ name: 'appendChild', options: { runAt: 'document_start' } },
]

runMain(async () => {
Expand Down Expand Up @@ -66,17 +61,20 @@ async function buildExtensions(): Promise<void> {

buildApp(baseExtDir)

for (const { name, initParameter } of EXTRA_EXTENSIONS) {
const targetDir = path.join('test/apps', name)
for (const { name, options } of OTHER_EXTENSIONS) {
const targetDir = path.join('test/apps', `${name}-extension`)

fs.rmSync(targetDir, { recursive: true, force: true })
fs.cpSync(baseExtDir, targetDir, { recursive: true })

const contentScriptPath = path.join(targetDir, 'src/contentScript.ts')
await modifyFile(contentScriptPath, (content: string) =>
content.replace(/\/\* EXTENSION_INIT_PARAMETER \*\//g, initParameter)
)
const manifestPath = path.join(targetDir, 'manifest.json')
await modifyFile(manifestPath, (originalContent: string) => {
let content = originalContent.replace('dist/base.js', `dist/${name}.js`)

buildApp(targetDir)
if (options?.runAt) {
content = content.replace('document_end', options.runAt)
}
return content
})
}
}
2 changes: 2 additions & 0 deletions test/apps/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
allowed-tracking-origin/
invalid-tracking-origin/
react-router-v7-app/
cdn-extension/
appendChild-extension/
15 changes: 4 additions & 11 deletions test/apps/base-extension/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,12 @@
"description": "Injects Datadog RUM into every page to inspect data being sent.",
"permissions": ["scripting", "activeTab"],
"host_permissions": ["<all_urls>"],
"background": {
"service_worker": "dist/background.js",
"type": "module"
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["dist/content-script.js"],
"run_at": "document_start"
"js": ["dist/base.js"],
"run_at": "document_end",
"world": "MAIN"
}
],
"action": {
"default_title": "Datadog RUM Testing Extension",
"default_popup": "src/popup.html"
}
]
}
5 changes: 5 additions & 0 deletions test/apps/base-extension/src/appendChild.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const originalAppendChild = Node.prototype.appendChild // eslint-disable-line @typescript-eslint/unbound-method

Node.prototype.appendChild = function <T extends Node>(node: T): T {
return originalAppendChild.call(this, node) as T
}
2 changes: 0 additions & 2 deletions test/apps/base-extension/src/background.ts

This file was deleted.

30 changes: 30 additions & 0 deletions test/apps/base-extension/src/base.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { datadogRum } from '@datadog/browser-rum'
import { datadogLogs } from '@datadog/browser-logs'
import type { RumInitConfiguration } from '@datadog/browser-rum-core'
import type { LogsInitConfiguration } from '@datadog/browser-logs'
import type { Context } from '@datadog/browser-core'

declare global {
interface Window {
EXT_RUM_CONFIGURATION?: RumInitConfiguration
RUM_CONTEXT?: Context
EXT_LOGS_CONFIGURATION?: LogsInitConfiguration
LOGS_CONTEXT?: Context
}
}

if (window.EXT_RUM_CONFIGURATION) {
datadogRum.init(window.EXT_RUM_CONFIGURATION)

if (window.RUM_CONTEXT) {
datadogRum.setGlobalContext(window.RUM_CONTEXT)
}
}

if (window.EXT_LOGS_CONFIGURATION) {
datadogLogs.init(window.EXT_LOGS_CONFIGURATION)

if (window.LOGS_CONTEXT) {
datadogLogs.setGlobalContext(window.LOGS_CONTEXT)
}
}
47 changes: 47 additions & 0 deletions test/apps/base-extension/src/cdn.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import type { RumInitConfiguration, RumPublicApi } from '@datadog/browser-rum-core'
import type { LogsInitConfiguration, LogsGlobal } from '@datadog/browser-logs'
import type { Context } from '@datadog/browser-core'

declare global {
interface Window {
RUM_BUNDLE_URL?: string
LOGS_BUNDLE_URL?: string
EXT_RUM_CONFIGURATION?: RumInitConfiguration
RUM_CONTEXT?: Context
EXT_LOGS_CONFIGURATION?: LogsInitConfiguration
LOGS_CONTEXT?: Context
DD_RUM?: RumPublicApi
DD_LOGS?: LogsGlobal
}
}

function load<T extends 'DD_RUM' | 'DD_LOGS'>(
sdk: T,
url: string,
initConfig: T extends 'DD_RUM' ? RumInitConfiguration : LogsInitConfiguration,
globalContext?: Context
) {
const script = document.createElement('script')
script.src = url
script.onload = () => {
if (!window[sdk]) {
console.error(`${sdk} is not loaded`)
return
}

window[sdk].init(initConfig as any)
if (globalContext) {
window[sdk].setGlobalContext(globalContext)
}
}

document.documentElement.appendChild(script)
}

if (window.RUM_BUNDLE_URL && window.EXT_RUM_CONFIGURATION) {
load('DD_RUM', window.RUM_BUNDLE_URL, window.EXT_RUM_CONFIGURATION, window.RUM_CONTEXT)
}

if (window.LOGS_BUNDLE_URL && window.EXT_LOGS_CONFIGURATION) {
load('DD_LOGS', window.LOGS_BUNDLE_URL, window.EXT_LOGS_CONFIGURATION, window.LOGS_CONTEXT)
}
17 changes: 0 additions & 17 deletions test/apps/base-extension/src/contentScript.ts

This file was deleted.

10 changes: 0 additions & 10 deletions test/apps/base-extension/src/form.html

This file was deleted.

8 changes: 0 additions & 8 deletions test/apps/base-extension/src/popup.html

This file was deleted.

14 changes: 12 additions & 2 deletions test/apps/base-extension/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,18 @@ module.exports = {
mode: 'production',
target: ['web', 'es2018'],
entry: {
'content-script': './src/contentScript.ts',
background: './src/background.ts',
base: './src/base.ts',
cdn: './src/cdn.ts',
appendChild: './src/appendChild.ts',
},
module: {
rules: [
{
test: /\.ts$/,
use: 'ts-loader',
exclude: /node_modules/,
},
],
},
output: {
filename: '[name].js',
Expand Down
16 changes: 8 additions & 8 deletions test/apps/base-extension/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,37 @@ __metadata:

"@datadog/browser-core@file:../../../packages/core/package.tgz::locator=rum-testing-extension%40workspace%3A.":
version: 6.19.0
resolution: "@datadog/browser-core@file:../../../packages/core/package.tgz#../../../packages/core/package.tgz::hash=c8e335&locator=rum-testing-extension%40workspace%3A."
checksum: 10c0/e98c1c4d1dc900848961a233c9cc28fb442219bd45bae226f9a48f6b7282c6ed743a6be9a14477c12affb948184db28a9f9d5c7cd8ce4cf08f6141cbd8bc4679
resolution: "@datadog/browser-core@file:../../../packages/core/package.tgz#../../../packages/core/package.tgz::hash=3d1932&locator=rum-testing-extension%40workspace%3A."
checksum: 10c0/994366172286b77f3f9fba0e134c87b205a1b8bd55d7f2fa01b71a1151d696f4147d9885c3d10e2dea847adb15e70784115595730cf1126f2fe4c899aabb95db
languageName: node
linkType: hard

"@datadog/browser-logs@file:../../../packages/logs/package.tgz::locator=rum-testing-extension%40workspace%3A.":
version: 6.19.0
resolution: "@datadog/browser-logs@file:../../../packages/logs/package.tgz#../../../packages/logs/package.tgz::hash=471336&locator=rum-testing-extension%40workspace%3A."
resolution: "@datadog/browser-logs@file:../../../packages/logs/package.tgz#../../../packages/logs/package.tgz::hash=5e7803&locator=rum-testing-extension%40workspace%3A."
dependencies:
"@datadog/browser-core": "npm:6.19.0"
peerDependencies:
"@datadog/browser-rum": 6.19.0
peerDependenciesMeta:
"@datadog/browser-rum":
optional: true
checksum: 10c0/8266d763df3a6fdc22b3dbd2855fea5799d0f27a476ade83850499a8ee2bc890fd09fa1f534c2ad79d8dce75007d908fc4928f77987bb6f74c1c1e4b11115a7e
checksum: 10c0/542438b155eba1f576c00ec24b36f5a191634c2a1912f4723159e934a02f5b485fa549bc8d8b230941ac68b4b3fe07aad38e40a7fc9407c15e2d6d4961a0d2ce
languageName: node
linkType: hard

"@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz::locator=rum-testing-extension%40workspace%3A.":
version: 6.19.0
resolution: "@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz#../../../packages/rum-core/package.tgz::hash=c25ad6&locator=rum-testing-extension%40workspace%3A."
resolution: "@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz#../../../packages/rum-core/package.tgz::hash=c95a64&locator=rum-testing-extension%40workspace%3A."
dependencies:
"@datadog/browser-core": "npm:6.19.0"
checksum: 10c0/0b46745d5dd37acb24a715b013622ed35ab01e482a0dfed56aca95cde24cfb907cb1f9deba304f8c7f49885519b2238cdc59bf3a5df0eb90e2d756aea02d346d
checksum: 10c0/272794feb33c274a6517d2bafb1107a77fabd1574f36be3ed9c4735fa8355e286d072355e7d55fafc705fea6b96ce3925a748635b9709771093a013330f3ca6f
languageName: node
linkType: hard

"@datadog/browser-rum@file:../../../packages/rum/package.tgz::locator=rum-testing-extension%40workspace%3A.":
version: 6.19.0
resolution: "@datadog/browser-rum@file:../../../packages/rum/package.tgz#../../../packages/rum/package.tgz::hash=603883&locator=rum-testing-extension%40workspace%3A."
resolution: "@datadog/browser-rum@file:../../../packages/rum/package.tgz#../../../packages/rum/package.tgz::hash=ee0f6e&locator=rum-testing-extension%40workspace%3A."
dependencies:
"@datadog/browser-core": "npm:6.19.0"
"@datadog/browser-rum-core": "npm:6.19.0"
Expand All @@ -46,7 +46,7 @@ __metadata:
peerDependenciesMeta:
"@datadog/browser-logs":
optional: true
checksum: 10c0/0d05abf96a68f5c709c21e04b6cce6708f1a5e63d146efe4d42276b36d64abdeaccee39858bc0279a5011ab529d4d0d4430b344e34d0a01eed9b913649acb072
checksum: 10c0/6690b8782df911bfbc4298914ed42bb1b6d1360a5ba43da082423cfa7e083f36e503505e2353ab20df6da1e0d094203257d6a8ae62d5a69cc27c9885fea2e394
languageName: node
linkType: hard

Expand Down
12 changes: 6 additions & 6 deletions test/apps/react-router-v6-app/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ __metadata:

"@datadog/browser-core@file:../../../packages/core/package.tgz::locator=react-router-v6-app%40workspace%3A.":
version: 6.19.0
resolution: "@datadog/browser-core@file:../../../packages/core/package.tgz#../../../packages/core/package.tgz::hash=c8e335&locator=react-router-v6-app%40workspace%3A."
checksum: 10c0/e98c1c4d1dc900848961a233c9cc28fb442219bd45bae226f9a48f6b7282c6ed743a6be9a14477c12affb948184db28a9f9d5c7cd8ce4cf08f6141cbd8bc4679
resolution: "@datadog/browser-core@file:../../../packages/core/package.tgz#../../../packages/core/package.tgz::hash=3d1932&locator=react-router-v6-app%40workspace%3A."
checksum: 10c0/994366172286b77f3f9fba0e134c87b205a1b8bd55d7f2fa01b71a1151d696f4147d9885c3d10e2dea847adb15e70784115595730cf1126f2fe4c899aabb95db
languageName: node
linkType: hard

"@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz::locator=react-router-v6-app%40workspace%3A.":
version: 6.19.0
resolution: "@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz#../../../packages/rum-core/package.tgz::hash=c25ad6&locator=react-router-v6-app%40workspace%3A."
resolution: "@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz#../../../packages/rum-core/package.tgz::hash=c95a64&locator=react-router-v6-app%40workspace%3A."
dependencies:
"@datadog/browser-core": "npm:6.19.0"
checksum: 10c0/0b46745d5dd37acb24a715b013622ed35ab01e482a0dfed56aca95cde24cfb907cb1f9deba304f8c7f49885519b2238cdc59bf3a5df0eb90e2d756aea02d346d
checksum: 10c0/272794feb33c274a6517d2bafb1107a77fabd1574f36be3ed9c4735fa8355e286d072355e7d55fafc705fea6b96ce3925a748635b9709771093a013330f3ca6f
languageName: node
linkType: hard

Expand Down Expand Up @@ -48,7 +48,7 @@ __metadata:

"@datadog/browser-rum@file:../../../packages/rum/package.tgz::locator=react-router-v6-app%40workspace%3A.":
version: 6.19.0
resolution: "@datadog/browser-rum@file:../../../packages/rum/package.tgz#../../../packages/rum/package.tgz::hash=603883&locator=react-router-v6-app%40workspace%3A."
resolution: "@datadog/browser-rum@file:../../../packages/rum/package.tgz#../../../packages/rum/package.tgz::hash=ee0f6e&locator=react-router-v6-app%40workspace%3A."
dependencies:
"@datadog/browser-core": "npm:6.19.0"
"@datadog/browser-rum-core": "npm:6.19.0"
Expand All @@ -57,7 +57,7 @@ __metadata:
peerDependenciesMeta:
"@datadog/browser-logs":
optional: true
checksum: 10c0/0d05abf96a68f5c709c21e04b6cce6708f1a5e63d146efe4d42276b36d64abdeaccee39858bc0279a5011ab529d4d0d4430b344e34d0a01eed9b913649acb072
checksum: 10c0/6690b8782df911bfbc4298914ed42bb1b6d1360a5ba43da082423cfa7e083f36e503505e2353ab20df6da1e0d094203257d6a8ae62d5a69cc27c9885fea2e394
languageName: node
linkType: hard

Expand Down
16 changes: 8 additions & 8 deletions test/apps/vanilla/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,37 @@ __metadata:

"@datadog/browser-core@file:../../../packages/core/package.tgz::locator=app%40workspace%3A.":
version: 6.19.0
resolution: "@datadog/browser-core@file:../../../packages/core/package.tgz#../../../packages/core/package.tgz::hash=c8e335&locator=app%40workspace%3A."
checksum: 10c0/e98c1c4d1dc900848961a233c9cc28fb442219bd45bae226f9a48f6b7282c6ed743a6be9a14477c12affb948184db28a9f9d5c7cd8ce4cf08f6141cbd8bc4679
resolution: "@datadog/browser-core@file:../../../packages/core/package.tgz#../../../packages/core/package.tgz::hash=3d1932&locator=app%40workspace%3A."
checksum: 10c0/994366172286b77f3f9fba0e134c87b205a1b8bd55d7f2fa01b71a1151d696f4147d9885c3d10e2dea847adb15e70784115595730cf1126f2fe4c899aabb95db
languageName: node
linkType: hard

"@datadog/browser-logs@file:../../../packages/logs/package.tgz::locator=app%40workspace%3A.":
version: 6.19.0
resolution: "@datadog/browser-logs@file:../../../packages/logs/package.tgz#../../../packages/logs/package.tgz::hash=471336&locator=app%40workspace%3A."
resolution: "@datadog/browser-logs@file:../../../packages/logs/package.tgz#../../../packages/logs/package.tgz::hash=5e7803&locator=app%40workspace%3A."
dependencies:
"@datadog/browser-core": "npm:6.19.0"
peerDependencies:
"@datadog/browser-rum": 6.19.0
peerDependenciesMeta:
"@datadog/browser-rum":
optional: true
checksum: 10c0/8266d763df3a6fdc22b3dbd2855fea5799d0f27a476ade83850499a8ee2bc890fd09fa1f534c2ad79d8dce75007d908fc4928f77987bb6f74c1c1e4b11115a7e
checksum: 10c0/542438b155eba1f576c00ec24b36f5a191634c2a1912f4723159e934a02f5b485fa549bc8d8b230941ac68b4b3fe07aad38e40a7fc9407c15e2d6d4961a0d2ce
languageName: node
linkType: hard

"@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz::locator=app%40workspace%3A.":
version: 6.19.0
resolution: "@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz#../../../packages/rum-core/package.tgz::hash=c25ad6&locator=app%40workspace%3A."
resolution: "@datadog/browser-rum-core@file:../../../packages/rum-core/package.tgz#../../../packages/rum-core/package.tgz::hash=c95a64&locator=app%40workspace%3A."
dependencies:
"@datadog/browser-core": "npm:6.19.0"
checksum: 10c0/0b46745d5dd37acb24a715b013622ed35ab01e482a0dfed56aca95cde24cfb907cb1f9deba304f8c7f49885519b2238cdc59bf3a5df0eb90e2d756aea02d346d
checksum: 10c0/272794feb33c274a6517d2bafb1107a77fabd1574f36be3ed9c4735fa8355e286d072355e7d55fafc705fea6b96ce3925a748635b9709771093a013330f3ca6f
languageName: node
linkType: hard

"@datadog/browser-rum@file:../../../packages/rum/package.tgz::locator=app%40workspace%3A.":
version: 6.19.0
resolution: "@datadog/browser-rum@file:../../../packages/rum/package.tgz#../../../packages/rum/package.tgz::hash=603883&locator=app%40workspace%3A."
resolution: "@datadog/browser-rum@file:../../../packages/rum/package.tgz#../../../packages/rum/package.tgz::hash=ee0f6e&locator=app%40workspace%3A."
dependencies:
"@datadog/browser-core": "npm:6.19.0"
"@datadog/browser-rum-core": "npm:6.19.0"
Expand All @@ -46,7 +46,7 @@ __metadata:
peerDependenciesMeta:
"@datadog/browser-logs":
optional: true
checksum: 10c0/0d05abf96a68f5c709c21e04b6cce6708f1a5e63d146efe4d42276b36d64abdeaccee39858bc0279a5011ab529d4d0d4430b344e34d0a01eed9b913649acb072
checksum: 10c0/6690b8782df911bfbc4298914ed42bb1b6d1360a5ba43da082423cfa7e083f36e503505e2353ab20df6da1e0d094203257d6a8ae62d5a69cc27c9885fea2e394
languageName: node
linkType: hard

Expand Down
Loading