Situation
I am aware that the default interface of Google Gemini does not display details of the time and date when a conversation was created or when it was last edited.
Task
Departing from that idea, I decided to develop a browser extension that injects tooltip popups containing time metadata elegantly when the cursor is directed to the conversation title in the sidebar.
Action
I executed this idea by applying the Event Delegation technique with 1 passive event listener using 100% Vanilla JS so that memory usage remains efficient. I also configured an automatic synchronization system using chrome.storage.sync with local backups, as well as tightened security via Strict Isolation between MAIN world and ISOLATED world to prevent XSS attack loopholes.
Result
The extension I created managed to run smoothly without weighing on device performance while browsing, successfully kept the total file size below 20 KB, and recorded a CPU/RAM usage close to 0%.
System Architecture
Uses the latest Chrome extension standard Manifest V3 with Strict Isolation between the Gemini API interceptor and the extension's internal script. The extension operates completely offline with Zero External Network Requests, so no data is sent to third-party servers
Technologies & Stack
Challenges & Technical Obstacles
Avoiding browser performance degradation and potential memory leaks due to excessive attachment of event listener to dynamically loaded conversation sidebar elements.
Engineering Decisions & Trade-Offs
Selecting pure Vanilla JS and discarding external libraries to keep the final file size below 20 KB, with the trade-off consequences of having to handle DOM element manipulation manually and thoroughly.
Lessons Learned & Retrospective
- Deepen practical understanding of Chrome extension lifecycle (Manifest V3), Storage API management system, and Strict Isolation techniques to realize Enterprise-Grade security
Future Improvements & Roadmap
- Added date/time format customization options and feature of exporting conversation time history into CSV document format