Skip to content

Remove global installedIntegrations variable #7028

Closed as not planned
Closed as not planned
@Lms24

Description

@Lms24

Problem Statement

While debugging a failing replay integration test in #7011, we just realized that the global installedIntegrations causes problems for the replay integration CDN bundle.

This is problematic, because the replay integration CDN bundle will get its own copy of installedIntegrations, which will always be empty as it is not populated by the SDK:

// Both bundles maintain separate copies of `installedIntegrations` and only the SDK's field will be used
SDk bundle
	sentry.init()
	sentry.addinitegration()
	installedIntegrations = [ 'Replay', 'Dedupe', ....]

replay bundle
	installedIntegrations = []
	prepareEvent() // prepareEvent accesses installedIntegrations but takes the replay bundle's version, which will always be empty

Solution Brainstorm

We should get rid of this global as this is very problematic, albeit in this particular case, only for the replay integration.
It should be good enough to use the _integrations field in BaseClient to avoid a breaking change for now and once we move to v8, we can add public getter/a cleaner way to access this field.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions