showModalDialog
~ the obituary ~
Internet Explorer 4 arrived in 1997 with a function that no standards body had asked for. You called window.showModalDialog with a URL and a browser window opened on top of everything. Your script stopped running on that line until the dialog closed, and whatever the dialog set as its return value came back as the result of the call, on the next line, like a function in a desktop language.
Every other engine ended up implementing it, because by then the office intranet had been written against it. Outlook Web App used it, and so did the Exchange admin screens. Chunks of SAP and of Microsoft Dynamics CRM took it as given that a line of JavaScript could halt the browser and resume holding an answer. That is a very comfortable thing to write and a very unpleasant thing to implement, because underneath it the browser has to spin a nested event loop and pretend the rest of the tab does not exist.
What replaced it is correct and worse to write. You open a window and listen for a message coming back from it, and your own code has to be split into a before and an after with nothing holding the middle. The modern HTML dialog element covers the visual part and none of the blocking part, which is why somebody eventually published a polyfill that reimplements the old function on top of it, for people maintaining code they are not allowed to rewrite.
~ a string with a date inside it ~
Chrome 37 went to stable on 26 August 2014 with the function gone. Google's measurements had it on roughly six thousandths of a percent of page views, which sounds like nothing until you remember that internal corporate applications are invisible to a browser vendor's telemetry and were most of the remaining users. The complaints started the next day on the chromium-dev list, from administrators whose payroll system had stopped loading.
The escape hatch Google offered is the detail I want on the record. A group policy existed called EnableDeprecatedWebPlatformFeatures, and the value you were told to write into the Windows registry to turn the dialog back on was the literal string ShowModalDialog_EffectiveUntil20150430. The expiry date was inside the name of the setting. An administrator switching the feature back on in September 2014 had to type out the date it would stop working, and it did stop working: Chrome 43, on 19 May 2015, no longer honored the policy at all.
~ the case file ~
| Born | 1997, Internet Explorer 4, a Microsoft extension nobody standardized |
|---|---|
| Peak | Outlook Web App and Dynamics CRM screens that would not work without it |
| Killed | 26 August 2014, removed in Chrome 37 |
| Lifespan | 17 years in Internet Explorer, 20 before the last browser dropped it |
| Made by | Microsoft |
| Killed by | a blocking call in a world that had gone asynchronous |
~ mozilla takes the same decision slowly ~
Bug 981796 on the Mozilla tracker is titled "Remove window.showModalDialog" and was filed by Eric Seidel, who worked on the other browser. The reasoning in the thread is plain enough to quote: they were getting rid of it because it results in bad UI for users since the rest of the process is locked up, and because it had turned into a pile of complexity nobody wanted to carry, which was the likely reason it never worked on Android at all. Mozilla also moved far more carefully than Chrome did, committing to keep the function alive through at least Firefox 39 and then switching it off behind a preference so anybody who still needed it could flip it back on. The bug was resolved fixed against Firefox 56, which shipped on 28 September 2017, three years and a month after Chrome had dropped it.
~ the last one holding it ~
Internet Explorer 11 carried the function to the end of its own life, which is appropriate for something Microsoft invented and nobody else wanted. The desktop application was retired on 15 June 2022, twenty five years after version 4 introduced the call, and some number of intranet screens went out with it.
Anyone doing web work in Turkey met that timeline from the other side. Bank portals and state systems here kept demanding Internet Explorer years into the Chrome era, and the reason was always one component that ran exactly one way. For years I kept a copy of IE on the machine for exactly one site at a time, and this call is part of the family of reasons why that was necessary.
~ leave a rose ~
an anonymous tribute. one rose per visitor per day.
@}-->-- ... roses left here
~ leave a wreath ~
a rose fades by morning. a wreath stays on this grave for good, with your name on it.
from $1, paid once through stripe. it keeps the graveyard running: the hosting and the nightly digging. adopt it and the headstone reads "maintained in memory by" you. the groundskeeper plants new wreaths at the next tending, usually within a day.
» one email a week: new graves and the anniversaries of the dead. subscribe
other protocols: P3P, AppCache, WHOIS (port 43), CIA.vc
also died in 2010-2014: NowPublic, Yahoo! SearchMonkey, Hot Potato
~ leave a note ~
visitors before you have left these graveside notes. anonymous welcome.