Chrome runtime
The background.js service worker coordinates messages, authentication, caches, and tool calls.
A technical guide grounded in the public repository: architecture, browser-session authentication, local storage, Salesforce UI integration, and the contribution workflow.
View repository on GitHub
The extension operates close to Salesforce while keeping working state in the browser.
The background.js service worker coordinates messages, authentication, caches, and tool calls.
Each org keeps its selected version; the project's current default API version is 63.0.
Preferences, aliases, comparisons, queries, and scripts live in chrome.storage.local.
The session cookie is read when needed and is not persisted in extension storage.
Monaco Editor, icons, and interface resources ship inside the extension.
The repository can be inspected, studied, and extended under the MIT license.
Local extension pages send actions to the service worker; it reuses the active session and calls official APIs with the user's permissions.
The same pattern supports a SOQL query, a metadata diff, or opening a log from Setup.
Responsibilities are separated across runtime, main UI, Salesforce integration, and shared resources.
Org authentication, message handlers, caches, and telemetry.
Main app: comparator, tools, and Monaco editor.
Org management, settings, and extension controls.
Optional content scripts and injectors for Lightning and Setup.
Shared APIs, internationalisation, and feature controls.
Unit tests with Vitest and end-to-end flows with Playwright.
sfInject/content/bundle.js is generated. Its host checks the URL, frame, settings, and org or session requirements before mounting each injector; it also observes Lightning re-renders and removes controls when they no longer apply.
The repository uses Node.js, npm, Vitest, and Playwright. Installation rebuilds the Salesforce UI Integration bundle.
npm install
npm test
npm run test:e2e
npm run build:sf-inject
npm run minify:extension
npm run pack:chrome
Content checked against the project's public README ↗.