fix(window-sharing): harden convertWindowsToPixels against malformed share links#18563
Draft
posthog[bot] wants to merge 1 commit into
Draft
fix(window-sharing): harden convertWindowsToPixels against malformed share links#18563posthog[bot] wants to merge 1 commit into
posthog[bot] wants to merge 1 commit into
Conversation
…share links A shared window-sharing URL missing its `size`/`position` data (e.g. an entry carrying only a `path`) crashed the page with an unhandled TypeError when `convertWindowsToPixels` read `win.size.width` on an undefined `size`. Make the conversion defensive: bail on non-array input, skip entries without a valid path, and leave `size`/`position` undefined when the percentages are missing or non-numeric so `createNewWindow` falls back to its sensible defaults. The caller now also bails gracefully when no usable window remains. Generated-By: PostHog Code Task-Id: f452db89-1195-42f1-b8b0-563d90c08fed
Contributor
Deploy preview
|
Contributor
Bundle reportTotal JS (gzip)6.31 MiB (+0.3 KiB / +0.0%) Eager graph (modules shipped in each entrypoint's initial chunks)
Largest modules in the
|
| Module | Size |
|---|---|
css ./node_modules/.pnpm/css-loader@5.2.7_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[1]!./node_modules/.pnpm/postcss-loader@4.3.0_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[2]!./src/styles/global.css |
711.1 KiB |
./src/components/Stickers/Stickers.tsx |
696.4 KiB |
./.cache/caches/gatsby-plugin-mdx/mdx-scopes-dir/31a094f140f119e73085d847ae81b99b.js + 2 modules |
627.7 KiB |
./node_modules/.pnpm/@radix-ui+react-icons@1.3.2_react@18.3.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js |
481.4 KiB |
./node_modules/.pnpm/rehype-raw@7.0.0/node_modules/rehype-raw/lib/index.js + 29 modules |
395.1 KiB |
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.cjs.js |
364.8 KiB |
./src/hooks/useCustomers.tsx + 54 modules |
355.1 KiB |
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
354.8 KiB |
./node_modules/.pnpm/react-markdown@8.0.7_@types+react@16.14.66_react@18.3.1/node_modules/react-markdown/lib/react-markdown.js + 88 modules |
351.4 KiB |
./node_modules/.pnpm/cloudinary-core@2.14.0_lodash@4.17.21/node_modules/cloudinary-core/cloudinary-core.js |
281.9 KiB |
./src/components/ProductComparisonTable/index.tsx + 120 modules |
278.5 KiB |
./node_modules/.pnpm/d3@7.9.0/node_modules/d3/src/index.js + 208 modules |
247.4 KiB |
./src/components/Pricing/PricingSlider/Slider.tsx + 87 modules |
239.9 KiB |
./gatsby-browser.tsx + 41 modules |
239.8 KiB |
./src/components/SearchUI/index.tsx + 73 modules |
223.4 KiB |
Eager-graph budgets are report-only until a baseline is established. Sizes are gzip of public/**/*.js; eager size is webpack module source bytes for the modules actually shipped in the entrypoint's initial chunks (post-tree-shake).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
A shared window-sharing link missing its
size/positiondata crashed the page with an unhandledTypeError: Cannot read properties of undefined (reading 'width'). Thewindowsquery param is run throughconvertWindowsToPixels, which readparseFloat(win.size.width)(and.size.height,.position.x/y) with no validation — so an entry carrying only apath(e.g. a truncated share URL) took down the whole render.convertWindowsToPixelsis now defensive:windowsisn't a well-formed array.size/positionundefined when their percentages are missing or non-numeric, socreateNewWindowfalls back to its existing sensible defaults.The caller also bails gracefully instead of dereferencing an undefined
initialWindow.Why: A malformed or truncated share link circulating would otherwise crash the page for anyone who clicks it.
Checklist
vercel.jsonCreated with PostHog Code from an inbox report.