Skip to content

Commit

Permalink
Merge branch 'main' into benoit/heatmap--selectors-without-classes
Browse files Browse the repository at this point in the history
  • Loading branch information
BenoitZugmeyer authored Aug 12, 2022
2 parents 0251c7c + ec6b18e commit 99b4697
Show file tree
Hide file tree
Showing 11 changed files with 63 additions and 32 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@
---

## v4.17.1

- 🐛 [RUMF-1344] try to improve document scrolling element handling ([#1688](https://github.com/DataDog/browser-sdk/pull/1688))
- ✨⚗ [RUMF-1355] add selector with stable attributes ([#1684](https://github.com/DataDog/browser-sdk/pull/1684))

## v4.17.0

-[RUMF-1315] Extend user object methods ([#1641](https://github.com/DataDog/browser-sdk/pull/1641))
Expand Down
2 changes: 1 addition & 1 deletion developer-extension/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@datadog/browser-sdk-developer-extension",
"version": "4.17.0",
"version": "4.17.1",
"private": true,
"scripts": {
"build": "rm -rf dist && webpack --mode production",
Expand Down
2 changes: 1 addition & 1 deletion lerna.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"npmClient": "yarn",
"useWorkspaces": true,
"version": "4.17.0",
"version": "4.17.1",
"publishConfig": {
"access": "public"
}
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@datadog/browser-core",
"version": "4.17.0",
"version": "4.17.1",
"license": "Apache-2.0",
"main": "cjs/index.js",
"module": "esm/index.js",
Expand Down
4 changes: 2 additions & 2 deletions packages/logs/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@datadog/browser-logs",
"version": "4.17.0",
"version": "4.17.1",
"license": "Apache-2.0",
"main": "cjs/entries/main.js",
"module": "esm/entries/main.js",
Expand All @@ -13,7 +13,7 @@
"replace-build-env": "node ../../scripts/replace-build-env.js"
},
"dependencies": {
"@datadog/browser-core": "4.17.0"
"@datadog/browser-core": "4.17.1"
},
"devDependencies": {
"@types/sinon": "9.0.10",
Expand Down
4 changes: 2 additions & 2 deletions packages/rum-core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@datadog/browser-rum-core",
"version": "4.17.0",
"version": "4.17.1",
"license": "Apache-2.0",
"main": "cjs/index.js",
"module": "esm/index.js",
Expand All @@ -12,7 +12,7 @@
"replace-build-env": "node ../../scripts/replace-build-env.js"
},
"dependencies": {
"@datadog/browser-core": "4.17.0"
"@datadog/browser-core": "4.17.1"
},
"devDependencies": {
"ajv": "6.12.6"
Expand Down
6 changes: 3 additions & 3 deletions packages/rum-slim/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@datadog/browser-rum-slim",
"version": "4.17.0",
"version": "4.17.1",
"license": "Apache-2.0",
"main": "cjs/entries/main.js",
"module": "esm/entries/main.js",
Expand All @@ -12,8 +12,8 @@
"build:esm": "rm -rf esm && tsc -p tsconfig.esm.json"
},
"dependencies": {
"@datadog/browser-core": "4.17.0",
"@datadog/browser-rum-core": "4.17.0"
"@datadog/browser-core": "4.17.1",
"@datadog/browser-rum-core": "4.17.1"
},
"repository": {
"type": "git",
Expand Down
6 changes: 3 additions & 3 deletions packages/rum/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@datadog/browser-rum",
"version": "4.17.0",
"version": "4.17.1",
"license": "Apache-2.0",
"main": "cjs/entries/main.js",
"module": "esm/entries/main.js",
Expand All @@ -12,8 +12,8 @@
"build:esm": "rm -rf esm && tsc -p tsconfig.esm.json"
},
"dependencies": {
"@datadog/browser-core": "4.17.0",
"@datadog/browser-rum-core": "4.17.0"
"@datadog/browser-core": "4.17.1",
"@datadog/browser-rum-core": "4.17.1"
},
"repository": {
"type": "git",
Expand Down
42 changes: 34 additions & 8 deletions packages/rum/src/domain/record/elementsScrollPositions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,23 @@ export type ScrollPositions = { scrollLeft: number; scrollTop: number }

export function createElementsScrollPositions() {
const scrollPositionsByElement = new WeakMap<Element, ScrollPositions>()
const documentScrollingElement = document.scrollingElement!
if (!documentScrollingElement) {
addTelemetryDebug('document without scrollingElement')
}
let documentScrollingElement: Element | null
return {
set(element: Element | Document, scrollPositions: ScrollPositions) {
scrollPositionsByElement.set(
element === document ? documentScrollingElement : (element as Element),
scrollPositions
)
if (element === document && !documentScrollingElement) {
documentScrollingElement = tryToFindScrollingElement(scrollPositions)
if (!documentScrollingElement) {
return
}
}
try {
scrollPositionsByElement.set(
element === document ? documentScrollingElement! : (element as Element),
scrollPositions
)
} catch (e) {
addTelemetryDebug(`invalid element: ${String(element)}`)
}
},
get(element: Element) {
return scrollPositionsByElement.get(element)
Expand All @@ -24,3 +31,22 @@ export function createElementsScrollPositions() {
},
}
}

function tryToFindScrollingElement(scrollPositions: ScrollPositions) {
if (document.scrollingElement) {
return document.scrollingElement
}
addTelemetryDebug('null document scrolling element')
if (scrollPositions.scrollLeft === 0 && scrollPositions.scrollTop === 0) {
addTelemetryDebug('Unable to find scrolling element for scroll (0,0)')
return null
}
if (
Math.round(document.documentElement.scrollLeft) === scrollPositions.scrollLeft &&
Math.round(document.documentElement.scrollTop) === scrollPositions.scrollTop
) {
return document.documentElement
}
addTelemetryDebug('Unable to find scrolling element')
return null
}
2 changes: 1 addition & 1 deletion performances/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"private": true,
"name": "performances",
"version": "4.17.0",
"version": "4.17.1",
"scripts": {
"start": "ts-node ./src/main.ts"
},
Expand Down
20 changes: 10 additions & 10 deletions test/app/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,24 @@
# yarn lockfile v1


"@datadog/[email protected].0", "@datadog/browser-core@file:../../packages/core":
version "4.17.0"
"@datadog/[email protected].1", "@datadog/browser-core@file:../../packages/core":
version "4.17.1"

"@datadog/browser-logs@file:../../packages/logs":
version "4.17.0"
version "4.17.1"
dependencies:
"@datadog/browser-core" "4.17.0"
"@datadog/browser-core" "4.17.1"

"@datadog/[email protected].0", "@datadog/browser-rum-core@file:../../packages/rum-core":
version "4.17.0"
"@datadog/[email protected].1", "@datadog/browser-rum-core@file:../../packages/rum-core":
version "4.17.1"
dependencies:
"@datadog/browser-core" "4.17.0"
"@datadog/browser-core" "4.17.1"

"@datadog/browser-rum@file:../../packages/rum":
version "4.17.0"
version "4.17.1"
dependencies:
"@datadog/browser-core" "4.17.0"
"@datadog/browser-rum-core" "4.17.0"
"@datadog/browser-core" "4.17.1"
"@datadog/browser-rum-core" "4.17.1"

"@jridgewell/gen-mapping@^0.3.0":
version "0.3.2"
Expand Down

0 comments on commit 99b4697

Please sign in to comment.