ShowModalDialog

https://github.com/shanewignall/replace-showModalDialog/blob/master/replace-showModalDialog.user.js

// ==UserScript==
// @name ShowModalDialog
// @namespace undefined
// @version 0.0.1
// @description https://github.com/shanewignall/replace-showModalDialog/blob/master/replace-showModalDialog.user.js
// @include *
// @grant unsafeWindow
// @license Apache 2.0
// ==/UserScript==
(function(window) {
    window.spawn = window.spawn || function(gen) {
        function continuer(verb, arg) {
            var result;
            try {
                result = generator[verb](arg);
            } catch (err) {
                return Promise.reject(err);
            }
            if (result.done) {
                return result.value;
            } else {
                return Promise.resolve(result.value).then(onFulfilled, onRejected);
            }
        }
        var generator = gen();
        var onFulfilled = continuer.bind(continuer, 'next');
        var onRejected = continuer.bind(continuer, 'throw');
        return onFulfilled();
    };
    window.showModalDialog = window.open; 
})(unsafeWindow);