diff options
Diffstat (limited to 'ext/bg/js/page-exit-prevention.js')
| -rw-r--r-- | ext/bg/js/page-exit-prevention.js | 59 | 
1 files changed, 0 insertions, 59 deletions
| diff --git a/ext/bg/js/page-exit-prevention.js b/ext/bg/js/page-exit-prevention.js deleted file mode 100644 index f55cf024..00000000 --- a/ext/bg/js/page-exit-prevention.js +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2019-2020  Yomichan Authors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program.  If not, see <https://www.gnu.org/licenses/>. - */ - - -class PageExitPrevention { -    constructor() { -    } - -    start() { -        PageExitPrevention._addInstance(this); -    } - -    end() { -        PageExitPrevention._removeInstance(this); -    } - -    static _addInstance(instance) { -        const size = PageExitPrevention._instances.size; -        PageExitPrevention._instances.set(instance, true); -        if (size === 0) { -            window.addEventListener('beforeunload', PageExitPrevention._onBeforeUnload); -        } -    } - -    static _removeInstance(instance) { -        if ( -            PageExitPrevention._instances.delete(instance) && -            PageExitPrevention._instances.size === 0 -        ) { -            window.removeEventListener('beforeunload', PageExitPrevention._onBeforeUnload); -        } -    } - -    static _onBeforeUnload(e) { -        if (PageExitPrevention._instances.size === 0) { -            return; -        } - -        e.preventDefault(); -        e.returnValue = ''; -        return ''; -    } -} - -PageExitPrevention._instances = new Map(); |