Но идея тоже достойная - на старте сбрасывать, до проверки фоксом.
В моей редакции так и сделано. Там другая проблема: если слишком рано пытаться патчить, то до профильных установок нормальными методами достучаться нельзя, т.к. браузер ещё не "прикрутил" профиль пользователя (поэтому и была затычка с определением папки Cache).
Отредактировано Mash (31-05-2005 19:52:46)
Отсутствует
Можно запоминать профиль после первого запуска, и потом уже знаешь, где он лежит. А если в первый раз сразу упадет - не важно, все равно кэш пустой был. А если юзер перенесет кэш? и сразу после этого крэш, когда расширение еще не знает, где он находится? Это в случае, если сбрасывать флаг до проверки его фоксом, может быть такая вот бяка.
Из практики:
- А скажите, Linux - это хороший Windows ?
Отсутствует
сам себе отвечаю - тогда можно глянуть на предыдущей странице, если там другой путь к кэшу прописан, то сразу его и запомнить. Если же ничего не прописано - значит кэш лежит в дефолтном каталоге. В самый первый раз ничего не делать, после запуска считать адрес кэша, а в последующие запуски сразу перед стартом проверять, есть ли в конфиге запись о другом расположении кэша, если нет - бегом патчить мап по старому пути. Только не забыть - если там нет кэша, чтоб не ругался, вдруг юзер его сам снес, чтоб новый пустой создался?
Из практики:
- А скажите, Linux - это хороший Windows ?
Отсутствует
Папка кэша ищется таким образом:
1) browser.cache.disk.parent_directory;
2) в локальном профиле (FF1.1);
3) в профиле (FF1.0).
На каком шаге найдено -- то значение и примет (например, если в конфиге есть browser.cache.disk.parent_directory, то профили не рассматриваются и т.д.)
Делать своё чёрное дело расширение должно лишь однажды, реагируя на смену профиля (т.е. почти на старте).
Если захочется посмотреть "живьём, с комментариями", то about:config, browser.cache.disk.cache_fixer_debug, переключаем в true.
Брать там же.
Смотрелось на: 1.0.4 и 1.1 (20050531), win.
Отсутствует
Первый баг-репорт:
[fixer]: Cache dir: C:\Documents and Settings\alcuser\Application Data\Mozilla\Firefox\Profiles\tzbhd1lv.Пользователь по умолчанию
Ошибка: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIChannel.open]" nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)" location: "JS frame :: file:///C:/Documents%20and%20Settings/alcuser/Application%20Data/Mozilla/Firefox/Profiles/tzbhd1lv.%CF%EE%EB%FC%E7%EE%E2%E0%F2%E5%EB%FC%20%EF%EE%20%F3%EC%EE%EB%F7%E0%ED%E8%FE/extensions/%7Bafcc0bd2-0b43-4a08-9981-afd8f3520e64%7D/components/cacheFixer.js :: anonymous :: line 76" data: no]
Источник: file:///C:/Documents%20and%20Settings/alcuser/Application%20Data/Mozilla/Firefox/Profiles/tzbhd1lv.%CF%EE%EB%FC%E7%EE%E2%E0%F2%E5%EB%FC%20%EF%EE%20%F3%EC%EE%EB%F7%E0%ED%E8%FE/extensions/%7Bafcc0bd2-0b43-4a08-9981-afd8f3520e64%7D/components/cacheFixer.js
Строка: 76
Явная ошибка открытия файла.
Смею предположить что
var fileInChannel = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService) .newChannel("file://" + cacheMapFile.path, "", null); var binaryIS = Components.classes["@mozilla.org/binaryinputstream;1"] .createInstance(Components.interfaces.nsIBinaryInputStream); binaryIS.setInputStream(fileInChannel.open());
стоит заменить на более корректное:
var ios = Components.classes["@mozilla.org/network/io-service;1"]. getService(Components.interfaces.nsIIOService); var fileHandler = ios.getProtocolHandler("file"). QueryInterface(Components.interfaces.nsIFileProtocolHandler); var URL = fileHandler.getURLSpecFromFile(cacheMapFile); var uri = ios.newURI(URL,"utf8",null); var channel = ios.newChannelFromURI(uri); var binaryIS = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance(Components.interfaces.nsIBinaryInputStream); binaryIS.setInputStream(channel.open());
у меня так ( не пинайте)
Баг в 1.0.4 на Windows.
Бди!
Отсутствует
Под Линухом тоже работает.
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050517 Firefox/1.0.4 (Debian package 1.0.4-2)
Поставлю жене, да здравствует модем!
Отсутствует
Не должно порушить. Если есть сомнения - можно делать бэкап профиля периодически.
может стоит его закинуть на extensionsmirror?
однозначно
.... а патчи там берут?
Из практики:
- А скажите, Linux - это хороший Windows ?
Отсутствует
Народ, я нашел баг еще один. На сайте
http://avril.ru/board/index.php
Заголовок вверху кэшируется, но если некорректно завершить Firefox, он из кэша пропадает. В чем может быть дело? Хотя расширение CacheFixer стоит.
Отсутствует
Заголовок вверху кэшируется, но если некорректно завершить Firefox, он из кэша пропадает.
Почитай - я на первой странице топика все подробно растолковал. При некорректном завершении вся накопленная ЗА ЭТОТ СЕАНС информация теряется, предыдущая - остается. То есть выйди нормально, закрой фокс, потом запусти и крэшани. Тогда предыдущая и все более ранние сессии останутся, в том числе и заголовок.
Из практики:
- А скажите, Linux - это хороший Windows ?
Отсутствует
Вот попробовал - походил по сайтам, кэш 50 мегов, заполнен на треть, потом крэшанул, снова походил. Заметил - на всех сайтах, на которых я часто бываю, вся графика осталась на месте, за исключением пары смайликов, которые до крэша еще были Всего-то ! Подгрузил через контрол+правый клик, и все пучком Для проверки пользуюсь imglikeopera - там выставил подгрузку картинок ТОЛЬКО из кэша, и время жизни графики в кэше принудительно 3 месяца. Очень хорошо видно, если какая картинка не загрузилась, значит - ее нет в кэше.
Из практики:
- А скажите, Linux - это хороший Windows ?
Отсутствует
Mash
Закинул расширение и патч на этот форум, в расширения файрфокса
http://forum.mozilla.ru/viewtopic.php?pid=24722#p24722
Ты был не против
Из практики:
- А скажите, Linux - это хороший Windows ?
Отсутствует
Поставил себе альфу 1,1 - при установке намудрил с расширениями и темами, но cachefixer установил первым. В итоге фокс завис - пришлось процесс прибить. Кэш в целости и сохранности, на 1,1 все работает, лично убедился.
Из практики:
- А скажите, Linux - это хороший Windows ?
Отсутствует
но все-таки это недочет....
Извини, ThreeQ, но эту проблему уже года три или больше не могут (или не хотят) решить сами разработчики, поэтому это к ним. Они не захотели ее решить даже так, как мы это сделали тут.
Из практики:
- А скажите, Linux - это хороший Windows ?
Отсутствует
А... Ну, это к kullibbin.
Если с некоторых времён ничего не изменилось, то под Mozilla нужно js-инсталлятор написать, добавить пару строк в contents.rdf и протестировать. У меня на это уже просто не хватило времени. Или позже сделаю, или пусть кто-нибудь допишет и протестирует, скажет результаты.
Отсутствует