chrome-extension
firefox-web-extension

chrome extensionとfirefox addonで同じコードを動かす

TL;DR

web extensionsとchrome extesionsでちがうところ(記載済み)

browserとchrome

mozilla/webextension-polyfill 使ってbrowserにあわせれば良さそう。

promiseとcallback

mozilla/webextension-polyfill 使ってpromiseにあわせれば良さそう。

違うところ(mdn個別には書いてある)

page_actionのdefault_iconにchromeはsvg未サポート

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/page_action

っていうかchrome extensionがsvg iconサポートしてなくね??

Icons should generally be in PNG format, because PNG has the best support for transparency. They can, however, be in any format supported by WebKit, including BMP, GIF, ICO, and JPEG.
https://developer.chrome.com/extensions/manifest/icons

29683 - Extension icons should support SVG - chromium - Monorail こんなのあるし。ひぇぇ。