One of the best things that ever happened to t he user experience of the web has been web extensions. Browsers are powerful but extensions bring a new level of functionality. Whether it’s crypto wallets, media players, or other popular plugins, web extensions have become essential to every day tasks.
Working on MetaMask, I am thrust into a world of making everything Ethereum-centric work. One of those functionalities is ensuring that .eth
domains resolve to ENS when input to the address bar. Requests to https://vitalik.eth
naturally fail, since .eth
isn’t a natively supported top level domain, so we need to intercept this errant request.
// Add an onErrorOccurred event via the browser.webRequest extension API browser.webRequest.onErrorOccurred.addListener((details) => { const { tabId, url } = details; const { hostname } = new URL(url); if(hostname.endsWith('.eth')) { // Redirect to wherever I want the user to go browser.tabs.update(tabId, { url: `https://app.ens.domains/${hostname}}` }); } }, { urls:[`*://*.eth/*`], types: ['main_frame'], });
Web extensions provide a browser.webRequest.onErrorOccurred
method that developers can plug into to listen for errant requests. This API does not catch 4**
and 5**
response errors. In the case above, we look for .eth
hostnames and redirect to ENS.
You could employ onErrorOccurred
for any number of reasons, but detecting custom hostnames is a great one!
Introducing MooTools Templated
One major problem with creating UI components with the MooTools JavaScript framework is that there isn’t a great way of allowing customization of template and ease of node creation. As of today, there are two ways of creating: new Element Madness The first way to create UI-driven…
Being a Dev Dad
I get asked loads of questions every day but I’m always surprised that they’re rarely questions about code or even tech — many of the questions I get are more about non-dev stuff like what my office is like, what software I use, and oftentimes…
Send Email Notifications for Broken Images Using MooTools AJAX
One of the little known JavaScript events is the image onError event. This event is triggered when an image 404’s out because it doesn’t exist. Broken images can make your website look unprofessional and it’s important to fix broken images as soon as possible.
AJAX For Evil: Spyjax with jQuery
Last year I wrote a popular post titled AJAX For Evil: Spyjax when I described a technique called “Spyjax”: Spyjax, as I know it, is taking information from the user’s computer for your own use — specifically their browsing habits. By using CSS and JavaScript, I…