build(deps): bump @atlaskit/pragmatic-drag-and-drop from 1.7.9 to 1.8.1 - #2641
Conversation
|
Suggested comment for Cursor review (copy and paste as a new comment): Note: GitHub Actions bot cannot trigger Cursor agent directly. Please copy the above comment to invoke the review. |
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.0")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.0
git -C submodules/content-scope-scripts checkout origin/pr-releases/dependabot/npm_and_yarn/main/atlaskit/pragmatic-drag-and-drop-1.8.0Pin to exact commitnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", revision: "eca85cb6baa4341725b40d0c32927e2b3445b083")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.0
git -C submodules/content-scope-scripts checkout eca85cb6baa4341725b40d0c32927e2b3445b083 |
There was a problem hiding this comment.
Stale comment
Web Compatibility Assessment
- File:
special-pages/package.json, line range:39-39, severity:info.
The change is a direct semver bump of@atlaskit/pragmatic-drag-and-dropfrom^1.7.9to^1.8.0; no injected feature code, wrapper utilities, API shims, or prototype overrides changed in this PR. No direct API-surface-fidelity risk is introduced by the diff itself.- File:
package-lock.json, line range:126-138, severity:info.
Lockfile update is consistent with the package bump (version/resolved/integrity only for this package block), with no additional platform bridge or injected runtime code paths modified.- File:
package-lock.json, line range:10878-10883, severity:info.
Workspace dependency entry forspecial-pagesis updated to^1.8.0with no other dependency graph shape change visible in this diff.Security Assessment
- File:
special-pages/package.json, line range:39-39, severity:info.
No changes toinjected/security-sensitive surfaces (captured-globals,wrapper-utils,DDGProxy, message bridge, transport origin checks). Threat model items around global capture hygiene and bridge trust boundaries are unaffected by this PR.- File:
package-lock.json, line range:126-138, severity:info.
Integrity hash and tarball URL rotate as expected for the upstream release; no new direct use of uncaptured globals, dynamic code execution patterns, or message schema/path relaxations introduced by changed repository code.Risk Level
Low Risk — dependency-only bump in
special-pagesmanifests/lockfile with no modifications to injected scripts, web API wrapping logic, or messaging security boundaries.Recommendations
- Run targeted integration coverage for favorites DnD flows that use this package (
special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js) across platform projects to catch upstream behavioral drift (npm run test-int -- pages/new-tab/integration-tests/new-tab.spec.js --reporter list).- Add/keep a regression assertion for reorder + external drop path in new tab favorites to detect contract shifts in
monitorForElements/dropTargetForElementsafter minor upgrades.- Alternative risk posture: if you want tighter rollout control for this dependency family, pin exact
1.8.0instead of caret range inspecial-pages/package.jsonand advance intentionally per release.Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Stale comment
Findings (by severity)
- Medium (uncertain): Popover API code path introduces runtime behavior change in drag overlay internals.
Evidence: upstream1.8.0changelog andnpm diffshow changes inhoney-pot-fix/make-honey-pot-fixandpublic-utils/element/custom-native-drag-preview/set-custom-native-drag-previewto usepopover="manual"+showPopover()(with fallback to previousz-indexbehavior).
Impact surface in this repo:special-pages/pages/new-tab/app/favorites/components/PragmaticDND.jsusessetCustomNativeDragPreview.
Why this matters: this can affect drag-preview rendering/layering and drag interaction semantics in browsers that support Popover API.Confirmed non-issues
- No runtime dependency expansion between
1.7.9and1.8.0(same prod deps:@babel/runtime,bind-event-listener,raf-schd).npm audit --workspace special-pages --omit devreports 0 known vulnerabilities.Test coverage and validation status
- Existing integration tests already cover core favorites DnD behavior in
special-pages/pages/new-tab/app/favorites/integration-tests/favorites.spec.js(re-orders items,support drop on placeholders,accepts external drag/drop).- I could not execute that suite here due an unrelated pre-existing build failure resolving
@duckduckgo/design-tokens/build/desktop-browsers/onboarding.css, so PR-specific runtime validation is still pending.Required validation for this bump
- Run favorites DnD integration tests on at least one Popover-capable browser and one fallback-path browser.
- Manually verify drag preview placement and successful drop for both internal reorder and external drop.
Dependency necessity
- This dependency is still needed in current code: usage is localized to new-tab favorites DnD, and it provides cross-browser drag/drop handling that would be non-trivial to replicate.
- Alternative approach (optional long-term hardening): replace with native HTML5 DnD + local helpers to reduce third-party surface area, but that trades off current upstream browser-specific fixes.
Sent by Cursor Automation: Review dependabot
[Beta] Generated file diffTime updated: Fri, 22 May 2026 10:34:54 GMT AppleFile has changed IntegrationFile has changed WindowsFile has changed |
There was a problem hiding this comment.
Stale comment
Web Compatibility Assessment
special-pages/package.json(line 39),package-lock.json(lines 128-132, 10881) — severity: info
- Change is a pure dependency bump (
@atlaskit/pragmatic-drag-and-drop^1.7.9→^1.8.0) with no edits to injected feature code, wrappers, shims, lifecycle hooks, or platform entry points. No direct risk to injected API-surface fidelity/prototype integrity patterns.special-pages/package.json(line 39) — severity: info
- Runtime impact is scoped to
special-pages(new-tab favorites drag/drop usage), not hostile third-party page contexts where injected script tamper-resistance constraints apply.Security Assessment
special-pages/package.json(line 39),package-lock.json(lines 128-132) — severity: info
- No changes to
injected/security-sensitive paths (captured-globals,wrapper-utils,DDGProxy, message bridge/transports, origin checks). Threat-model controls for page-world tampering and bridge boundary remain unchanged.package-lock.json(lines 128-132) — severity: info
- Lockfile updates include new
resolvedtarball andintegrityhash for1.8.0, so install-time artifact pinning remains intact.Risk Level
Low Risk — dependency-only update in
special-pageswith no modifications to injected runtime protections or web-API override machinery.Recommendations
- Run
special-pagesunit/integration coverage for new-tab favorites drag/drop flows to catch upstream behavioral drift from the minor version bump.- Perform a quick manual smoke test of reorder + external drop interactions in the new-tab favorites UI across at least one desktop and one mobile WebView target.
Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Stale comment
Findings (risk-focused)
- Coverage gap on the exact changed behavior path (confirmed)
- Upstream
@atlaskit/pragmatic-drag-and-drop1.8.0introduces a minor runtime behavior change: it moves "on-top" rendering (including custom native drag previews) topopover="manual"top-layer logic, withz-indexfallback.- Our code uses that path in
special-pages/pages/new-tab/app/favorites/components/PragmaticDND.jsviasetCustomNativeDragPreview.- The drag/drop coverage in
special-pages/pages/new-tab/app/favorites/integration-tests/favorites.spec.jsis good functionally, but it only runs in theintegrationPlaywright project (Desktop Chrome) perspecial-pages/playwright.config.js.- The same spec is not exercised in
macos/ios/androidprojects, even though this dependency change is browser-engine sensitive.- Risk: regressions in drag-preview layering / hit-testing on WebKit-family paths could ship without test signal.
Uncertain concerns (assumptions + validation needed)
- If any shipped runtime falls back to the non-popover path (older engine / constrained webview behavior), behavior should remain old-style
z-index-based, but we do not currently have an explicit regression assertion for that path in this repo.Dependency necessity check
- The dependency is still needed today. It is actively used by favorites DnD logic; replacing it with native DnD primitives here would be higher-risk and larger in scope than this bump.
Suggested follow-up (separate PR, not this one)
- Add a targeted cross-engine regression check for favorites drag preview + drop (at minimum WebKit project coverage for the favorites DnD path).
- Optional alternative: bump directly to
1.8.1in a follow-up dependency PR (latest patch; upstream notes expanded a11y Playwright coverage).Sent by Cursor Automation: Review dependabot
|
A newer version of @atlaskit/pragmatic-drag-and-drop exists, but since this PR has been edited by someone other than Dependabot I haven't updated it. You'll get a PR for the updated version as normal once this PR is merged. |
There was a problem hiding this comment.
Stale comment
Web Compatibility Assessment
special-pages/package.jsonline 39,package-lock.jsonlines 85-97 and 249-255 — severity: info
Dependency-only bump of@atlaskit/pragmatic-drag-and-dropfrom^1.7.9to^1.8.0; noinjected/code, wrapper utilities, API shims, lifecycle hooks, platform entry points, or messaging code changed.- Upstream package diff — severity: info
1.8.0changes the package’s overlay internals for honey-pot/custom native drag-preview rendering to usepopover="manual"top-layer placement when supported, with the prior max-z-indexpath as fallback. This can affect new-tab favorites drag/drop visuals, but it is scoped tospecial-pages, not hostile page-world injected scripts.- Validation — severity: info
npm run build --workspace=special-pagesandnpm run test-int --workspace=special-pages -- pages/new-tab/app/favorites/integration-tests/favorites.spec.js --project integration --reporter listpassed locally (18 passed).Security Assessment
special-pages/package.jsonline 39,package-lock.jsonlines 85-97 — severity: info
No changes to security-sensitive injected surfaces (captured-globals,wrapper-utils,DDGProxy, message bridge, transports, origin validation, orpostMessage). The hostile-page tampering threat model is unaffected by the repository diff.- Dependency metadata — severity: info
Production dependency set is unchanged between1.7.9and1.8.0;npm audit --workspace special-pages --omit devreports 0 vulnerabilities.Risk Level
Low Risk — dependency-only
special-pagesupdate with localized new-tab drag/drop behavior and no changes to injected runtime protections or messaging security boundaries.Recommendations
- No blocking changes for this PR.
- Optional follow-up: add WebKit/mobile-project coverage for the favorites drag-preview/drop path, since the upstream Popover API behavior is browser-engine sensitive and current
favorites.spec.jscoverage runs under theintegrationDesktop Chrome project.Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Stale comment
Dependency risk review for
@atlaskit/pragmatic-drag-and-drop1.7.9->1.8.0.Confirmed issues: none found.
What changed upstream:
1.8.0moves the package's "on top" rendering helpers topopover="manual"/ browser top-layer when available, with the previousz-index: 2147483647behavior as fallback. The published package diff confirms this touches the honey-pot fix andsetCustomNativeDragPreview; no runtime dependency or license changes.Repo impact: the direct affected usage is New Tab favorites in
special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js, which uses element drag/drop, external HTML drops, andsetCustomNativeDragPreview. The external adapter APIs used here did not change in the package diff.Coverage checked: after
npm ci,npm run test-int -- pages/new-tab/app/favorites/integration-tests/favorites.spec.js --reporter listpassed locally: 18/18. Current CI also shows special-pages Chromium/WebKit jobs passing.Residual validation risk: the favorites suite is only matched by the
integrationproject inspecial-pages/playwright.config.js(Desktop Chrome). Because this dependency change is specifically top-layer/Popover behavior and upstream calls out Safari support boundaries, I would still smoke-test New Tab favorites reorder on macOS/iOS native shells or add separate WebKit coverage forfavorites.spec.jsif this path has regressed before. This is an uncertain concern, not a confirmed bug.Dependency need: it still looks justified for this code path. Replacing it would mean reimplementing internal reorder monitoring, closest-edge drop calculation, custom native preview handling, and external bookmark MIME/html drop behavior. I did not draft a separate fix PR because I did not identify a concrete code fix needed from this review.
Sent by Cursor Automation: Review dependabot
There was a problem hiding this comment.
Stale comment
Dependency review for
@atlaskit/pragmatic-drag-and-drop1.7.9->1.8.0:No confirmed blocking issues found.
Evidence:
- PR diff only updates
special-pages/package.jsonandpackage-lock.json; runtime dependencies and license remain unchanged (Apache-2.0, same@babel/runtime,bind-event-listener,raf-schd).- Upstream changelog for
1.8.0says the behavior change is internal “on top” rendering: honey-pot overlay and custom native drag previews now usepopover="manual"/ browser top layer when supported, falling back to the priorz-index: 2147483647approach when unsupported.- Local usage is still needed: the package is directly used by the new-tab favorites DnD implementation, including
setCustomNativeDragPreview,monitorForElements,dropTargetForElements, and external drop handling.- Existing coverage exercises the affected user paths: focused favorites integration suite passed, including reorder, placeholder drop, and external drop.
Verification run:
npm run test-int -w special-pages -- pages/new-tab/app/favorites/integration-tests/favorites.spec.js --reporter list-> 18 passednpm run build -w special-pages-> passedUncertain residual risk:
- Because
1.8.0switches supported browsers from z-index overlaying to the Popover API, native embedded browser smoke coverage is still the useful validation point, especially Safari/WebKit-based shells and any platform versions whereHTMLElement.prototype.showPopoverexists but top-layer/manual-popover drag behavior differs from desktop Chromium. The automated Playwright coverage gives good confidence for Chromium-style behavior but does not prove all native shell engines.No fix PR drafted because I did not find a confirmed code or test gap requiring changes.
Sent by Cursor Automation: Review dependabot
|
@sashalavron Are you able to test this? I noticed that you've looked at the code recently? |
@jonathanKingston I haven’t worked on that specific part of the code (the drag-and-drop functionality). I believe @shakyShane knows it best. Bottom line: looks good from my side. Everything is working (the library changes are related to using the Popover API instead of z-index). |
|
@dependabot rebase |
|
Looks like this PR has been edited by someone other than Dependabot. That means Dependabot can't rebase it - sorry! If you're happy for Dependabot to recreate it from scratch, overwriting any edits, you can request |
|
@dependabot rebase |
|
Looks like this PR has been edited by someone other than Dependabot. That means Dependabot can't rebase it - sorry! If you're happy for Dependabot to recreate it from scratch, overwriting any edits, you can request |
|
@dependabot rebase |
|
Looks like this PR has been edited by someone other than Dependabot. That means Dependabot can't rebase it - sorry! If you're happy for Dependabot to recreate it from scratch, overwriting any edits, you can request |
|
@dependabot rebase |
|
Looks like this PR has been edited by someone other than Dependabot. That means Dependabot can't rebase it - sorry! If you're happy for Dependabot to recreate it from scratch, overwriting any edits, you can request |
|
@dependabot rebase |
|
Looks like this PR has been edited by someone other than Dependabot. That means Dependabot can't rebase it - sorry! If you're happy for Dependabot to recreate it from scratch, overwriting any edits, you can request |
|
@dependabot recreate |
d4008a6 to
037a32f
Compare
There was a problem hiding this comment.
Stale comment
Injected PR Evaluation: Web Compatibility & Security
Reviewed diff
6412fc4...037a32f— dependency-only bump of@atlaskit/pragmatic-drag-and-drop1.7.9→1.8.1inspecial-pages/. No changes toinjected/,wrapper-utils,captured-globals, messaging transports, or message bridge.Verified:
npm cisucceeds,special-pagesunit tests pass (104/104), andnew-tab.spec.jsintegration tests pass (11/11).
Web Compatibility Assessment
File Severity Finding special-pages/package.jsoninfo Dependency is scoped to special-pages (embedded New Tab), not injected page-world code. Third-party site API fidelity concerns (toString masking, prototype chain, stack-trace exemptions) do not apply. @atlaskit/pragmatic-drag-and-drop@1.8.0(transitive)info Minor release switches drag-preview and honey-pot overlay rendering to popover="manual"(top layer) withposition:fixed+maxZIndexfallback whenHTMLElement.prototype.showPopoveris absent. Consumer code inPragmaticDND.jsusessetCustomNativeDragPreview/centerUnderPointer, so drag-preview stacking behavior may change on engines with Popover API support (Chrome 114+, Edge 114+, Firefox 125+, Safari 17+). Fallback preserves prior z-index behavior on older WebViews.@atlaskit/pragmatic-drag-and-drop@1.8.1(transitive)info Patch release — internal a11y Playwright test coverage only; no runtime API changes. Transitive deps info Unchanged: @babel/runtime,bind-event-listener,raf-schd. No new transitive surface.special-pages/pages/new-tab/app/favorites/components/PragmaticDND.jsinfo Unchanged by this PR. No integration tests cover drag-and-drop reordering; regression risk is limited to New Tab favorites UX, not general web compatibility. No warning or error-level injected-runtime compatibility findings.
Security Assessment
File Severity Finding Entire diff info Zero injected-runtime security surface. No changes to global capture hygiene, messaging trust boundaries, origin validation, config gating, or iframe access patterns. @atlaskit/pragmatic-drag-and-drop(transitive)info Library runs inside the trusted New Tab special-page origin, not on hostile third-party pages. Drag-preview creates short-lived document.bodychildren managed by library cleanup handlers — pre-existing pattern, not introduced by this bump. No neweval/Function, unscopedpostMessage, ornativeDataforwarding.package-lock.jsoninfo Lockfile changes are limited to the single package version/integrity update — no unrelated dependency ref churn. No warning, error, or critical security findings.
Risk Level
Low Risk — dependency-only change confined to
special-pages; injected privacy/security runtime is unaffected. Residual UX risk is limited to New Tab favorites drag-and-drop preview stacking on Popover-capable engines.
Recommendations
- Manual QA (info): Smoke-test favorites drag-and-drop reorder on macOS, Windows, iOS, and Android — confirm drag preview renders correctly and drop targets behave as expected after the 1.8.0 Popover API change.
- Test gap (info): Consider adding a Playwright integration test for favorites reorder if drag-and-drop regressions are a concern; none exist today.
- Merge posture: Safe to merge from an injected web-compat/security perspective. No code changes required in this repo for the bump itself.
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. No companion fix PR is needed.
Scope & blast radius
This PR only bumps the lockfile and
special-pages/package.json. The sole consumer isspecial-pages/pages/new-tab/app/favorites/components/PragmaticDND.js, which uses:
draggable/dropTargetForElements/monitorForElements(element adapter)monitorForExternal/dropTargetForExternal/getHTML(external adapter)setCustomNativeDragPreview+centerUnderPointer(custom drag preview)No application code changes are required for API compatibility.
Changelog impact
Version Type Runtime relevance 1.8.0 Minor Yes — honey-pot fix and setCustomNativeDragPreviewnow usepopover="manual"+showPopover()whenHTMLElement.prototype.showPopoverexists; falls back toposition:fixed+z-index: 2147483647otherwise.1.8.1 Patch No — internal a11y Playwright test coverage only. 1.7.10 (skipped) Patch Internal @atlaskit/themetoken cleanup; no expected runtime impact.The meaningful behavioral delta is the Popover API adoption in 1.8.0. Package diff confirms only two runtime files changed:
honey-pot-fix/make-honey-pot-fix.jsandset-custom-native-drag-preview.js. Transitive dependencies are unchanged (@babel/runtime,bind-event-listener,raf-schd).Test coverage
Covered (confirmed):
favorites.spec.jsexercises reorder, placeholder drop, and external drop via PlaywrightdragTo/ syntheticDragEvents.- All three DND tests pass locally against 1.8.1 (Desktop Chrome / Popover-supported path).
Gaps (confirmed):
- DND tests run only under the
integrationproject (Desktop Chrome). They do not run on Safari/iOS/WebKit wheresetCustomNativeDragPreviewhas platform-specific workarounds.- Playwright
dragTovalidates reorder semantics and MIME payloads, not visual drag-preview rendering or honey-pot pointer-event isolation.- The z-index fallback path (browsers without
showPopover) is not exercised in CI.These are pre-existing coverage limitations, not regressions introduced by this bump.
Dependency necessity
Pragmatic DND remains the right tool here: it handles element reordering, external bookmark drops (custom MIME + HTML meta parsing), and custom native drag previews in one abstraction. No other workspace package duplicates this.
@atlaskit/pragmatic-drag-and-drop-hitbox@^1.1.0remains compatible (peer:^1.6.0on core); no hitbox bump required for this change.Supply chain
- Publisher: Atlassian (
atlassianartifactteam) — established maintainer, same as prior versions.- License: Apache-2.0 (unchanged).
- Integrity: Lockfile pins
sha512-uXWNPpL8n4OmTVbduH7nq8pk8htqGo/prR5cYEE8sVCPJGAUMWn6lzvWTfI+4VCeQvHiDRODVz4YzH06OVAxhw==.- npm audit: No advisories tied to this package.
- Provenance: Published ~1 month ago; no signs of account takeover or unexpected maintainer change.
Uncertain / manual validation recommended
- Safari/macOS drag preview — 1.8.0 still carries a Safari opacity workaround in
setCustomNativeDragPreview; upstream notes it may be removable in Safari 26.4+. Quick manual smoke on macOS NTP favorites drag is prudent since CI doesn't cover WebKit.- iOS favorites reorder — Popover API is supported on Safari 17+; DDG iOS WebViews should be fine, but touch DND isn't covered by Playwright here.
Neither item blocks merge given the explicit fallback and passing Chrome integration tests.
Fix PR
No code changes warranted. This is a clean semver patch/minor bump with no lockfile anomalies or API breaks in our usage.
Sent by Cursor Automation: Review dependabot
|
@dependabot rebase |
037a32f to
e4f1169
Compare
There was a problem hiding this comment.
Stale comment
Injected PR Evaluation: Web Compatibility & Security
Scope note: This PR only bumps
@atlaskit/pragmatic-drag-and-dropinspecial-pages/(package.json+package-lock.json). No files underinjected/are changed. The injected web-compat/security rubric therefore does not apply to the diff itself; findings below cover the dependency's runtime impact in the one consumer (PragmaticDND.json the New Tab Page).
Web Compatibility Assessment
File Lines Severity Finding special-pages/package.json39 info Dependency-only change; no API overrides, prototype patches, or page-world shims. Third-party site compatibility is unaffected. special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js(consumer, unchanged)183–198 info Consumer uses setCustomNativeDragPreview+centerUnderPointer. v1.8.0 switches top-layer rendering for custom drag previews (and the honey-pot fix) fromz-index: 2147483647topopover="manual", with fallback to the old z-index path when Popover API is unavailable (Chrome 114+, Safari 17+, Firefox 125+).special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js(consumer, unchanged)50–147 info Cleanup via combine()from element/external adapters is compatible with v1.7.2+ single-call cleanup semantics already in use.No warning or error-level injected-compat findings.
Security Assessment
File Lines Severity Finding special-pages/package.json39 info No changes to captured-globals.js, message bridge, messaging transports,shouldExemptMethod(), or origin validation.special-pages/package.json— info Library is scoped to the isolated New Tab special page (first-party embedded context), not injected into hostile third-party pages. special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js(consumer, unchanged)293–294 info Pre-existing createContextualFragment(html)on external drag payloads — not introduced by this bump. External drop is gated by MIME-type checks and attribute validation.No warning, error, or critical security findings in the diff.
Risk Level
Low Risk — lockfile-only dependency bump in
special-pages; zero injected-code changes; no messaging or API-shim surface touched.
Recommendations
- Merge — build succeeds; favorites integration tests pass (18/18), including
re-orders items,support drop on placeholders, andaccepts external drag/drop.- Optional manual QA — spot-check favorites drag preview rendering on iOS and Android WebViews if Popover API support is uncertain on older embedded engines (library falls back to z-index).
- No injected-workspace action required.
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–medium risk; safe to merge after manual drag-preview QA on native WebViews.
Scope of change
Lockfile-only bump in
special-pages/package.json. No application code changes.Single consumer:
special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js(favorites tile reorder + external bookmark drop on NTP).APIs used:
draggable,dropTargetForElements,dropTargetForExternal,monitorForElements,monitorForExternal,combine,setCustomNativeDragPreview,centerUnderPointer,getHTML, plus hitbox helpers (attachClosestEdge,extractClosestEdge,reorderWithEdge,getReorderDestinationIndex).
Changelog impact (confirmed)
Version Runtime impact 1.8.0 (minor) Behavioral change. Honey-pot fix and custom native drag previews now use popover="manual"+showPopover()(top layer) instead ofz-index: 2147483647. Falls back to the old z-index path whenHTMLElement.prototype.showPopoveris absent. Min versions: Chrome/Edge 114+, Firefox 125+, Safari 17+.1.8.1 (patch) Internal Atlassian a11y Playwright coverage only — no runtime change. 1.7.10 (skipped) Internal @atlaskit/themetoken cleanup — no expected runtime impact.Direct impact on our code:
Tile.jscallssetCustomNativeDragPreviewviauseItemStateinPragmaticDND.js. That code path is modified in 1.8.0. Reorder/drop logic and MIME handling are unchanged.
Test coverage
Existing integration tests (pass on 1.8.1):
re-orders items— internal tile drag →favorites_movepayloadsupport drop on placeholders— edge/placeholder index handlingaccepts external drag/drop—text/htmlmeta payload parsingnpm run test-int -- pages/new-tab/app/favorites/integration-tests/favorites.spec.js \ --grep "re-orders|placeholder|external drag" --reporter list # 3 passedGaps (uncertain areas):
- No unit tests for
PragmaticDND.js- No screenshot/visual test for drag preview rendering
- Playwright
dragTovalidatesfavorites_movemessaging, not whether the native drag preview ghost renders correctly under the Popover API top layer- External-drop test dispatches synthetic
DragEvents; does not exercise real OS drag from the bookmarks barRecommended manual QA before/after merge:
- Drag a favorite tile on macOS, Windows, iOS, Android — confirm ghost preview appears and tracks pointer
- Drop onto placeholder slots at end of row
- Drag a bookmark from the native bookmarks UI onto favorites (DDG MIME + HTML fallback path)
Dependency necessity
Still appropriate. This is the only DnD library in the repo; usage is well-scoped to NTP favorites. No in-repo alternative (e.g. native HTML5 DnD without the library) would be simpler given external-drop + edge-reorder requirements.
@atlaskit/pragmatic-drag-and-drop-hitboxremains at^1.1.0(peer^1.6.0); compatible. Latest hitbox1.2.0is docs-only — no need to bump alongside this PR.
Supply chain
Check Assessment Publisher Atlassian ( atlassianartifactteam) via official npm registryLicense Apache-2.0 Source github.com/atlassian/pragmatic-drag-and-drop Transitive deps @babel/runtime,bind-event-listener,raf-schd— small, establishedIntegrity Lockfile sha512updated for1.8.1Known incidents None identified for this package Low supply-chain concern. Scoped
@atlaskit/*package from the vendor's automated publishing pipeline; no new dependencies introduced by this bump.
Confirmed vs uncertain
Confirmed
- Version bump is lockfile-only; no breaking import/API changes for our usage
- 1.8.0 changes drag-preview and honey-pot stacking via Popover API (with fallback)
- Favorites DnD integration tests pass on 1.8.1
Uncertain — needs native WebView validation
- Whether embedded WebViews on all DDG platforms expose
showPopover()and render the drag preview correctly via the top layer (especially Safari/WebKit on iOS)- Whether popover top-layer interacts with NTP stacking contexts (omnibar, customizer drawer, z-indexed widgets) during an active drag
Fix PR
No companion fix PR proposed. Automated tests pass and the library retains a z-index fallback. The residual risk is visual/regression on real platforms, which is QA rather than a code adaptation. Optional follow-up (separate PR): add a
@screenshotstest capturing favorites mid-drag state to catch future preview regressions.Sent by Cursor Automation: Review dependabot
| }, | ||
| "dependencies": { | ||
| "@atlaskit/pragmatic-drag-and-drop": "^1.7.9", | ||
| "@atlaskit/pragmatic-drag-and-drop": "^1.8.1", |
There was a problem hiding this comment.
1.8.0 is the meaningful jump here (not 1.8.1). This minor release switches setCustomNativeDragPreview — used by Tile.js / PragmaticDND.js — from z-index: 2147483647 to popover="manual" when HTMLElement.prototype.showPopover exists.
Integration tests cover reorder payloads but not preview rendering. Recommend manual drag-preview QA on macOS + iOS WebKit before relying on auto-merge.
|
@dependabot rebase |
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.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
e4f1169 to
27bef2c
Compare
There was a problem hiding this comment.
Injected PR Evaluation: Web Compatibility & Security
Scope: special-pages/package.json + package-lock.json only — bumps @atlaskit/pragmatic-drag-and-drop 1.7.9 → 1.8.1. No changes under injected/, messaging/, wrapper-utils.js, or captured-globals.js.
Validation: npm ci succeeds; npm run test-unit --workspace=special-pages (104/104) and favorites integration suite (18/18, including re-orders items, accepts external drag/drop, support drop on placeholders) pass on 1.8.1.
Web Compatibility Assessment
| File | Severity | Finding |
|---|---|---|
| (none in diff) | info | No injected-runtime impact. This dependency is consumed only by the New Tab Page favorites widget (PragmaticDND.js). It does not run in third-party page contexts, so API-surface-fidelity / prototype-patching concerns for injected features do not apply. |
special-pages/…/PragmaticDND.js (consumer, unchanged) |
warning | 1.8.0 rendering change affects this consumer. Changelog notes a minor change: honey-pot fix and setCustomNativeDragPreview overlays now use popover="manual" (top layer) instead of z-index: 2147483647, with z-index fallback when Popover API is unavailable. Minimum engines: Chrome/Edge 114+, Firefox 125+, Safari 17+. DDG embedded WebViews should meet this, but drag-preview stacking and tile hover/highlight states during drag are the areas most likely to regress on older engines. |
package-lock.json |
info | Unrelated lockfile churn: @duckduckgo/design-tokens devDependency ref changes from commit b484a4c… to tag v0.28.0. Outside the stated Dependabot scope; confirm intentional or split. |
package-lock.json |
info | Transitive runtime deps unchanged between 1.7.9 and 1.8.1 (@babel/runtime, bind-event-listener, raf-schd). 1.8.1 itself is a patch (internal a11y test coverage only). |
Security Assessment
| File | Severity | Finding |
|---|---|---|
| (none in diff) | info | No changes to captured-globals.js, message-bridge trust boundaries, origin validation, or native messaging schemas/transports. |
PragmaticDND.js (consumer, unchanged) |
info | External-drop path still parses text/html via createRange().createContextualFragment() and validates DDG_MIME_TYPE meta — pre-existing behavior, not introduced by this bump. Runs in privileged NTP context (native bookmark drag-in), not hostile page injection. |
package-lock.json |
info | Integrity hash updated for pragmatic-drag-and-drop 1.8.1; no version downgrade. |
Risk Level
Low Risk — dependency-only bump confined to the special-pages workspace with no injected script changes; the only behavioral delta is upstream DnD overlay rendering (Popover API with fallback), and targeted favorites integration tests pass.
Recommendations
- (info) Acknowledge or revert the unrelated
@duckduckgo/design-tokenslockfile ref change so review scope stays aligned with the Dependabot title. - (warning) Spot-check favorites drag-reorder and external bookmark drop on iOS and Android WebViews — CI Playwright covers reorder/external-drop logic but not native drag-preview rendering across engines.
- (info) Safe to merge from a web-compat/security perspective for injected code; residual risk is limited to NTP favorites DnD UX on engines lacking
popover="manual".
Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Dependency update review: @atlaskit/pragmatic-drag-and-drop 1.7.9 → 1.8.1
Verdict: Low risk, acceptable to merge after manual drag-preview QA on at least one native WebView (iOS or macOS). No separate code-fix PR is required.
Scope & blast radius
This dependency is used in one place: NTP favorites drag-and-drop via special-pages/pages/new-tab/app/favorites/components/PragmaticDND.js.
APIs exercised:
draggable,dropTargetForElements,monitorForElements(element adapter)monitorForExternal,dropTargetForExternal,getHTML(external adapter)setCustomNativeDragPreview+centerUnderPointer(directly affected by 1.8.0)@atlaskit/pragmatic-drag-and-drop-hitboxhelpers (closest-edge,reorder-with-edge,get-reorder-destination-index)
No other workspaces import this package.
Changelog impact (1.7.9 → 1.8.1)
| Version | Change | Relevance |
|---|---|---|
| 1.8.0 (minor) | Honey-pot fix + custom native drag previews now use popover="manual" (top layer) instead of z-index: 2147483647, with fallback when Popover API is unavailable (Chrome/Edge 114+, Firefox 125+, Safari 17+) |
Primary risk surface — we call setCustomNativeDragPreview on every favorite drag |
| 1.8.1 (patch) | Internal a11y Playwright test coverage only | No runtime impact |
| 1.7.10 (skipped) | Internal @atlaskit/theme cleanup |
No runtime impact |
Runtime dependency tree is unchanged (@babel/runtime, bind-event-listener, raf-schd).
Test coverage
Covered (integration): favorites.spec.js exercises reorder messaging, placeholder drops, and external HTML drops — all 18 tests pass on 1.8.1 (Chromium/Playwright).
Gap: Tests assert favorites_move native messaging, not drag-preview rendering or honey-pot hit-testing. The 1.8.0 popover change is unlikely to break reorder logic but could affect preview appearance/positioning on embedded WebViews. Recommend manual smoke test: drag a favorite on macOS and iOS, confirm preview follows pointer and drop targets still highlight correctly.
Dependency necessity
Still warranted. Pragmatic DND is the established solution here; dropzone.js handles unrelated page-level drop suppression. No in-repo alternative for grid reorder + external bookmark drops.
@atlaskit/pragmatic-drag-and-drop-hitbox remains at ^1.1.0 (peer: ^1.6.0). Optional follow-up: bump to 1.2.0 (peer: ^1.8.0) — changelog is docs-only, not blocking.
Supply chain
- Publisher: Atlassian (
@atlaskit/*), Apache-2.0 - Distribution: npm with lockfile integrity hash
- Adoption: ~896K weekly downloads; maintained in Atlassian's public monorepo
- Risk: Low — no new transitive deps, no integrity/hash anomalies in the diff
Confirmed issue (non-blocking)
Scope creep: package-lock.json also retags @duckduckgo/design-tokens from commit b484a4cd → #v0.28.0 (same version). Harmless but unrelated to this bump; consider reverting that hunk to keep the PR single-purpose.
Uncertain concerns (manual validation)
- Drag preview on older WebViews — Popover API falls back to
position:fixed+ max z-index; behavior should match 1.7.x, but worth confirming on minimum supported DDG browser versions. - Android drag preview — 1.7.4 documented Android always centers preview under pointer; our code uses
centerUnderPointer, so low concern but untested in CI.
Separate fix PR
Not drafted — no code changes required. Tests pass; risks are QA/validation gaps, not defects.
Sent by Cursor Automation: Review dependabot
| }, | ||
| "dependencies": { | ||
| "@atlaskit/pragmatic-drag-and-drop": "^1.7.9", | ||
| "@atlaskit/pragmatic-drag-and-drop": "^1.8.1", |
There was a problem hiding this comment.
This is the only direct consumer of @atlaskit/pragmatic-drag-and-drop in the monorepo (PragmaticDND.js on the NTP favorites grid). The 1.8.0 minor bump changes how setCustomNativeDragPreview renders (Popover API top-layer with z-index fallback) — the main surface to manually QA after merge.
| }, | ||
| "devDependencies": { | ||
| "@duckduckgo/design-tokens": "github:duckduckgo/design-tokens#b484a4cd22cc712c2977136369b2a8cd2af40c9f", | ||
| "@duckduckgo/design-tokens": "github:duckduckgo/design-tokens#v0.28.0", |
There was a problem hiding this comment.
Unrelated scope creep: this retags @duckduckgo/design-tokens from commit b484a4cd to #v0.28.0 (same 0.28.0 version already resolved in the base lockfile). Harmless, but worth reverting to keep this PR focused on the Atlaskit bump only.
|
Superseded by #2754. |


Bumps @atlaskit/pragmatic-drag-and-drop from 1.7.9 to 1.8.1.
Commits
Note
Low Risk
Dependency-only minor version bump with no source changes; verify new-tab favorites drag-and-drop in QA if the library had behavioral changes in 1.8.x.
Overview
Bumps
@atlaskit/pragmatic-drag-and-dropfrom 1.7.9 to 1.8.1 inspecial-pagesand refreshespackage-lock.jsonaccordingly. The new-tab favorites flow (PragmaticDND.js) is the consumer of this library; this PR does not change any application code.The lockfile also aligns the
special-pagesworkspace entry for@duckduckgo/design-tokensto thev0.28.0git tag (already declared inpackage.json).Reviewed by Cursor Bugbot for commit 27bef2c. Bugbot is set up for automated code reviews on this repo. Configure here.