Browse All Posts

This page lists only 100 posts at a time. Click the “Load more posts” button at the bottom of the page to load more.

My Next Opportunity

This is the farewell email I sent to my Edge teammates yesterday. IWebBrowser3::BeforeNavigate() When I left the Internet Explorer team in 2012 to work on Fiddler full-time, I did so with a measure of heartbreak, absolutely certain that I wouldContinue reading “My Next Opportunity”

Edge URL Schemes

The microsoft-edge: Application Protocol Microsoft Edge implements an Application Protocol with the scheme microsoft-edge: that is designed to launch Microsoft Edge and pass along a web-schemed URL and/or additional arguments. A basic invocation might be as simple as: microsoft-edge: However,Continue reading “Edge URL Schemes”

Captive Portals

When you join a public WiFi network, sometimes you’ll notice that you have to accept “Terms of Use” or provide a password or payment to use the network. Your browser opens or navigates to a page that shows the network’sContinue reading “Captive Portals”

Chromium Startup

This morning, a Microsoft Edge customer contacted support to ask how they could launch a URL in a browser window at a particular size. I responded that they could simply use the –window-size=”800,600″ command line argument. The customer quickly complainedContinue reading “Chromium Startup”

Losing your cookies

“My browser lost its cookies” has long been one of the most longstanding Support complaints in the history of browsers. Unfortunately, the reason that it has been such a longstanding issue is that it’s not the result of a singleContinue reading “Losing your cookies”

Thoughts on Impact

In this post, I talk a lot about Microsoft, but it’s not only applicable to Microsoft. It’s once again “Connect Season” at Microsoft, a biannual-ish period when Microsoft employees are tasked with filling out a document about their core priorities,Continue reading “Thoughts on Impact”

Unexpectedly HTTPS?

While I’m a firm believer that every site should be using HTTPS, sadly, not every site is yet doing so. Looking at Chrome data, today around 92% of navigations are HTTPS: …and the pages loaded account for around 95% ofContinue reading “Unexpectedly HTTPS?”

End of Q1 Check-in

tl;dr: On track. Back in January, I wrote about my New Years’ Resolutions. I’m now 90 days in, and things are continuing to go well. Health and Finance: A dry January. Exceeded. I stopped drinking alcohol on any sort of regular basis;Continue reading “End of Q1 Check-in”

Mid-February Checkin

tl;dr: On track. Back in January, I wrote about my New Years’ Resolutions. I’m now 45 days in, and things are going pretty well. Health and Finance: A dry January. Dry January has turned into dry February. Beyond idle thoughtsContinue reading “Mid-February Checkin”

MHTML in Chromium

The MHTML file format (aka “Webpage, single file”) allows a single file to contain the multiple resources that are used to load a webpage (script, css, images, etc). Edge (Chromium) has code to provide limited support for MHTML, though itContinue reading “MHTML in Chromium”

Trim Your Whitespace

Leading and trailing whitespace are generally invisible. Humans are bad at dealing with things they can’t see. If your system accepts textual codes, or any other human-generated or human-mediated input, you should trim whitespace, whether it’s leading, trailing, or inlineContinue reading “Trim Your Whitespace”

Debug Native Messaging

Prelude Last month, an Enterprise customer reached out to report that a 3rd-party browser extension they use wasn’t working properly. Investigation of the extension revealed that the browser extension relied upon a NativeMessaging Host (NMH) companion that runs outside ofContinue reading “Debug Native Messaging”


New Years’ Resolutions aren’t really my jam. Over the years, I usually idly ponder some vague notion (usually “get in better shape“) in late December, and mostly forget about it by the second week of January or so. This year,Continue reading “getaddrinfo(2022)”

Edge Command Line Arguments

Microsoft Edge offers broad variety of configuration options via Group Policy (for Enterprises), the edge://settings page, the edge://flags page (mostly experimental options), and finally via command-line arguments that are passed to the msedge.exe executable. This list of sources is roughlyContinue reading “Edge Command Line Arguments”

Cruising Solo

For Christmas 2020, I was home alone. The highlight of my day was discovering that Jack in the Box was open. I enjoyed my Christmas cheeseburger dinner at a picnic table in a park down the street. Unexpectedly, my ChristmasContinue reading “Cruising Solo”


Chromium offers two ways for an end-user to view the source code of a web page: 1) the Developer Tools, and 2) The longstanding view-source viewer. Of these, the Developer Tools have received almost all of the attention over theContinue reading “View-Source”

Practical Time Machines

Many “emergency” situations in our modern world would’ve been easy to fix had they been foreseen in advance. If only we’d known what was going to happen, the badness could’ve easily been prevented. Unfortunately, when problems are discovered only “asContinue reading “Practical Time Machines”

Inspecting Certificates in Edge

Curious about how to see a website’s HTTPS certificate in Microsoft Edge? You’ve got two options: A companion post to 2017’s post Inspecting Certificates in Chrome.

Leaky Abstractions

In the late 1990s, the Windows Shell and Internet Explorer teams introduced a bunch of brilliant and intricate designs that allowed extension of the shell and the browser to handle scenarios beyond what those built by Microsoft itself. For instance,Continue reading “Leaky Abstractions”

Browser Memory Limits

Last Update: September 8, 2022 Web browsers are notorious for being memory hogs, but this can be a bit misleading– in most cases, the memory used by the loaded pages accounts for the majority of memory consumption. Unfortunately, some pagesContinue reading “Browser Memory Limits”

Font Smoothing in Edge

Update, June 2021: See the Microsoft Edge blog post. Text rendering quality is an amazingly complicated topic, with hardware, settings, fonts, differing rendering engine philosophies, and user preferences all playing key roles. In some cases, however, almost everyone can agreeContinue reading “Font Smoothing in Edge”

Seamless Single Sign-On

There are many different authentication primitives built into browsers. The most common include Web Forms authentication, HTTP authentication, client certificate authentication, and the new WebAuthN standard. Numerous different authentication frameworks build atop these, and many enterprise websites support more thanContinue reading “Seamless Single Sign-On”

Revealing Passwords

The Microsoft Edge browser, Edge Legacy, and Internet Explorer all offer a convenient mechanism for users to unmask their typing as they edit a password field: Clicking the little eye icon disables the masking dots so that users can seeContinue reading “Revealing Passwords”


Someone complained that a Japanese page is garbled in Edge/Chrome, but renders with the correct characters in Firefox and IE: The problem is that Chromium is using an unexpected character set to interpret the response in the HTML Parser. ThatContinue reading “META CHARSET”

WebOCs and HTTP/2

If you’ve built an application using the old Web Browser Control (mshtml, aka Internet Explorer), you might notice that by default it does not support HTTP/2. For instance, a trivial WebOC host loading Akamai’s HTTP2 test page: When your programContinue reading “WebOCs and HTTP/2”

Restrictions on File Urls

For security reasons, Microsoft Edge 76+ and Chrome impose a number of restrictions on file:// URLs, including forbidding navigation to file:// URLs from non-file:// URLs. If a browser user clicks on a file:// link on an https-delivered webpage, nothing visibly happens. If youContinue reading “Restrictions on File Urls”


Something went wrong. Please refresh the page and/or try again.

%d bloggers like this: