четверг, 4 августа 2011 г.

Ошибка: preview is undefined

Мне ужасно не нравится ситуация, когда Лиса выгружается из памяти при закрытии последнего таба. Поэтому... about:config и browser.tabs.closeWindowWithLastTab=false.
Но в этом случае (а может и не в этом :-)) мы получаем в "Консоли ошибок" безобразное количество строк вида:
Ошибка: preview is undefined Источник: resource://gre/modules/WindowsPreviewPerTab.jsm Строка: 380
Bug 563337 клятвенно заверяет, что мол в Шестерке ЭТО пофиксили. Но это ж надо шестерку дождаться, посему - сами, сами, сами... :-)

В каталоге, где уютно расположился FireFox, находим omni.jar в нем хватаем файл \chrome\browser\content\browser\tabbrowser.xml и меняем строку "this.tabContainer.updateVisibility();" (перед "// We're committed to closing the tab now.") на блок (согласно официального патча):
if (newTab)
this.addTab("about:blank");
else
this.tabContainer.updateVisibility();

и комментим строки:
            //if (aNewTab)
// this.addTab("about:blank", {skipAnimation: true});


Ну и немного поманьячим (хотя, может и лишнее): в файле modules\WindowsPreviewPerTab.jsm, лезем на 380 строку и обрамляем участок кода от "let preview=..." до "preview.invalidate();" if`ом, например так:
if (this.preview) {
let preview = this.preview;
if (preview && preview.visible)
preview.invalidate();
}

Сохраняем файл и обратно засовываем его в omni.jar.

(На правах рекламы: проще подобное сделать с помощью Far Manager и установленного плагина arclite)

Комментариев нет:

Отправить комментарий