Settings page (enable/disable/reorder/hide features), Dark Mode system theme, GDPR per-site exclusions, Cookie/Tab/JSON improvements#5
Open
mayerwin wants to merge 1 commit into
Conversation
aeb2c94 to
df79765
Compare
… system theme, GDPR per-site exclusions, Cookie Editor filter + delete filtered, Tab Cleaner subdomain toggle, JSON Formatter search ## Settings Page — Customize Features (NEW) Add a full Settings page (⚙️) to the popup with: - Enable/Disable toggle for each of the 15 features — disabling a feature removes its tab from the nav bar and stops its scripts from executing - Drag-and-drop reordering of features — custom tab order persisted to storage and reflected in the nav bar instantly - Hide features from the nav bar while keeping them active in the background - Bulk actions: Enable All, Disable All, Show Hidden - Live counter showing 'N of 15 features active' - Tooltips on each feature row showing its description (suppressed during drag-and-drop to avoid visual clutter) The hardcoded nav bar is replaced with a dynamic one generated from the FEATURES array, respecting enable/disable state, hidden state, and custom order. All individual per-feature toggle switches (darkToggle, nocookieToggle, xdimToggle, unhookToggle, xunhookToggle, jsonformatToggle, etc.) have been removed from their respective pages — toggling is now centralized in Settings. ## Dark Mode — 3-State Pill Selector (ON / OFF / SYSTEM) Replace the binary toggle with a 3-state pill selector with animated glider: - ON: always force dark theme - OFF: always force light theme - SYSTEM: follow the OS prefers-color-scheme media query, auto-switching when the system theme changes - Each pill button has a tooltip explaining its behavior - darkmode.js now tracks currentMode and listens to matchMedia change events ## GDPR Consent — Per-Site Exclusions - Add per-domain exclusion so users can exclude individual sites that break instead of disabling the feature globally - 'Exclude This Site' button on the GDPR page adds the current domain to a nocookie_exclusions list - Excluded sites list is manageable directly from the popup with remove buttons - nocookie.js: new checkAndActivate() function checks both the global toggle and per-domain exclusion list before activating - Listens for nocookie_exclusions_updated messages to react to changes in real time ## Cookie Editor — Filter + Delete Filtered + Clear Button - Add filter input in the cookie header to search cookies by name - Add × clear button inside the filter field, visible only when text is present - When a filter is active, 'Delete All' is replaced by 'Delete Filtered' which removes only matching cookies - Filter resets automatically when switching to a different domain ## Tab Cleaner — Subdomain Toggle (Retrocompatible) - Each exclusion now shows a 'subdomains' checkbox - Checked (default): matches domain + all subdomains (google.com matches mail.google.com) - Unchecked: exact host match only — stored as 'exact:domain' in storage - 100% backward compatible: existing plain-string exclusions keep their wildcard behavior unchanged ## JSON Formatter — Live Search with Auto-Expand - Add search input (type=search with native × button) to the formatted JSON toolbar - Highlights matching keys/values with high-contrast mark tags - Automatically expands all collapsed parent blocks containing a match - Clearing input restores all original content ## Other Changes - viewimage.js: add second data path (data[31][0][12][2]) for Google Images metadata extraction alongside existing data[56] path; wrap in event listener callback (indentation-only for existing code) - livecss.js: respect feature_livecss_enabled flag — disabling CSS Editor in Settings now prevents CSS injection - darkmode.js: full rewrite of state evaluation to support on/off/system modes and matchMedia listener - gmaps.js: wrapped in event listener callback (indentation-only, no logic changes) - README.md: updated feature descriptions to reflect all changes above
df79765 to
d5b80e3
Compare
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.
⚙️ Settings Page — Customize Features (NEW)
The biggest change: a full Settings page to customize the extension.
N of 15 features activeThe old hardcoded nav bar is replaced with a dynamic one generated from the FEATURES array. All per-feature toggle switches (darkToggle, nocookieToggle, etc.) have been removed from individual pages — toggling is centralized in Settings.
🌙 Dark Mode — 3-State Pill Selector (ON / OFF / SYSTEM)
Replace the binary toggle with a 3-state pill with animated glider:
prefers-color-scheme, auto-switches when system theme changesEach option has a tooltip.
darkmode.jsnow tracks mode state and listens tomatchMediachange events.🚫 GDPR Consent — Per-Site Exclusions
Instead of toggling GDPR dismissal off globally when one site breaks:
nocookie.js: newcheckAndActivate()checks both the global toggle and per-domain exclusion list🍪 Cookie Editor — Filter, Delete Filtered, Clear Button
🚮 Tab Cleaner — Subdomain Toggle (Retrocompatible)
exact:domain){} JSON Formatter — Live Search with Auto-Expand
type=searchwith native × button) in the toolbarOther Changes
data[31]+data[56])feature_livecss_enabledflag — disabling CSS Editor in Settings prevents CSS injectionmatchMedialistener