Repository navigation
Feature/UI 001 - #1
Merged
Merged
Conversation
Zoom Level was computed as devicePixelRatio * 100, which measures DPI scaling, not page zoom: a Retina display at 100% zoom read 200%. Use chrome.tabs.getZoom (no extra permission) for the real page zoom and keep devicePixelRatio as its own truthful metric. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The !result check sat inside the try whose catch re-labeled every failure as "Cannot access metrics on this page", making the "Failed to extract" branch in handleError unreachable. Narrow the try to the injection calls only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The id sat on the inner svg, so the click listener only covered the 18x18 icon; clicks on the button padding did nothing. Spin animation now targets the icon via #refreshBtn.active svg. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The loading state now only shows when metrics aren't already on screen (initial load, retry from error). Refresh re-renders in place, so the scroll save/restore hack goes away; showSuccess skips its scroll reset and focus steal when the state was already visible. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
detectMetrics already persists the result next to getLastMetrics, which reads it back; the second write in the app layer was redundant. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Removes unreferenced debounce/throttle, UIController.updateElement and sleep, CONFIG.APP_NAME/VERSION/TIMINGS, the .link-btn CSS with no matching markup, and the print stylesheet (meaningless in a popup). All verified unreferenced by grep. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The 24x24 wrapper svg contained a complete 850x850 svg; a single element with the 850x850 viewBox renders identically. Drop the inert .logo fill (every path carries its own fill). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Metric values originate in the inspected page's context; today they are all numbers or browser enums (the injected func runs in the isolated world), so this is hardening, not an active hole. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Implement unit tests for breakpoint profiles, error handling, exports, metrics, protocol validation, and storage migration. - Create component tests for the PopupApp and SidePanelView to ensure UI interactions and accessibility compliance. - Develop end-to-end tests for the extension's behavior in a live environment, including metrics capturing and UI state management. - Introduce a test fixture for consistent testing of layout and document metrics. - Set up Vitest configuration for unit and end-to-end testing, including coverage reporting. - Add TypeScript configuration for improved type safety and compatibility with Preact.
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.
No description provided.