Skip to content

Update firebase_performance_swizzle_denylist - #16546

Open
tejasd wants to merge 2 commits into
mainfrom
td/proxy
Open

Update firebase_performance_swizzle_denylist#16546
tejasd wants to merge 2 commits into
mainfrom
td/proxy

Conversation

@tejasd

@tejasd tejasd commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Updates usage of firebase_performance_swizzle_denylist to also apply to objects and proxies. Adds relevant unit tests.

This will be followed up with google/GoogleUtilities#244

See - #16469

@gemini-code-assist

Copy link
Copy Markdown
Contributor
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

@tejasd
tejasd force-pushed the td/proxy branch 6 times, most recently from bbaa6f5 to 271615f Compare August 21, 2026 22:22
@tejasd tejasd changed the title Update firebase_performance_swizzle_denylist to also prevent objects … Update firebase_performance_swizzle_denylist Aug 21, 2026
@tejasd
tejasd marked this pull request as ready for review August 21, 2026 22:29
@tejasd
tejasd requested a review from paulb777 August 21, 2026 22:51
Comment thread FirebasePerformance/Sources/Instrumentation/FPRProxyObjectHelper.m Outdated
@tejasd

tejasd commented Aug 24, 2026

Copy link
Copy Markdown
Contributor Author

I tested this locally - and noticed that if NSURLConnection is in the denylist - it fails w/ an FPRAssert. Added a second commit that updates that behaviour (which is also identical for UIViewController). Verified that it correctly skips swizzling.

Ideally we should remove swizzling for NSURLConnection - but for now this works.

…nt to not crash / swizzle if it's in the denylist.
@tejasd

tejasd commented Aug 24, 2026

Copy link
Copy Markdown
Contributor Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates Firebase Performance to honor the swizzle denylist when registering objects, proxies, and classes, and adds corresponding unit tests. Feedback highlights a potential crash in isClassInstrumentable: if aClass is Nil, as passing nil to containsObject: raises an exception, and suggests adding defensive checks.

Comment thread FirebasePerformance/Sources/Instrumentation/FPRInstrument.m
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants