Sam
@samuelmaddock.com
Software Engineer @ Slack・Maintainer of Electron・NYC samuelmaddock.com
Pinned
Progress on chrome extension manifest v3 support in Electron. Dark Reader is fully working now.
next atproto meetup needs to happen here in Kobe 🦋👀
Using atproto to alias user IDs because I _really_ don't want to manage user registrations handle → did → PDS → com.getmetastream.actor.profile → id Shortened, samuelmaddock.com → <long-user-id> without modifying DNS or storing the mapping on my own servers pdsls.dev/at://did:plc...
Old tweet of mine is basically describing atproto. Thanks Also, "x.com" is revisionist history, I did not write that.
exporting only America's finest culture to Japan
Sometimes I need to reverse engineer websites for My starting point is logging Object.keys(globalThis). Since JS objects retain the order that keys are set, the end of this list are the global variables set by the website. Helps with finding any initialized video players.
Found some lesser known links for folks deploying desktop apps on stores. Useful as "check for updates" actions.  Open the Mac App Store and check for updates macappstore://showUpdatesPage?scan=true 🪟 Open the Microsoft Store and go to updates page ms-windows-store://downloadsandupdates
committing web browser crimes using declarativeNetRequest
This was actually illegal in chrome extensions some years ago, not sure when that changed.
Watched Hideaki Anno's Love & Pop last night.
So often learn about these limited runs too late so I was glad I could go watch it.
made it simple to add native messaging support for extensions. Now  iCloud Passwords can talk to my browser
An error occurred while loading the video. Please try again.
running as an overlay on Steam Deck 😍
I'm completely new to vulkan layers and came across your vkroots project. If I installed a layer on SteamOS, would it be able to overlay games? Or do I have a deep misunderstanding here?
Rolling out Chrome's IWAs (Isolated Web Apps) for Windows/Mac/Linux "isn't in the short-to-medium term plans". A bit disappointing that this feature won't be available widely for a long time. I'm guessing this is to reduce the risk of malicious apps? groups.google.com/a/chromium.o...
Chromium devs are so quick to review small code changes, even from external contributors. I need to know how they managed that.
chrome extension in using electron-chrome-extensions. To make this work, a new v8 scripting context is added to service workers in Electron to allow preload scripts to provide extension APIs.
Many hours were required to find this one line fix. I'm glad I don't need to write multi-threaded code often in my day-to-day...
Do delegates feel natural in JavaScript? class Installer { constructor(delegate) { this.delegate = delegate } install() { if (this.delegate) { const event = new Event() this.delegate?.beforeInstall(event) if (event.defaultPrevented) return } } }
or should this always be handled by EventEmitter instead? class Installer extends EventEmitter { install() { const event = new Event() this.emit('before-install', event) if (event.defaultPrevented) return } }
had to complete a minigame to finish upgrading chromium in electron today
me: how hard could it be to add symlink support for unzipping files? the source code:
looking into what's going on in an abandoned side project to find out all of my analytics are broken 🥲
more people who like Japanese food need to know about sukiyaki
"A new edition of Raising the Bar is coming back into print in 2025, expanded to include the Half-Life 2 Episodes"
downloading a chrome extension from the chrome web store in an electron browser ✨
Web store chrome extensions are .crx archives which are zips with extra metadata. That metadata contains a protobuf-encoded public key which is then hashed and set in the extension's manifest.json. This is what's used to generate a stable extension ID and what's missing from many other downloaders.
I was a little surprised that the implementation of chrome.scripting.executeJavaScript was simple string concatenation.
updated my website to point to bluesky and added a favicon
the stars on the bluesky launch screen look like dust during daytime
optimistic about bluesky since it's made by some of the beaker browser folks
End of feed