lonely_8
非常火狐
非常火狐
  • UID30273
  • 注册日期2009-09-03
  • 最后登录2022-08-09
  • 发帖数733
  • 经验469枚
  • 威望0点
  • 贡献值86点
  • 好评度147点
  • 社区居民
  • 忠实会员
阅读:3567回复:9

Nightly 63(2018-06-26)移除了 browser.showQuitWarning 首选项 (SEO: Firefox/火狐 保存并退出)

楼主#
更多 发布于:2018-06-27 15:23
browser.showQuitWarning 首选项默认关闭,
记得以前还有对应“设置”界面的,如果打开,
退出 Firefox 时如果有打开多个标签,则会有 “保存并退出” 的选项按钮。
对于偶尔需要临时保存上次访问标签的用户很有用,
实在不明白为什么要把这么实用的功能去掉。
Bug 1438499 - Closing Firefox through menu or shortcut, does not suface the closing confirmation



browser.startup.page 值为 3(对应上图勾选 “Do not ask next time” 后的效果,即不弹窗询问直接保存并退出) 的逻辑倒是没去掉。

对于很依赖这个功能的同学可以使用以下 UC 脚本恢复。
// ==UserScript==
// @name 恢复 “保存并退出” 弹窗按钮
// @version   1.0
// @include    main
// ==/UserScript==
                                  
location == 'chrome://browser/content/browser.xul' && setTimeout(() => {
    eval('gBrowser.warnAboutClosingTabs = ' + gBrowser.warnAboutClosingTabs.toString()
        .replace('warnAboutClosingTabs(', 'function warnAboutClosingTabs(')
        .replace('BUTTON_POS_0) +', '$& (ps.BUTTON_TITLE_IS_STRING * ps.BUTTON_POS_2) +')
        .replace('gTabBrowserBundle.GetStringFromName("tabs.closeButtonMultiple")',
            '$&.includes("Close") ? "&Save and Quit" : "保存并退出 (&S)", null, $&')
        .replace('null, null,', '')
        .replace('var reallyClose = (buttonPressed == 0);', 
            'var reallyClose = (buttonPressed != 1);' + 
            'if(buttonPressed == 0) {' +
            '   Services.prefs.setBoolPref("browser.sessionstore.resume_session_once", true)' +
            '}'
        )
    );
}, 2000);



另外,在侧边栏加载书签的功能也在同一天去掉了。
Bug 1452645 - Remove "Open in Sidebar" feature





Nightly65.0a1(2018-12-02) 更新
由于 Bug 1506173 - Quit message confusing - implies all tabs will be lost when exiting browser
上面的UC脚本失效了,新的UC脚本如下
// ==UserScript==
// @name 恢复 “保存并退出” 弹窗按钮
// @version   2.2
// @include    chrome://global/content/commonDialog.xul
// @include    chrome://global/content/commonDialog.xhtml
// ==/UserScript==
     
location.href.startsWith('chrome://global/content/commonDialog.x') && (() => {
  const checkbox = document.getElementById('checkbox');
  if(!checkbox) return;
  const { Services } = ChromeUtils.import('resource://gre/modules/Services.jsm');
  try{
    const gTabBundle = Services.strings.createBundle('chrome://browser/locale/tabbrowser.properties');
    const {AppConstants} = ChromeUtils.import('resource://gre/modules/AppConstants.jsm');
    const title = gTabBundle.GetStringFromName(`tabs.closeAndQuitTitleTabs${AppConstants.platform == 'win' ? 'Win' : ''}`);
    const closeWarningPromptMe = gTabBundle.GetStringFromName('tabs.closeWarningPromptMe');
    if(document.title !== title || closeWarningPromptMe !== checkbox.label)
      return;
  }catch(ex){
    return;
  }
  const accept = (document.documentElement.getButton ?
    document.documentElement :
    document.getElementById('commonDialog')
  ).getButton('accept');
  const button = document.createXULElement('button');
  button.className = 'dialog-button';
  button.setAttribute('label', checkbox.label.includes('Warn') ? 'Save and Quit' : '保存并退出');
  button.setAttribute('accesskey', 'S');
  button.addEventListener('command', () => {
    Services.prefs.setBoolPref('browser.sessionstore.resume_session_once', true);
    accept.doCommand();
  });
  accept.before(button);
})();


Nightly88.0a1(2021-03-09) 更新
由于 Bug 1693048 - Update close tabs (and quit/exit) warning dialog content for proton
上面的UC脚本失效了,新的UC脚本如下
// ==UserScript==
// @name 恢复 “保存并退出” 弹窗按钮
// @version   2.3
// @include    chrome://global/content/commonDialog.xhtml
// ==/UserScript==
   
location.href.startsWith('chrome://global/content/commonDialog.x') && (() => {
  const checkbox = document.getElementById('checkbox');
  if(!checkbox) return;
  const {Services} = ChromeUtils.import('resource://gre/modules/Services.jsm');
  try{
    const gTabBundle = Services.strings.createBundle('chrome://browser/locale/tabbrowser.properties');
    const {AppConstants} = ChromeUtils.import('resource://gre/modules/AppConstants.jsm');
    const title = gTabBundle.GetStringFromName(`tabs.closeTabsAndQuitTitle${AppConstants.platform == 'win' ? 'Win' : ''}`);
    const closeWarningPromptMe = gTabBundle.GetStringFromName('tabs.closeWarningPrompt');
    if(document.title !== title || closeWarningPromptMe !== checkbox.label)
      return;
  }catch(ex){
    console.log(ex);
    return;
  }
  const accept = document.getElementById('commonDialog').getButton('accept');
  const button = document.createXULElement('button');
  button.className = 'dialog-button';
  button.setAttribute('label', checkbox.label.includes('Warn') ? 'Save and Quit' : '保存并退出');
  button.setAttribute('accesskey', 'S');
  button.addEventListener('command', () => {
    Services.prefs.setBoolPref('browser.sessionstore.resume_session_once', true);
    accept.doCommand();
  });
  accept.before(button);
  button.focus();
})();


Nightly94.0a1(2021-09-09) 更新
由于 Bug 1726736 - Implement different wording and a different pref to warn users when using a keyboard shortcut to quit
上面的UC脚本失效了,新的UC脚本如下
// ==UserScript==
// @name 恢复 “保存并退出” 弹窗按钮
// @version   2.4
// @include    chrome://global/content/commonDialog.xhtml
// ==/UserScript==
   
location.href.startsWith('chrome://global/content/commonDialog.x') && (() => {
  const checkbox = document.getElementById('checkbox');
  if(!checkbox) return;
  const {Services} = ChromeUtils.import('resource://gre/modules/Services.jsm');
  try{
    const gTabBundle = Services.strings.createBundle('chrome://browser/locale/tabbrowser.properties');
    const {AppConstants} = ChromeUtils.import('resource://gre/modules/AppConstants.jsm');
    const win = Services.wm.getMostRecentBrowserWindow();
    const rTitle = new RegExp(`${
      gTabBundle.GetStringFromName('tabs.closeWindowsTitle')
    }|${
      gTabBundle.GetStringFromName('tabs.closeTabsTitle')
    }`.replace(/;/g, '').replace(/#1/g, '\\d+'));
    const closeTabsConfirmCheckbox = gTabBundle.GetStringFromName('tabs.closeTabsConfirmCheckbox');
    const closeTabsWithKeyConfirmCheckbox = gTabBundle.formatStringFromName(
      'tabs.closeTabsWithKeyConfirmCheckbox', [ win.ShortcutUtils.prettifyShortcut(
        win.document.getElementById('key_quitApplication')
      )]
    );
    if(!rTitle.test(document.title) || (
      closeTabsConfirmCheckbox !== checkbox.label && closeTabsWithKeyConfirmCheckbox !== checkbox.label)
    ) return;
  }catch(ex){
    console.log(ex);
    return;
  }
  const accept = document.getElementById('commonDialog').getButton('accept');
  const button = document.createXULElement('button');
  button.className = 'dialog-button';
  button.setAttribute('label', checkbox.label.includes('Confirm') ? 'Save and Quit' : '保存并退出');
  button.setAttribute('accesskey', 'S');
  button.addEventListener('command', () => {
    Services.prefs.setBoolPref('browser.sessionstore.resume_session_once', true);
    accept.doCommand();
  });
  accept.before(button);
  button.focus();
})();


并且修改 chrome 目录下的引导脚本 “userChrome.js”  ,如果 “userChrome.js” 中包含
if(location.href =='chrome://global/content/commonDialog.xul') return;
或者
if(location.href =='chrome://global/content/commonDialog.xhtml') return;
这一行的,请将其删除或者注释掉,否则脚本将无法生效。
退出 FF 后,删除配置目录下 “startupCache” 文件夹,重启 FF。

如果 “userChrome.js” 中不包含该行代码,可忽略。




SEO: Firefox 火狐 保存并关闭 保存并退出

最新喜欢:

fang5566fang55...
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-10-28
  • 发帖数18486
  • 经验4840枚
  • 威望5点
  • 贡献值4316点
  • 好评度1117点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
1楼#
发布于:2018-06-27 15:44
确实这么实用的选项居然也去掉。侧边栏加载书签的之前也听说会去掉。
Firefox More than meets your experience
EMLVIRUS
火狐狸
火狐狸
  • UID53909
  • 注册日期2016-04-26
  • 最后登录2023-01-31
  • 发帖数164
  • 经验184枚
  • 威望0点
  • 贡献值84点
  • 好评度17点
  • 社区居民
  • 忠实会员
2楼#
发布于:2018-06-27 16:59
你们是不是误会了什么。。。。。你们再仔细看看那句话?
lonely_8
非常火狐
非常火狐
  • UID30273
  • 注册日期2009-09-03
  • 最后登录2022-08-09
  • 发帖数733
  • 经验469枚
  • 威望0点
  • 贡献值86点
  • 好评度147点
  • 社区居民
  • 忠实会员
3楼#
发布于:2018-06-27 19:34
EMLVIRUS:你们是不是误会了什么。。。。。你们再仔细看看那句话?回到原帖
没有,的确是通过这个 bug 的补丁移除了 browser.showQuitWarning。
Cye3s
千年狐狸
千年狐狸
  • UID155
  • 注册日期2004-11-25
  • 最后登录2024-09-19
  • 发帖数1322
  • 经验95枚
  • 威望0点
  • 贡献值34点
  • 好评度14点
  • 社区居民
  • 忠实会员
4楼#
发布于:2018-10-16 16:29
今天更新63 rc版,才发现这窗口没了
我也不是每次都要保存会话啊

看来是不打算改回去了


https://bugzilla.mozilla.org/show_bug.cgi?id=1487547

说要么你从菜单恢复上次浏览状态,要么启动时自动恢复上次浏览状态
我很懒...
skmi7
狐狸大王
狐狸大王
  • UID26753
  • 注册日期2008-10-22
  • 最后登录2022-04-19
  • 发帖数339
  • 经验56枚
  • 威望0点
  • 贡献值14点
  • 好评度5点
  • 社区居民
  • 忠实会员
5楼#
发布于:2018-10-26 00:23
希望以后能补回来把?
非常实用的功能
dsznyrvzn
火狐狸
火狐狸
  • UID40433
  • 注册日期2013-11-01
  • 最后登录2024-09-09
  • 发帖数122
  • 经验163枚
  • 威望0点
  • 贡献值118点
  • 好评度6点
  • 社区居民
  • 忠实会员
6楼#
发布于:2018-10-26 07:23
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2024-08-29
  • 发帖数9187
  • 经验398枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
7楼#
发布于:2018-10-26 09:12
能用代码改回来的功能,算是“真的”去掉了么?
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2024-08-29
  • 发帖数9187
  • 经验398枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
8楼#
发布于:2018-10-26 09:13
好像我默认都是恢复标签的,这年头不固顶几个标签页都不像是在云办公啊
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
innki
小狐狸
小狐狸
  • UID42917
  • 注册日期2013-12-15
  • 最后登录2021-02-04
  • 发帖数54
  • 经验77枚
  • 威望0点
  • 贡献值36点
  • 好评度5点
  • 社区居民
  • 忠实会员
9楼#
发布于:2018-10-29 10:38
fang5566:确实这么实用的选项居然也去掉。侧边栏加载书签的之前也听说会去掉。回到原帖
63已经去掉了,现在编辑书签已经没有侧边栏加载的可选功能了。
今天想在侧边栏打开微博的时候发现的。
火狐爱好者。
游客

返回顶部