modcore Timeline is your personal activity log for browser extensions. It keeps a chronological record of everything that happens with your extensions - when they're installed, updated, enabled, disabled, or removed—giving you a complete audit trail of changes to your browser setup.
Unlike cloud-based solutions, Timeline stores everything locally on your computer. Your extension activity history never leaves your device, ensuring complete privacy while giving you powerful tools to track, search, and manage your extension lifecycle.
Timeline is disabled by default to respect your privacy and conserve system resources. To begin tracking:
Navigate to the Timeline page in modcore Extension Manager
Go to Settings and enable "modcore Timeline"
Click Save Settings to activate tracking
Once enabled, Timeline immediately begins recording extension events in the background. You can return to the History view to see your activity log populate over time.
The main History view presents your extension activity as a chronological feed. Each entry shows:
What happened: The type of event (installed, updated, enabled, disabled, uninstalled, or permissions changed)
Which extension: The name and version of the affected extension
When: The timestamp of the event
Details: Additional context, such as permission changes during an update
Events are grouped by day for easy scanning, with visual separators for "Today" and "Yesterday" to help you quickly locate recent activity. Each event type has its own icon and color coding—green for installations, red for uninstallations, yellow for updates, and blue for status changes - making it easy to spot patterns at a glance.
As your history grows, Timeline provides several tools to locate specific events:
Search filters entries by extension name or details. Type "uBlock" to see every event related to uBlock Origin, or "permission" to find all permission-related changes across your extensions.
Event Type Filters let you focus on specific activities. Want to see only installations? Uncheck everything except "Installed" in the filter panel. Troubleshooting a disabled extension? Filter to show only "Disabled" events.
Date Range selection helps you investigate issues within specific timeframes. If you noticed a problem starting last week, set the start date to seven days ago to see only relevant activity.
Sort Order changes how results appear. View newest first for recent troubleshooting, oldest first for historical investigation, group by extension to see an individual extension's complete lifecycle, or sort by event type to cluster similar activities together. # You find this in 'Settings'
Over time, your activity log can grow substantial. Timeline provides several ways to manage this data:
Automatic Pruning keeps your database lean. Set a maximum number of records (default 1,000) and Timeline automatically removes oldest entries when you exceed this limit. Alternatively, enable time-based pruning to delete records older than a specified number of days (default 90 days).
Manual Pruning gives you precise control:
Prune by Age: Remove records older than X days immediately
Prune Inactive: Delete history for extensions you've uninstalled
Prune by Type: Remove specific event types (for example, clear all "enabled/disabled" toggles while keeping installations)
Export and Import allows you to backup your history or transfer it between devices. The JSON export contains your complete activity log, which can be re-imported later or examined with external tools.
Timeline adapts to your preferences:
Logs Per Page controls pagination. Increase this to see more entries at once, or decrease it for faster loading on older computers.
Display Timestamps toggles the time column. Disable this for a cleaner view if you only need to know which day events occurred.
Compact Mode reduces padding and font sizes, fitting significantly more entries on screen—useful for power users managing dozens of extensions.
For efficient navigation without reaching for your mouse:
Alt + F: Jump to search box
Alt + G: Toggle filter panel
Alt + R: Reset all filters
Alt + C: Clear all history (with confirmation)
Alt + S: Open Settings
Alt + H: Open Help
Alt + < or Alt + >: Navigate between pages
Tracking requires an active background worker. Chromium browsers (Chrome, Edge, Brave, etc.) suspend extension background processes after periods of inactivity to save memory. If you leave your browser open for extended periods without interacting with modcore Extension Manager, Timeline may miss some events. This is a browser limitation that cannot be bypassed.
Uninstalled extensions lose their identity. When you remove an extension, Chrome deletes its metadata. Timeline preserves the event record but shows "Unknown" for the extension name and icon, since that information is no longer available from the browser.
History begins when you enable tracking. Timeline cannot retroactively capture events that occurred before activation. If you disable tracking and re-enable it later, you'll have a gap in your history during the disabled period.
For developers and system administrators interested in implementation details:
Storage Architecture
Timeline uses chrome.storage.local for persistence, ensuring data remains device-bound and survives browser restarts. The storage schema separates configuration (extensionHistorySettings) from activity data (extensionActivityHistory), allowing independent management of settings and records.
Event Capture Mechanism
The service worker registers listeners for chrome.management events (onInstalled, onUninstalled, onEnabled, onDisabled, onUpdated). These fire for all extensions system-wide, not just modcore EM itself. The onUpdated handler performs differential permission analysis, comparing oldPermissions against current permissions to detect granular permission changes rather than treating all updates identically.
Data Structure
Each history record follows this schema:
{
timestamp: number, // Unix epoch milliseconds
eventType: string, // Enum: installed|uninstalled|updated|permissions_updated|enabled|disabled
extensionId: string, // Chrome extension ID
extensionName: string, // Human-readable name (may be "Unknown" for uninstalled)
extensionVersion: string,
details: string // Human-readable context, especially for permission changes
}
Performance Considerations
The frontend implements debounced search (200ms) to prevent filtering lag on large datasets. Virtual scrolling is not implemented; instead, pagination limits DOM node creation. The default 25 logs per page balances readability with render performance. For users with 10,000+ records, compact mode combined with increased logs-per-page (50-100) provides better UX than standard view.
Quota Management
Chrome's storage.local has undefined but finite limits (typically 5-10MB). Timeline's pruning mechanisms prevent quota exceeded errors. The record limit setting (default 1,000) assumes average record size of ~200 bytes, keeping storage well under 1MB even with verbose permission details.
Privacy Guarantees
No fetch(), XMLHttpRequest, or external messaging occurs in the Timeline module. Data exfiltration would require explicit user action (export to file) or compromise of the Chrome extension storage sandbox. The "Learn more" link in settings directs to documentation, not analytics endpoints.