Browser API Migration Status for Edge Extension
✅ Migration Complete!
All Edge extension files have been successfully migrated:
APIs Wrapped (10 total)
- storage, tabs, runtime, contextMenus, alarms, action, commands, identity, notifications, scripting
Files Updated (25+)
- All lib/ files (storage, sync, config, ads, api)
- All popup/modules/ files (storage, theming, user-engagement, settings, editor, notes, onboarding-tooltips)
- Main files (popup.js, background.js, content.js)
- HTML files (onboarding.html)
Browser-Specific Updates
- ✅ All chrome.* API calls → browserAPI.*
- ✅ All chrome:// URLs → edge:// URLs (Edge-specific)
- ✅ Keyboard shortcuts link → edge://extensions/shortcuts
- ✅ Error messages updated for Edge
Ready for Testing
Load extension-edge/
in Edge at edge://extensions/
(enable Developer mode)
Remaining Files to Update
The Edge extension uses the same chrome.*
namespace as Chrome, but the browserAPI wrapper provides:
- Promise-based API for consistency with Firefox
- Future-proofing for any Edge-specific differences
- Unified codebase across all three browsers
All files have been successfully migrated to use browserAPI.*
instead of chrome.*
.
Migration Pattern
All Chrome API calls should be replaced following this pattern:
Storage API
// Before
await chrome.storage.local.get(['key'])
await chrome.storage.local.set({ key: value })
await chrome.storage.local.remove(['key'])
// After
await browserAPI.storage.local.get(['key'])
await browserAPI.storage.local.set({ key: value })
await browserAPI.storage.local.remove(['key'])
Tabs API
// Before
chrome.tabs.create({ url })
chrome.tabs.query(queryInfo)
// After
await browserAPI.tabs.create({ url })
await browserAPI.tabs.query(queryInfo)
Runtime API
// Before
chrome.runtime.sendMessage(message)
chrome.runtime.getURL(path)
// After
await browserAPI.runtime.sendMessage(message)
browserAPI.runtime.getURL(path)
Edge-Specific Notes
- Edge uses Manifest V3 like Chrome (no need to convert to MV2)
- Edge uses
chrome.*
namespace, not browser.*
- The browserAPI wrapper is primarily for:
- Promise-based consistency
- Future Edge-specific compatibility handling
- Unified codebase with Firefox version
- Edge has excellent Chrome extension compatibility
Testing Checklist
After completing the migration, test the following:
Implementation Priority
Since Edge is very similar to Chrome, the migration can follow the same pattern as Firefox but with less urgency. The main benefits are:
- Promise-based API for cleaner async/await code
- Unified codebase across all three browsers
- Future-proofing for any Edge-specific changes