Страницы: 1
Люди добрые, подскажите, кто знает.
Решил я немного повысить функциональность окна истории посещений и в процессе своих ковыряний обнаружил в places.sqlite в таблице moz_places странные записи. У них в поле last_visit_date стоит совершенно нормальная (и даже правдоподобная) дата, но при этом в поле visit_count стоит 0.
И таких записей у меня там нашлось аж три десятка.
Потом уже, глядя на URL-ы в этих записях, я выяснил, что и браузер в своём окне истории их показывает. И если столбец "Число посещений" сделать видимым, то оказывается, что у всех прочих записей там стоит число, а у этих - пустое место.
Вопрос: Является ли наличие подобных записей нормальным или это последствия каких-то сбоев в работе с БД? И если это нормально, то как подобные записи образуются?
На форуме
Нет, я не с закладками разбираюсь, а с историей посещений.
Понятно, что таблица moz_places общая для всего, но те ссылки я никогда в закладки не помещал. Это совершенно точно.
Пока склоняюсь к мысли, что это последствия зависаний браузера и его последующего убивания через Диспетчер задач. Но в этом предположении слишком много "если" и "может быть".
На форуме
Вопрос: Является ли наличие подобных записей нормальным
Ну, раз загрузки могут образовывать подобные записи,
то, как минимум, их наличие нельзя назвать совсем уж не нормальным.
Отсутствует
Ну, раз загрузки могут образовывать подобные записи
А вот это вопрос интересный. У меня же Iceape (Seamonkey), а там загрузки лежат в отдельном файле - downloads.sqlite. И счётчика посещений у них нет.
Но для нулевого счётчика у Firefox-овых загрузок хотя бы смысл и механизм понятен - они в historyvisits не пишутся, и frecency для них считать незачем. А тут посещения...
Тогда возможно рефереры, ну типа переходишь по ссылке, а там перенаправление.
Я вчера вечером выделил время и заново посетил все эти ссылки. Нет, всё честно, никаких перенаправлений. Максимум, "Домен не существует" или "Страница не существует". Но раз в places.sqlite у них записан title, то значит тогда по этому адресу открылась именно страница.
Да, и ещё один нюанс: у Seamonkey, в отличие от Firefox, те URL-ы, которые ответили перенаправлением, в базу данных вообще не попадают.
Поэтому текущая (сомнительная) гипотеза такая: браузер перед зависанием успел внести запись в moz_places, но не успел в moz_historyvisits. А потом какой-то внутренний процесс (возможно, подсчёт frecency) пересчитал записи в historyvisits и внёс актуальное значение (ноль) в moz_places.
Dumby
Моя затея с расширением для улучшения окна истории оказалась несколько сложнее, чем представлялось изначально. Похоже, что слишком много собственного кода браузера придётся подменять своим.
Если самому с чем-то справиться не удастся, можно за помощью обратиться? Осталось ещё что-то в памяти о XUL-расширениях?
Отредактировано yup (18-02-2025 15:25:07)
На форуме
Если самому с чем-то справиться не удастся, можно за помощью обратиться?
Обратиться-то можно, но будет ли от этого толк?
Плюс, надо ссылку на этот, такой же как у тебя, Iceape.
Даже если скачается и встанет, то он будет у меня в оффлайн-среде.
Но тогда, хотя бы будет предмет для обсуждения.
XUL-расширениях
Нет такого понятия.
Были оверлейные расширения.
Ещё, были расширения системы «Афёра SDK».
Были и есть bootstrapped расширения.
Сейчас, в Firefox, есть ещё странная разновидность
расширений, именуемая WebExtensions Experiments.
Отсутствует
Обратиться-то можно, но будет ли от этого толк?
Вот я и спросил - будет ли?
Я в разные периоды своей жизни разными делами занимался, от многих из них в голове только смутные воспоминания остались.
Плюс, надо ссылку на этот, такой же как у тебя, Iceape.
Не обязательно. Я под него перенёс с полсотни расширений и кнопок CustomButtons от Seamonkey. Процентов 80 из них не потребовали вообще никаких изменений, только новый ID в install.rdf записать. А у большинства из оставшихся 20% - этот же ID добавить в chrome.manifest.
То есть, совместимость с SM 2.49 очень высокая. (Я для Iceape и всех остальных основанных на UXP программ DOM Inspector адаптировал и ещё кучку исследовательских расширений, поэтому потроха изучил основательно.)
И обновления браузера (а они довольно часто выходят) ни разу ничего не поломали.
А сама программа берётся здесь: https://o.rthost.win/hbl-uxp/index.php? … &order=asc
Даже если скачается и встанет, то он будет у меня в оффлайн-среде.
Ну так для работы с историей доступ к Интернету не требуется. Я даже places.sqlite подкину, если что. Хотя там вопросы предвидятся типа: "Как вот из этого места кода достучаться до вон той функции?"
Нет такого понятия.
Официально нет.
Потому что сначала только такие и были. Потом появились другие - им названия дали, чтобы отличать. А этим так и не удосужились.
А как-то же сейчас называть надо. "Оверлейные расширения" тоже ведь не совсем официальное название. Поэтому приходится между собой договариваться. Каждому микросообществу в отдельности.
Были и есть bootstrapped расширения.
Сейчас, в Firefox, есть ещё странная разновидность расширений, именуемая WebExtensions Experiments.
А разве bootstrapped в нынешнем FF поддерживаются? Я думал, от всего "проклятого прошлого" давно отреклись в угоду WebExtensions.
Отредактировано yup (18-02-2025 20:00:01)
На форуме
Скажу более… настройки — Cookies — Управление данными…
В этом окне можно увидеть "кол-во Cookies" = 0, однако РАЗМЕР может доходить в несколько МЕГАБАЙТ!
Отсутствует
T0PMØ3iLLA
Они ж в SQL-ной базе данных хранятся. А это как MFT у NTFS: когда много записей добавляется - растёт; когда записи удаляются - не уменьшается.
Операция уменьшения ("vacuum") в браузере есть, но, по-моему, она там только вручную запускается.
Впрочем, браузеров развелось много разных, за всеми не уследишь.
Ну, и минимальный размер у некоторых из этих файлов совсем не маленький. Даже у абсолютно пустых, свежесозданных.
(У меня всю жизнь в настройках политика обращения с куками - "удалять по завершении сеанса". А у файла cookies.sqlite размер сейчас полмегабайта. Но это же не значит, что в нём столько хранится. С точки зрения движка SQLite он практически пустой.)
Отредактировано yup (18-02-2025 21:22:47)
На форуме
Вот я и спросил - будет ли?
Откуда же мне знать не видя вопроса, тут не угадаешь.
программа берётся здесь
Фух, скачал 52.9.20250206, развернул, запихал CB и DOMi, можно смотреть.
Так вот, система-то оффлайн, но есть прога Wampserver,
в которой я совсем ничего не понимаю,
но могу HTML'ки на диске размещать так,
что браузер отображает их как настоящие http-страницы.
Открываю вкладку, набираю адрес, страница открывается.
В базе: last_visit_date — есть, visit_count — единица.
Теперь, Ctrl+H, ПКМ —> «Delete»
В базе: запись просто исчезает. Из окна «History» тоже.
Теперь, ПКМ по этой странице —> «Save Page As…», сохраняю.
И вот оно!
В базе: last_visit_date — есть, visit_count — ноль.
И в окне «History» строка есть. С пустой графой «Visit Count».
Кстати, на странице есть ссылка.
Если ПКМ по по ней —> «Save Link Target As…»,
то снова получается подобная запись.
Это я не к тому, что у тебя они именно так и образовались,
а к тому, что такое возможно в принципе, и без каких-либо сбоев.
А как-то же сейчас называть надо.
Да, ты всё верно говоришь.
Просто название «XUL-расширение» какое-то дурацкое.
Если имеется в виду как разновидность расширения,
то не подходит, поскольку можно представить
оверлейное расширение вообще без XUL'а,
и bootstrap расширение, которое навалит целый вагон XUL'а.
А если имеется в виду как противопоставление WebExtensions,
тогда избыточно, поскольку WE расширениями не являются.
Это совершенно отдельный вид дополнений,
а официально такими именуются лишь в пропагандистских целях.
То есть, либо WebExtensions, либо просто «расширение».
Ну, таково моё мнение, которое, впрочем, да и вообще, не важно.
А разве bootstrapped в нынешнем FF поддерживаются?
Конечно нет. И уже давно. Но засунуть можно.
Самих расширений, наверно, немного, но они существуют.
Отсутствует
Откуда же мне знать не видя вопроса, тут не угадаешь.
А я напишу. Всю историю - от первоначальной задумки до той ситуации, до которой я сейчас "докатился". Но чуть позже - чтобы это отдельным сообщением было.
Теперь, ПКМ по этой странице —> «Save Page As…», сохраняю.
И вот оно!
В базе: last_visit_date — есть, visit_count — ноль.
Да уж... Ну и где логика (разработчиков)? (На всякий случай: это я сейчас в Iceape сижу, но используемый places.sqlite унаследован от Seamonkey, и записи в нём копились лет 20. А эти "обнулённые" и очень старые нашлись, и совсем свежие, буквально позавчерашние.)
Кстати, на странице есть ссылка.
Если ПКМ по по ней —> «Save Link Target As…», то снова получается подобная запись.
Ну ладно, это ещё как-то понять можно - фактически страницу не посещали.
Но сбрасывать в 0 счётчик при сохранении в файл текущей страницы???
Но теперь мне надо эту новость обдумать и поизучать ситуацию самому.
А пока объясню, почему возник интерес к этим нулям.
Я пока пришёл к тому, что для реализации моей идеи придётся самому формировать SQL-ный запрос к БД и самому заполнять окно истории. А выяснить, какой запрос туда уходит от штатного кода, не удалось. Пришлось экспериментировать. Первый заезд был с очевидным условием: visit_count > 0. Записей вернулось в несколько раз больше, чем показывает окно истории.
Посмотрел на эти записи, увидел, что у многих стоит hidden = 1. Что это hidden означает, не знаю, но добавил в запрос NOT hidden. Получил чуть-чуть меньше записей, чем в окне истории.
Тогда просто сохранил в один текстовый файл URL-ы из моего запроса, в другой - URL-ы из окна истории, и сравнил их. А потом нашёл в БД эти записи и прикинул, чем они отличаются от "нормальных", после чего заменил visit_count > 0 на last_visit_date <> 0. В результате, наконец, получил точное совпадение.
Всё. В том смысле, что к этим нулям я прицепился только из дотошности - хочу, чтобы показываемая моим кодом история содержала ровно те же записи, что и в штатном случае.
А к главным проблемам всё это отношения не имеет.
Да, ты всё верно говоришь.
Просто название «XUL-расширение» какое-то дурацкое.
Но тут такая ситуация:
1. Название "оверлейные расширения" ссылается на те же самые XUL overlays, что и название "XUL-расширения".
2. Я "за рулём" компьютеров с 70-х годов. И тогда, и в 80-е, и в начале 90-х в программировании широко использовались термины "оверлеи" и "оверлейные программы". Причём эти понятия не имели никакого отношения к UI, а описывали особенности внутреннего устройства самих программ.
И сидит во мне это настолько крепко, что даже сейчас назвать мозилловские расширения оверлейными у меня "язык не поднимается".
Если имеется в виду как разновидность расширения, то не подходит, поскольку можно представить оверлейное расширение вообще без XUL'а
Разве? По-моему, как минимум один файл .XUL должен быть, пусть даже и не меняющий ничего во внешнем виде. Иначе как код расширения запускаться будет?
(Вариант, когда в расширении только новая служба имеется, рассматривать не будем - слишком уж экзотический случай.)
Отредактировано yup (19-02-2025 01:26:10)
На форуме
Я про размер не самого файла базы данных, а конкретно про столбец Storage в окне Firefox (как со столбцом кол-ва посещений у истории) — тоже пишет в мегабайтах, хотя у столбца “Cookies” слева показывает значение 0:
data:image/png;base64,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
Кусты реестра SOFTWARE тоже у мн. пользователей за полсотню метров "растягивались" из-за каких-то несчастных пары значений в Microsoft\Windows NT\CurrentVersion\Perflib\CurrentLanguage (ошибка загрузки счётчиков в perfmon.msc), занявших десятки мегабайт — lodctr /r хоть и исправило данные (соответственно, размер там стал куда более адекватным), но сам куст SOFTWARE так и остался за полсотню метров… А использовать "оптимизаторы реестра" опасно, т.к. фрагментироваться новые данные станут сильнее — знать бы, как это всё перераспределить (дефрагментировать) вручную, оставив ещё разряжённые участки между определёнными подразделами…
А про NTFS… ну… моё мнение по этому поводу уж слишком оффтопное выходит
Отредактировано T0PMØ3iLLA (19-02-2025 21:56:59)
Отсутствует
конкретно про столбец Storage в окне Firefox (как со столбцом кол-ва посещений у истории) — тоже пишет в мегабайтах, хотя у столбца “Cookies” слева показывает значение 0
Что ещё за «хотя»?
Столбец «Cookies» — это количество кук.
Столбец «Storage» — это что-то типа попытки подсчёта добра, которое видно по Shift+F9
Оконце ведь называется «Manage Cookies and Site Data»,
а не просто «Manage Cookies».
Отсутствует
Ну вот, собрался с силами и попытаюсь описать, в чём состояла затея и до чего я докатился.
А обратное, увы, невозможно: когда я смотрю на любую запись в окне истории, я никак не могу определить, есть ли у меня закладка с таким URL или нет.
И даже пункт меню "Добавить в закладки" активен в том числе и на URL-ах, которые в закладках уже есть, и не моргнув глазом даёт возможность добавить их туда ещё раз.
Вот это безобразие и хочется устранить.
И реализация представлялась несложной. Есть XUL окна (chrome://communicator/content/history/history.xul) с этой таблицей, программно добавляем в эту таблицу новый столбец.
Находим функцию, которая получает из базы данных записи для этой таблицы, смотрим запрос, создаём свой модифицированный вариант и изыскиваем способ подменить или запрос, или функцию.
А нижележащие функции, которые вызываются, это History API, в котором нет ничего в данном случае полезного. Там можно управлять перечнем запрашиваемых полей, но выбор только из жёстко заданного набора, в котором ничего подходящего для меня нет.
Сначала Places API обнадёжило: оказалось, что у каждом возвращаемой записи истории есть поле bookmarkIndex. Я обрадовался, решив, что это индекс в таблице moz_bookmarks, и значит, если у записи там стоит осмысленное число, то закладка есть. Но эксперимент показал, что для всех записей из моей истории там возвращается -1, хотя многие из них в закладках точно имеются.
А критический взгляд на описание этого поля в документации показал, что описание это неоднозначное, и прочитать его можно по-разному - в зависимости от того, как хочешь его прочитать.
Затем из документации выяснил, что поле itemId у результатов это тоже индекс в закладках. Правда, для моих записей в нём тоже всегда -1 стоит. И да, его описание тоже можно прочитать по-разному, было бы желание.
Прошёл отладчиком дальше (в смысле - ниже) и добрался в конце концов до вызова Сишной функции, но формирования запроса, который можно было бы модифицировать, так и не встретил.
Значит, он где-то в Сишном коде, а его своим расширением не подменишь.
Сначала подобрал запрос к moz_places, дающий такой же результат, как и штатный код (именно тогда и возник вопрос о нулях).
Потом добавил к запросу заглядывание в таблицу moz_bookmarks. Результат получился правильным.
А потом обнаружил, что привлекать moz_bookmarks не требуется, потому что поле foreign_count в записях moz_places это счётчик, указывающий, сколько раз URL из записи встречается в закладках.
То есть, так получается не только быстрее, но даже и круче, чем хотелось изначально - перед глазами будет не просто плюсик, а счётчик.
Для ковыряния в истории SQL-запросами в Places API есть парочка функций, унаследованных от Storage API:
А последнее предложение в п.2 неплохо сочетается с двумя нюансами, которые тоже хочется использовать:
Очень хочется преобразовать то, что возвращает executeAsync(), в то, что можно скормить PlacesTreeView внутри load(), и таким образом обойтись только навешиванием своей простейшей надстройки над getCellText() из chrome://communicator/content/history/treeView.js
Вот над этим сейчас голову и ломаю (по мере наличия времени).
Отредактировано yup (Сегодня 03:08:01)
На форуме
Страницы: 1