-
Notifications
You must be signed in to change notification settings - Fork 1
Fix bfcache invalidation via Broadcast Channel #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @westonruter, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request refines the bfcache invalidation strategy by separating the Broadcast Channel mechanism into distinct emitter and listener components. This architectural change allows for more targeted application of the invalidation logic, specifically ensuring that pages are evicted from bfcache when a user logs in, enhancing security and user experience by preventing stale authenticated content from being restored. The changes also improve the accuracy of documentation regarding browser support for this feature.
Highlights
- Code Splitting and Refactoring: I've refactored the existing Broadcast Channel bfcache invalidation logic by splitting it into two distinct components: an 'emitter' and a 'listener'. This improves clarity and allows for more precise control over when and where each part of the Broadcast Channel mechanism is active.
- Dedicated Emitter for Login Screens: A new JavaScript module (
bfcache-invalidation-via-broadcast-channel-emitter.js) has been introduced and is now specifically enqueued on thelogin_enqueue_scriptshook. This ensures that a message is broadcast from the login screen, which can then invalidate pages in the browser's bfcache, particularly useful for security when a user logs in. - Dedicated Listener for General Pages: The existing Broadcast Channel listener logic has been moved into its own dedicated JavaScript module (
bfcache-invalidation-via-broadcast-channel-listener.js). This listener is enqueued on general frontend and admin pages, allowing them to receive the invalidation message from the login screen and be evicted from bfcache. - Improved Browser Compatibility Notes: Comments in the code have been updated to accurately reflect that Chrome, Edge, and Firefox implement the
broadcastchannel-messagebfcache blocking reason, while Safari does not. This clarifies which browsers benefit from this specific invalidation method.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| 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 issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize 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 is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
The pull request refactors the bfcache invalidation logic for BroadcastChannel by splitting it into dedicated emitter and listener scripts. The changes are consistent across all modified files, from PHP constants and script registration to the JavaScript modules themselves.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
|
/gemini review |
There was a problem hiding this comment.
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 refactors the bfcache invalidation logic, improving code organization and clarity. The Broadcast Channel handling is separated into an emitter and listener, and script module IDs are centralized in an interface. A minor suggestion involves removing unused data passed to a script module.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…ck in all browsers
No description provided.