build(deps): bump @atlaskit/pragmatic-drag-and-drop from 1.7.9 to 1.8.1 - #2754
Conversation
Build Branch
Static preview entry points
QR codes (mobile preview)
Integration commandsnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", branch: "pr-releases/dependabot/npm_and_yarn/main/atlaskit/pragmatic-drag-and-drop-1.8.1")git submodule (Windows): git -C submodules/content-scope-scripts fetch origin pr-releases/dependabot/npm_and_yarn/main/atlaskit/pragmatic-drag-and-drop-1.8.1
git -C submodules/content-scope-scripts checkout origin/pr-releases/dependabot/npm_and_yarn/main/atlaskit/pragmatic-drag-and-drop-1.8.1Pin to exact commitnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", revision: "b944f17ab7ed9848443272a9837db32e79f7b919")git submodule (Windows): git -C submodules/content-scope-scripts fetch origin pr-releases/dependabot/npm_and_yarn/main/atlaskit/pragmatic-drag-and-drop-1.8.1
git -C submodules/content-scope-scripts checkout b944f17ab7ed9848443272a9837db32e79f7b919 |
There was a problem hiding this comment.
Stale comment
Web Compatibility Assessment
File Severity Finding (none in diff) info No injected-runtime changes. Diff is limited to special-pages/package.jsonandpackage-lock.json;injected/src/,wrapper-utils.js,captured-globals.js, and message-bridge code are untouched. Third-party page compatibility risk from this PR is effectively zero.special-pages/package.json(dependency)info Consumer is NTP favorites DND ( PragmaticDND.js→setCustomNativeDragPreview,centerUnderPointer, element/external adapters). Scope is the privileged New Tab special page, not hostile page-world injection.@atlaskit/pragmatic-drag-and-drop@1.8.0(transitive)info 1.8.0 switches honey-pot and custom native drag-preview overlays from z-index: 2147483647topopover="manual"(Popover API), with automatic fallback to the prior z-index path whenHTMLElement.prototype.showPopoveris absent. DDG browser baselines (Chrome/Edge 114+, Firefox 125+, Safari 17+) align with the Popover path; older WebViews should hit the fallback.@atlaskit/pragmatic-drag-and-drop@1.8.1(transitive)info 1.8.1 is test-coverage only (a11y Playwright); no additional runtime behavior change beyond 1.8.0. Transitive dependencies info dependenciesunchanged across 1.7.9 → 1.8.1 (@babel/runtime,bind-event-listener,raf-schd). No new transitive surface.package-lock.jsoninfo Lockfile churn is scoped to @atlaskit/pragmatic-drag-and-droponly — no unrelated ref/version drift.Validation:
pages/new-tab/app/favorites/integration-tests/favorites.spec.js— 18/18 passed, includingre-orders items,support drop on placeholders, andaccepts external drag/drop.Security Assessment
File Severity Finding (none in diff) info No changes to captured-globals.js, messaging transports, message-bridge trust boundaries,nativeDatahandling, orpostMessageusage.(none in diff) info No new eval/Function, network requests, or config-gated feature changes.special-pages/.../PragmaticDND.js(pre-existing, unchanged)info idFromPayload()still parses external drag HTML viacreateContextualFragment(). That is a pre-existing special-pages trust-boundary pattern (external bookmark drops), not introduced or worsened by this bump.Risk Level
Low Risk — dependency-only bump confined to the NTP favorites drag-and-drop library inside
special-pages, with no injected page-world surface and no lockfile scope expansion.Recommendations
- Merge after CI gate passes — targeted favorites integration coverage already exercises the DND paths affected by 1.8.x.
- Optional manual smoke (low priority): drag a favorite on iOS/Android NTP and confirm the custom drag preview renders correctly; this is the main user-visible delta from the 1.8.0 Popover API switch, though the library retains a z-index fallback.
- No injected-runtime follow-up required for this PR.
Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Stale comment
Dependency review:
@atlaskit/pragmatic-drag-and-drop1.7.9 → 1.8.1Verdict: Low risk — approve with manual drag-preview QA on Safari/iOS.
Against current
main, this PR is a clean, single-purpose bump (special-pages/package.json+ lockfile). I ran the favorites integration suite on 1.8.1: 18/18 passed, including internal reorder, placeholder drops, and external HTML drag/drop.
Scope & blast radius
Item Detail Consumer Single integration point: NTP favorites grid in special-pages/pages/new-tab/app/favorites/components/PragmaticDND.jsAPIs used draggable,dropTargetForElements,monitorForElements,monitorForExternal,dropTargetForExternal,combine,getHTML,setCustomNativeDragPreview,centerUnderPointer+ hitbox helpers (attachClosestEdge,extractClosestEdge,reorderWithEdge,getReorderDestinationIndex)Companion pkg @atlaskit/pragmatic-drag-and-drop-hitbox@^1.1.0unchanged; declares^1.6.0peer on core — compatible with 1.8.xThe dependency remains appropriate. This is the only DnD library in the repo and it handles edge-based horizontal reordering + native bookmark drops that raw HTML5 DnD would not cover cleanly.
Changelog impact (1.7.9 → 1.8.1)
1.8.0 (minor — primary risk): Honey-pot fix and custom native drag previews now use
popover="manual"(browser top layer) when supported, with fallback toposition:fixed+ maxz-index.Directly affects our code:
setCustomNativeDragPreview+centerUnderPointerinuseItemState(favorites tile drag ghost), and the automatic honey-pot fix used by all adapters.Minimum engines for the new path: Chrome/Edge 114+, Firefox 125+, Safari 17+. DDG desktop browsers should be fine; validate on iOS WebKit where drag-preview behavior has historically been fragile (Atlassian also called out iOS-specific preview quirks in 1.7.x).
1.8.1 (patch): Internal a11y Playwright coverage only — no runtime API changes.
No breaking API changes between 1.7.9 and 1.8.1 for the imports we use.
Test coverage
Area Coverage Internal reorder + favorites_movepayload✅ re-orders items,support drop on placeholdersExternal bookmark HTML drop ✅ accepts external drag/dropCustom drag preview rendering ❌ Not covered (Playwright dragTodoesn't assert ghost image)Honey-pot / :hoversuppression during drag❌ Not covered iOS / Safari WebKit ❌ Not in CI matrix for favorites DnD Automated tests validate reorder semantics and messaging contracts, but not visual drag-preview behavior — the main surface touched by 1.8.0.
Supply chain
- Publisher: Atlassian (
@atlaskit/*), Apache-2.0, ~900k weekly npm downloads- Registry: npmjs.com with lockfile integrity hash
- Runtime deps:
@babel/runtime,bind-event-listener,raf-schd— small, well-known- No known advisories for this package at 1.8.1
- Risk level: Low. First-party Atlassian OSS, not a random transitive; no install scripts
Confirmed issues
None blocking merge.
Uncertain / needs validation
- Drag preview on iOS Safari — popover top-layer path is new; fallback exists but preview offset/centering should be smoke-tested manually on iOS NTP favorites.
- Honey-pot during drag — if users report spurious
:hoverstates or missed drop targets after upgrade, suspect 1.8.0 popover rendering (unlikely given fallback, but untested here).
Recommended manual QA (pre/post merge)
- macOS: drag a favorite tile — ghost preview centered under pointer, drop indicators correct
- iOS: same flow; confirm preview doesn't flash/jump and drop still fires
favorites_move- Drag a bookmark from native UI onto favorites grid (external drop path)
Separate fixes PR
Not needed. No code changes required for compatibility. If iOS preview regresses, fix would be upstream or a targeted workaround in
PragmaticDND.js, not a lockfile-only bump.Sent by Cursor Automation: Review dependabot
b7954c6 to
c606456
Compare
There was a problem hiding this comment.
Stale comment
Web Compatibility Assessment
File Lines Severity Finding special-pages/package.json39 info Dependency-only bump ( ^1.7.9→^1.8.1). No application source changes.package-lock.json137–145, 11324 info Lockfile resolves only @atlaskit/pragmatic-drag-and-dropto1.8.1; no unrelated git-dependency or transitive churn.(injected runtime) — info Diff does not touch injected/,wrapper-utils.js,captured-globals.js, or message-bridge code. This PR has zero impact on page-injected privacy features or third-party site compatibility.special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js(consumer, unchanged)— info Sole consumer of this library. It wraps native HTML5 drag-and-drop for the New Tab favorites grid (reorder, placeholder drop, external bookmark drop). Runs in the trusted special-page context, not on arbitrary web pages. Transitive dependencies — info 1.7.9and1.8.1share identical direct deps (@babel/runtime,bind-event-listener,raf-schd). No new transitive surface.Validation: Ran
special-pagesfavorites integration suite (18 tests) against1.8.1— all passed, includingre-orders items,support drop on placeholders, andaccepts external drag/drop.
Security Assessment
File Lines Severity Finding (entire diff) — info No changes to messaging schemas, native transports, nativeDatahandling, or message-bridge trust boundaries.(injected runtime) — info No captured-global, postMessage,eval/Function, or prototype-override changes. Hostile-page threat model does not apply to this diff.PragmaticDND.jsconsumer (unchanged)— info External-drop path parses bookmark IDs from drag payloads via getHTML()and a DDG-specific MIME type — pre-existing behavior, unchanged by this bump.
Risk Level
Low Risk — A scoped
special-pagesdependency bump with no injected-runtime changes, identical transitive dependencies, and passing favorites drag-and-drop integration tests.
Recommendations
- None required for merge from a web-compat/security perspective.
- Optional (info): If manual QA is desired beyond CI, smoke-test favorites drag-and-drop on iOS/Android WebViews — the integration suite covers reorder and external-drop flows but platform-specific DnD quirks are always possible with native drag APIs.
- Optional (info):
@atlaskit/pragmatic-drag-and-drop-hitboxremains at^1.1.0(peer range^1.6.0); no action needed unless a future hitbox release tightens its peer constraint.Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Stale comment
Dependency update risk review:
@atlaskit/pragmatic-drag-and-drop1.7.9 → 1.8.1Verdict: Low risk — safe to merge after routine manual smoke on native clients.
Scope of change
Lockfile-only bump in
special-pages/package.json. The dependency is consumed in a single integration surface:
special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js(wrapped byFavoritesCustomized.js)APIs in use:
draggable,dropTargetForElements,monitorForElements,dropTargetForExternal,monitorForExternal,combine,getHTML,setCustomNativeDragPreview,centerUnderPointer, plus hitbox helpers from@atlaskit/pragmatic-drag-and-drop-hitbox.
Changelog impact (1.7.9 → 1.8.1)
Version Change Relevance here 1.8.0 (minor) Honey-pot fix + custom native drag preview containers now use popover="manual"(top layer) when supported; falls back toz-index: 2147483647when notTouches our code path — we call setCustomNativeDragPreview+centerUnderPointerinuseItemState1.8.1 (patch) Internal a11y Playwright test coverage only No runtime impact No API removals, signature changes, or new runtime dependencies (
@babel/runtime,bind-event-listener,raf-schdunchanged).
Test coverage
Confirmed:
favorites.spec.jsintegration suite passes (18/18) on 1.8.1, including:
re-orders items— internal grid reorder via PlaywrightdragTosupport drop on placeholders— edge/placeholder index logicaccepts external drag/drop—monitorForExternal/favorites_movepathGaps (pre-existing, not introduced by this bump):
- No unit tests for
PragmaticDND.jsitself- Drag preview rendering (the 1.8.0 popover change) is not asserted — integration tests only verify reorder payloads
accepts external drag/dropsynthesizesDragEvents; it does not exercise a real cross-surface native bookmark drag
Dependency necessity
Still warranted. This is the only DnD dependency in the repo and it handles requirements that are awkward to replicate cleanly:
- Internal favorites reorder with closest-edge hit detection
- External bookmark drops (custom MIME +
text/htmlmeta parsing)- Custom native drag preview cloning
No simpler in-repo alternative found.
Supply chain
- Publisher: Atlassian (
atlassianartifactteam), Apache-2.0, github.com/atlassian/pragmatic-drag-and-drop- Transitive deps: unchanged; no new packages added
npm audit: no findings targeting this package- Companion package:
@atlaskit/pragmatic-drag-and-drop-hitboxremains at^1.1.0(peer range^1.6.0— compatible). Latest hitbox is 1.2.0 but that release is docs-only; no action required in this PR.
Residual risk (uncertain — manual validation recommended)
1.8.0 popover path on embedded WebViews
On browsers with Popover API support (Chrome 114+, Safari 17+, Firefox 125+), drag-preview containers are promoted to the top layer via
popover="manual". Older engines keep the priorposition:fixed+ max-z-index fallback.
- Reorder/drop logic is covered by CI.
- Visual drag-preview behavior on iOS/Android/macOS/Windows WebViews is not — recommend a quick manual smoke: drag a favorite tile, confirm preview renders correctly and drop targets still highlight.
No code changes required preemptively; the library includes an explicit fallback.
Fix PR
Not needed. No blocking issues found; no companion PR drafted.
Automated dependency update review
Sent by Cursor Automation: Review dependabot
|
@dependabot rebase |
c606456 to
9e1ca1e
Compare
There was a problem hiding this comment.
Stale comment
Web Compatibility Assessment
File Lines Severity Finding special-pages/package.json39 info Version-only bump ( ^1.7.9→^1.8.1). No application source changes.package-lock.json137–141, 11340–11343 info Lockfile resolves to 1.8.1. No transitive dependency changes beyond the target package.(scope) — info This dependency is not used by injected/. It is consumed only by the New Tab Page favorites UI (special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js). It does not run on arbitrary third-party web pages and does not override browser APIs viawrapper-utils/DDGProxy.(upstream 1.8.0) — info Upstream minor change: honey-pot fix and setCustomNativeDragPreviewoverlays now usepopover="manual"(Popover API top layer) with fallback toz-index: 2147483647when unsupported. Minimum versions with native popover support: Chrome/Edge 114+, Firefox 125+, Safari 17+. Our consumer usessetCustomNativeDragPreview+centerUnderPointer.(validation) — info Favorites DnD integration tests pass on this branch: re-orders items,support drop on placeholders,accepts external drag/drop.No injected web-compatibility findings (API fidelity, prototype patching, DOM timing, platform API shims, third-party script detection).
Security Assessment
File Lines Severity Finding (scope) — info No changes to captured-globals.js, message bridge, messaging transports,postMessage, remote config, orload()-time initialization.special-pages/pages/new-tab/.../PragmaticDND.js(unchanged) info Existing consumer validates drop-target payload shape ( target.data.urlstring check) before reorder. No new trust-boundary changes introduced by this bump.package-lock.json— info Integrity hash updated for 1.8.1tarball. No known CVEs reported for this package version.No security findings in injected threat model categories.
Risk Level
Low Risk — lockfile-only dependency bump confined to the New Tab Page special-page bundle; no injected feature, API shim, or messaging code is modified.
Recommendations
- Merge after CI green — no injected compat/security blockers identified.
- Manual smoke on older WebViews (optional, low priority): Because 1.8.0 changes drag-preview/honey-pot rendering to prefer the Popover API, spot-check favorites drag-and-drop on any minimum-supported iOS/Android WebView builds if those are below Safari 17 / Chromium 114. Upstream provides z-index fallback, and Playwright integration tests pass.
- No injected-specific tests required — this package does not ship in the content-scope injection bundle.
Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Stale comment
Dependency review:
@atlaskit/pragmatic-drag-and-drop1.7.9 → 1.8.1Verdict: Low risk — safe to merge after optional manual smoke-test on Safari/macOS.
Scope & usage
This PR only bumps
special-pages/package.jsonandpackage-lock.json. The sole consumer isspecial-pages/pages/new-tab/app/favorites/components/PragmaticDND.js, which wraps NTP favorites drag-and-drop (internal reorder, placeholder drops, and external bookmark drops from native).
@atlaskit/pragmatic-drag-and-drop-hitbox@^1.1.0remains compatible (^1.6.0peer range).
Changelog impact (confirmed)
Version Change Relevance to this repo 1.8.0 (minor) Honey-pot fix and custom native drag preview now use popover="manual"(browser top layer) instead ofz-index: 2147483647. Falls back to the old z-index path whenHTMLElement.prototype.showPopoveris unavailable.Directly affects our setCustomNativeDragPreviewusage inuseItemState. Reorder/drop logic is unchanged.1.8.1 (patch) Internal a11y Playwright test coverage only No runtime impact 1.7.10 (skipped) Internal @atlaskit/themecleanupNo runtime impact Popover API minimum versions per upstream changelog: Chrome/Edge 114+, Firefox 125+, Safari 17+. Unsupported browsers use the existing z-index fallback.
Test coverage (confirmed)
Integration tests in
favorites.spec.jscover the three DND paths:
re-orders items— internal element dragsupport drop on placeholders— edge/placeholder handlingaccepts external drag/drop— external HTML payload parsingAll three pass against 1.8.1 in CI (
npm run test-int -- pages/new-tab/app/favorites/integration-tests/favorites.spec.js --grep "re-orders|placeholder|external drag").Gap (uncertain): tests assert
favorites_movemessaging and MIME payloads, but do not verify drag-preview rendering (the code path changed in 1.8.0). Recommend a quick manual smoke-test dragging a favorite on macOS Safari/Chrome to confirm the preview appears above NTP UI.
Dependency necessity (confirmed)
Still needed. Pragmatic DND is the right abstraction here — it provides element + external adapters, closest-edge hit detection, and custom native drag previews. No equivalent exists elsewhere in the monorepo; rolling our own HTML5 DnD would be a regression.
Supply chain (confirmed)
- Publisher: Atlassian (
atlassianartifactteam), Apache-2.0- Registry integrity hash updated in lockfile
- Transitive deps unchanged:
@babel/runtime,bind-event-listener,raf-schd- No npm audit advisories for this package
Pre-existing concern (not introduced by this bump)
PragmaticDND.jsparses externally draggedtext/htmlviacreateContextualFragmentinidFromPayload. This predates the bump and is outside Dependabot scope, but is worth a follow-up hardening PR (e.g.DOMParser+ strict<meta>extraction) if we want defense-in-depth against malicious drag payloads. No fix PR drafted for this dependency update — not a blocker for merging.
Recommendation
Merge after CI green. Optional: manual drag-preview check on Safari/macOS given the 1.8.0 rendering change.
Sent by Cursor Automation: Review dependabot
9e1ca1e to
26a0ffc
Compare
There was a problem hiding this comment.
Stale comment
Injected PR Evaluation: Web Compatibility & Security
Reviewed diff
d7a851f3..26a0ffc7(2 files:special-pages/package.json,package-lock.json).Scope note: This bump does not touch
injected/,wrapper-utils.js,captured-globals.js, messaging transports, or the message bridge. The dependency is consumed only by the NTP favorites drag-and-drop UI inspecial-pages/pages/new-tab/app/favorites/components/PragmaticDND.js.Validated:
npm cisucceeded; favorites integration suite (18 tests, includingre-orders items,support drop on placeholders,accepts external drag/drop) passed on@atlaskit/pragmatic-drag-and-drop@1.8.1.
Web Compatibility Assessment
File Severity Finding special-pages/package.jsoninfo Version-only bump ( ^1.7.9→^1.8.1). No application source changes; injected page-world API fidelity rules do not apply.Upstream 1.8.0(transitive)info Minor release switches honey-pot fix and custom native drag-preview rendering to popover="manual"(top layer), with documented fallback to priorz-index: 2147483647when Popover API is unavailable (Chrome/Edge 114+, Firefox 125+, Safari 17+).PragmaticDND.js(consumer, unchanged)info Uses setCustomNativeDragPreview+centerUnderPointer— directly in the code path affected by 1.8.0 rendering change. Playwright DND tests passed; manual smoke on iOS/Android WebViews remains the residual check for preview layering on engines without Popover support.Transitive deps ( npm view)info Runtime dependencies unchanged between 1.7.9 and 1.8.1 ( @babel/runtime,bind-event-listener,raf-schd).Upstream 1.8.1info Patch release — internal a11y Playwright coverage only; no documented runtime behavior change. No warning or error-level web-compat findings for injected runtime or third-party site breakage.
Security Assessment
File Severity Finding Entire diff info No changes to global capture hygiene, messaging schemas, origin validation, nativeDatahandling, or message-bridge trust boundaries.special-pages/contextinfo Library runs inside the privileged NTP special page (first-party, embedded WebView), not in hostile third-party page injection. DOM drag-and-drop manipulation is scoped to favorites reordering; no new postMessage,eval, or external URL construction introduced by this PR.Lockfile info No unrelated lockfile churn outside the stated package; no version downgrades. No warning, error, or critical security findings.
Risk Level
Low Risk — dependency-only bump confined to
special-pages; no injected runtime surface area; upstream 1.8.0 rendering change has a documented fallback and is covered by passing favorites DND integration tests.
Recommendations
- Merge if CI green — no code changes required for injected compat/security.
- Optional manual QA — quick favorites drag-reorder smoke on iOS/Android after merge, focusing on custom drag-preview visibility during drag (Popover API vs z-index fallback).
- No action needed on
injected/strict-core, captured-globals, or remote-config gating for this PR.Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Stale comment
Dependency review:
@atlaskit/pragmatic-drag-and-drop1.7.9 → 1.8.1Verdict: Low risk — approve with manual QA on drag preview (especially iOS/WebKit).
Scope
- Lockfile-only bump in
special-pages/; no application source changes.- Sole consumer:
special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js(NTP favorites reorder + external bookmark drops).Changelog impact (1.7.9 → 1.8.1)
Version Change Relevance to this repo 1.8.0 (minor) Honey-pot fix + setCustomNativeDragPreviewnow usepopover="manual"+showPopover()when supported; fallback toz-index: 2147483647otherwiseDirect — we call setCustomNativeDragPreview/centerUnderPointerinonGenerateDragPreview1.8.1 (patch) Internal a11y Playwright test coverage None for runtime Skipped 1.7.10 (internal theme token cleanup).
Confirmed
- API compatibility: Imports in
PragmaticDND.jsare unchanged; no breaking API removals in this range.- Transitive deps: Runtime deps unchanged (
@babel/runtime,bind-event-listener,raf-schd). No new runtime packages.- Integration tests (1.8.1):
re-orders items,support drop on placeholders, andaccepts external drag/dropall pass locally.- Supply chain: Official Atlassian package (
@atlaskit/*), Apache-2.0, ~896k weekly npm downloads, lockfile integrity hash present. No signs of typosquatting or unexpected publisher change.Test coverage gaps (not blockers)
- No unit tests for
PragmaticDND.js; coverage is integration-only.- Playwright tests assert reorder messaging and external HTML drops, but do not validate custom drag preview rendering (
onGenerateDragPreview→setCustomNativeDragPreview). The 1.8.0 popover change is the main regression surface CI won't catch.- External drop test synthesizes
DragEvents in JS rather than OS-level drags from another app.Uncertain — validate on native clients
- Popover top-layer on embedded WebViews: 1.8.0 promotes drag-preview and honey-pot elements to the browser top layer. If a WebView has incomplete Popover API support or odd stacking with NTP chrome, preview positioning/visibility could regress. Fallback path exists but is untested here.
- iOS drag preview: Prior 1.7.x releases changed iOS preview centering behavior; 1.8.0 layering change may interact with that. Worth a quick manual drag on iOS NTP favorites.
Dependency necessity
Still justified. Favorites DnD needs element + external adapters, closest-edge hitbox, custom native preview, and external MIME parsing — a bespoke implementation would be higher risk than keeping Pragmatic DnD.
@atlaskit/pragmatic-drag-and-drop-hitboxremains at^1.1.0(compatible via^1.6.0peer). Optional follow-up: bump hitbox to1.2.0for alignment (docs-only change in 1.2.0; no runtime fix required).Recommended manual QA (post-merge)
- Drag-reorder favorites on macOS + iOS (verify preview follows pointer, drop targets highlight).
- Drag a bookmark from browser chrome/bookmarks bar onto NTP favorites (external drop).
- Drag onto placeholder slots at end of grid.
No separate fix PR drafted — no code changes required; risk is behavioral and best covered by manual QA above.
Sent by Cursor Automation: Review dependabot
Bumps [@atlaskit/pragmatic-drag-and-drop](https://github.com/atlassian/pragmatic-drag-and-drop) from 1.7.9 to 1.8.1. - [Commits](https://github.com/atlassian/pragmatic-drag-and-drop/commits) --- updated-dependencies: - dependency-name: "@atlaskit/pragmatic-drag-and-drop" dependency-version: 1.8.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
26a0ffc to
25bce15
Compare
There was a problem hiding this comment.
Injected PR Evaluation: Web Compatibility & Security
Scope note: This PR only bumps @atlaskit/pragmatic-drag-and-drop in special-pages/package.json and package-lock.json. It does not modify injected/ or any page-world injection code. The library is consumed exclusively by the New Tab Page favorites widget (special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js).
Web Compatibility Assessment
| File | Lines | Severity | Finding |
|---|---|---|---|
special-pages/package.json |
39 | info | Dependency-only bump; no application source changes. No browser API shimming, prototype patching, or toString() masking concerns apply to this diff. |
Transitive: @atlaskit/pragmatic-drag-and-drop@1.8.0 |
— | info | Minor release switches honey-pot fix and custom native drag preview containers to popover="manual" (Popover API top layer), with fallback to z-index: 2147483647 when Popover API is unavailable. NTP favorites uses setCustomNativeDragPreview + centerUnderPointer, so drag-preview layering behavior may change on supported WebViews but should remain functional via fallback. |
Transitive: @atlaskit/pragmatic-drag-and-drop@1.8.1 |
— | info | Patch release is internal a11y Playwright test coverage only per upstream changelog — no runtime behavior change. |
special-pages/pages/new-tab/.../PragmaticDND.js (unchanged) |
— | info | Existing integration tests in favorites.spec.js cover internal reorder (drags) and external drop (acceptsExternalDrop). These exercise the adapters we import but do not assert custom drag-preview rendering. |
No warnings or errors for injected web-compat categories (API fidelity, prototype chain, cross-frame leakage, third-party script detection) — this code never runs in hostile third-party page context.
Security Assessment
| File | Lines | Severity | Finding |
|---|---|---|---|
| Entire diff | — | info | No changes to captured-globals.js, wrapper-utils.js, message-bridge.js, messaging transports, or shouldExemptMethod(). |
special-pages/ (runtime context) |
— | info | Special pages are privileged, first-party embedded UIs — not injected into arbitrary web pages. The DND library operates within our own DOM boundary on the NTP. |
PragmaticDND.js idFromPayload() (unchanged) |
284–307 | info | External drop path parses text/html via createContextualFragment — pre-existing, not introduced by this bump. Payload is validated against DDG_MIME_TYPE before use. |
No warnings, errors, or critical findings.
Risk Level
Low Risk — lockfile-only dependency bump confined to special-pages; zero injected code changes and no messaging or API-override surface area.
Recommendations
- (info) Merge after CI passes. Existing
favorites.spec.jsdrag/drop tests provide adequate regression signal for the adapters we use. - (info, optional) If manual QA is desired, smoke-test favorites drag-reorder and external bookmark drop on iOS and Android NTP — 1.8.0's Popover API path is most likely to surface visual differences in custom drag preview positioning on older WebViews (fallback should preserve prior behavior).
- No injected-code review action required.
Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Dependency review: @atlaskit/pragmatic-drag-and-drop 1.7.9 → 1.8.1
Verdict: Low risk — approve with light manual QA on drag preview.
Scope of change
The diff is a version-only bump in special-pages/package.json and package-lock.json. No application code changes.
Single consumer: special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js, used by the New Tab favorites grid (FavoritesCustomized.js → Tile.js).
APIs in use:
- Element adapter:
draggable,dropTargetForElements,monitorForElements - External adapter:
dropTargetForExternal,monitorForExternal,getHTML - Utilities:
combine,setCustomNativeDragPreview,centerUnderPointer - Hitbox (separate package, unchanged):
attachClosestEdge,extractClosestEdge,reorderWithEdge,getReorderDestinationIndex
Changelog impact (1.7.9 → 1.8.1)
| Version | Type | Relevance |
|---|---|---|
| 1.8.0 | Minor | Primary behavioral change. Honey-pot fix and custom native drag previews now use popover="manual" (top layer) instead of z-index: 2147483647. Falls back to the old z-index approach when HTMLElement.prototype.showPopover is unavailable. |
| 1.8.1 | Patch | Internal a11y Playwright test coverage only — no runtime behavior change. |
Confirmed: Runtime dependencies are unchanged between 1.7.9 and 1.8.1 (@babel/runtime, bind-event-listener, raf-schd). No new transitive deps.
Directly affected code path: PragmaticDND.js calls setCustomNativeDragPreview with centerUnderPointer in onGenerateDragPreview — this is the code path 1.8.0 modifies.
Test coverage
Existing integration tests (Desktop Chrome):
re-orders items— internal element-to-element reorder ✅support drop on placeholders— drop onto trailing placeholder tiles ✅accepts external drag/drop— bookmark HTML payload from native ✅
All three passed locally against 1.8.1.
Gaps (pre-existing, not introduced by this PR):
- No unit tests for
PragmaticDND.js - No assertion on drag-preview visuals or
popovertop-layer behavior - Favorites DnD tests run only on the
integration(Desktop Chrome) project — not WebKit/iOS - Playwright
dragTovalidates reorder semantics and native messaging, but does not fully exercise native drag-image rendering
Dependency necessity
The package remains appropriate. Favorites DnD requires:
- Internal grid reorder with closest-edge hit detection
- External drops from native bookmarks (custom MIME + HTML meta parsing)
- Custom native drag preview cloning
No alternative DnD library is used elsewhere in the repo. Replacing it would be a large, unrelated effort.
Companion @atlaskit/pragmatic-drag-and-drop-hitbox stays at ^1.1.0 (peer range ^1.6.0 on core) — compatible, no bump required.
Supply chain
| Check | Result |
|---|---|
| Publisher | Atlassian (atlassianartifactteam) — established maintainer |
| License | Apache-2.0 |
| Weekly downloads | ~900k |
npm audit |
No known vulnerabilities for this package |
| Provenance | Standard Dependabot semver bump with updated integrity hash |
Low supply-chain concern.
Concerns requiring manual validation
-
Drag preview appearance (1.8.0 popover change) — On browsers with Popover API support (Chrome 114+, Safari 17+, Firefox 125+), the favorites drag ghost image now renders via
popover="manual". Verify visually on macOS and iOS that the preview appears correctly above other NTP widgets during drag. Fallback path on older WebViews should behave as before, but is untested here. -
iOS drag preview positioning — Changelog 1.7.3+ documents iOS-specific preview centering behavior. Combined with 1.8.0 popover rendering, a quick smoke test on iOS is prudent even though reorder logic is covered by integration tests.
Fix PR
Not required. No application code changes needed for this bump. Test coverage gaps are pre-existing; addressing them (e.g. WebKit project for favorites DnD, drag-preview screenshot test) would be a separate enhancement, not a blocker for this dependency update.
Sent by Cursor Automation: Review dependabot


Bumps @atlaskit/pragmatic-drag-and-drop from 1.7.9 to 1.8.1.
Commits
Note
Low Risk
Lockfile-only dependency upgrade for UI drag-and-drop; behavior could shift slightly with the minor library release but no repo logic was modified.
Overview
Bumps
@atlaskit/pragmatic-drag-and-dropin thespecial-pagesworkspace from 1.7.9 to 1.8.1, with matchingpackage-lock.jsonupdates. No application source changes; consumers such as new-tab favorites drag-and-drop (PragmaticDND.js) pick up the new library version at install/build time.Reviewed by Cursor Bugbot for commit 25bce15. Bugbot is set up for automated code reviews on this repo. Configure here.