Core: Fix iframe reference for composed Storybook on a subpath#34100
Merged
Conversation
…sed Storybook is on a subpath of the root Storybook (or otherwise share a common base URL)
|
View your CI Pipeline Execution ↗ for commit 210f213
☁️ Nx Cloud last updated this comment at |
Contributor
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughModified the loading guard condition in FramesRenderer.tsx for per-ref frame hrefs. The check now requires the stored URL to start with Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
✨ Finishing Touches
Comment |
valentinpalkovic
approved these changes
Mar 11, 2026
8 tasks
This was referenced Mar 13, 2026
27 tasks
Merged
1 task
This was referenced Mar 18, 2026
Merged
1 task
This was referenced Mar 18, 2026
This was referenced Apr 19, 2026
1 task
This was referenced Apr 26, 2026
1 task
This was referenced May 3, 2026
1 task
This was referenced May 10, 2026
1 task
This was referenced May 16, 2026
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.
Closes #34094
What I did
With Storybook composition, when one ref is at the root of an origin (e.g. https://example.com/) and another is in a subpath (e.g. https://example.com/sub/), composed iframe URLs were being reused (not updated), causing incorrect references when navigating to a composed story directly.
Because the root URL is a prefix of the subpath URL, a frame that already had the sub URL could be treated as "already set" for the root ref due to a naive
startsWithcheck. The root ref’s iframe then kept the sub URL, so two iframes pointed at the same sub URL. The manager then saw multiple iframes with the same origin/path and couldn’t tell which one sent a message, leading tofound multiple candidates for event sourceandreceived setGlobals but was unable to determine the source of the event.To fix this, the
startsWithcheck now includesiframe.htmlto avoid unexpected matches between different subpaths on the same domain.Checklist for Contributors
Testing
The changes in this PR are covered in the following automated tests:
Manual testing
Caution
This section is mandatory for all contributions. If you believe no manual test is necessary, please state so explicitly. Thanks!
Documentation
MIGRATION.MD
Checklist for Maintainers
When this PR is ready for testing, make sure to add
ci:normal,ci:mergedorci:dailyGH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found incode/lib/cli-storybook/src/sandbox-templates.tsMake sure this PR contains one of the labels below:
Available labels
bug: Internal changes that fixes incorrect behavior.maintenance: User-facing maintenance tasks.dependencies: Upgrading (sometimes downgrading) dependencies.build: Internal-facing build tooling & test updates. Will not show up in release changelog.cleanup: Minor cleanup style change. Will not show up in release changelog.documentation: Documentation only changes. Will not show up in release changelog.feature request: Introducing a new feature.BREAKING CHANGE: Changes that break compatibility in some way with current major version.other: Changes that don't fit in the above categories.🦋 Canary release
This pull request has been released as version
0.0.0-pr-34100-sha-210f2133. Try it out in a new sandbox by runningnpx storybook@0.0.0-pr-34100-sha-210f2133 sandboxor in an existing project withnpx storybook@0.0.0-pr-34100-sha-210f2133 upgrade.More information
0.0.0-pr-34100-sha-210f2133fix-composition-on-common-base-url210f21331773225308)To request a new release of this pull request, mention the
@storybookjs/coreteam.core team members can create a new canary release here or locally with
gh workflow run --repo storybookjs/storybook publish.yml --field pr=34100Summary by CodeRabbit