Полезная информация

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.
  • Форумы
  •  » Новости
  •  » Новая ошибка добавлена в программу «Деньги за исправление багов»

№2626-01-2008 02:31:37

Unghost
Призрак-админ
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 08-10-2004
Сообщений: 11771
UA: Minefield 3.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

TLemur_SLED

Что самое интересное - если в Linux локаль не utf8, а, скажем, koi8r или ещё какая-нибудь - баг тоже проявляется.

:offtopic: Что, такие Linux ещё остались в природе? Все нормальные дистрибутивы давно перешли на UTF-8.

Если в пути/имени файла есть символы из    Latin Extended-B, расширенной кириллице Firefox под Windows вообще не открывает файлы...

Это вроде починили в 3.0.


Do not meddle in the affairs of Wizards, for they are subtle and quick to anger.

Отсутствует

 

№2726-01-2008 03:52:49

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

по ходу дела проблема тут куда глубже...

Выделить код

Код:

const persistContractID = "@mozilla.org/embedding/browser/nsWebBrowserPersist;1";
  const persistIID = Components.interfaces.nsIWebBrowserPersist;
  return Components.classes[persistContractID].createInstance(persistIID);
Выделить код

Код:

persist.saveDocument(persistArgs.source, persistArgs.target, filesFolder,
                         persistArgs.contentType, encodingFlags, kWrapColumn);

filesFolder содержит юникодную строку, но где-то внутри сей компоненты она таинственным образом превращается в вин1251...

Отредактировано Dark-Demon (26-01-2008 03:54:03)


!

Отсутствует

 

№2826-01-2008 04:38:04

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

ну, в общем, без ковыряния сишного кода работает такой хак:
перед вызовом сохранения обрабатываем имя папки с помощью encodeURI, в результате чего ссылки будут правильными, но у папки будет название через проценты, поэтому после сохранения достаточно просто переименовать папку в filesFolder без урл-экранирования.


!

Отсутствует

 

№2926-01-2008 05:39:59

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

ну всё, я спать.

короче в toolkit/content/global/contentAreaUtils.js нужно эту строку:

Выделить код

Код:

filesFolder.leafName = filesFolderLeafName;

заменить на эту:

Выделить код

Код:

filesFolder.leafName = encodeURI( filesFolderLeafName );

и чуть дальше по коду повесить срабатывание следующей функции:

Выделить код

Код:

filesFolder.moveTo( filesFolder.parent, filesFolderLeafName );

по окончанию загрузки. что-то у меня не получилось подцепить обработчик...


!

Отсутствует

 

№3026-01-2008 11:05:06

stoneflash
Хитрый Лис
 
Группа: Extensions
Откуда: Msk
Зарегистрирован: 02-04-2006
Сообщений: 4341
UA: Minefield 3.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

Dark-Demon
И это всю проблему решает???


«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator

Отсутствует

 

№3126-01-2008 11:32:03

TLemur
Забанен
 
Группа: Members
Зарегистрирован: 18-10-2004
Сообщений: 1764
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

stoneflash

Выделить код

Код:

filesFolder.leafName = encodeURI(filesFolderLeafName);

Первая часть работает...

Отсутствует

 

№3226-01-2008 11:34:33

stoneflash
Хитрый Лис
 
Группа: Extensions
Откуда: Msk
Зарегистрирован: 02-04-2006
Сообщений: 4341
UA: Minefield 3.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

Ну её смысл ясен, а

Выделить код

Код:

filesFolder.moveTo( filesFolder.parent, filesFolderLeafName );

не работает?


«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator

Отсутствует

 

№3326-01-2008 12:55:06

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

stoneflash, на первый взгляд - да, решает :)


!

Отсутствует

 

№3426-01-2008 12:57:18

stoneflash
Хитрый Лис
 
Группа: Extensions
Откуда: Msk
Зарегистрирован: 02-04-2006
Сообщений: 4341
UA: Minefield 3.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

Dark-Demon
Но как костыль? Или всё верно? Просто если напишешь патч (хотя что тут писать...), то деньги твои должны быть...


«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator

Отсутствует

 

№3526-01-2008 13:09:20

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

угу, костыль ещё тот :)

Отредактировано Dark-Demon (26-01-2008 13:09:30)


!

Отсутствует

 

№3626-01-2008 13:11:34

stoneflash
Хитрый Лис
 
Группа: Extensions
Откуда: Msk
Зарегистрирован: 02-04-2006
Сообщений: 4341
UA: Minefield 3.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

:( Жаль. А в чем тогда проблема?

filesFolder содержит юникодную строку, но где-то внутри сей компоненты она таинственным образом превращается в вин1251...

У японцев тоже в win1251 ?


«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator

Отсутствует

 

№3726-01-2008 13:14:11

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

Dark-Demon пишет

filesFolder содержит юникодную строку, но где-то внутри сей компоненты она таинственным образом превращается в вин1251...

собственно, так и должно быть. это системная кодировка в винде.
баг тут не в неправильном сохранении, а в открытии сохранённого файла

Отсутствует

 

№3826-01-2008 13:25:11

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

shutnik, какое отношение имеет системная кодировка к кодировке имён фалов? имена в нтфс хранятся в юникоде.
stoneflash, нет, у японцев - другая системная кодировка.

Отредактировано Dark-Demon (26-01-2008 13:25:51)


!

Отсутствует

 

№3926-01-2008 13:33:59

TLemur
Забанен
 
Группа: Members
Зарегистрирован: 18-10-2004
Сообщений: 1764
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

shutnik

Мне кажется, всё-таки в сохранении.
Потому что если мы сохраняем файл в любой кодировке, а потом заменяем путь к папке на юникод, то всё работает без проблем.

Отсутствует

 

№4026-01-2008 13:54:20

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

Dark-Demon пишет

какое отношение имеет системная кодировка к кодировке имён фалов? имена в нтфс хранятся в юникоде.

самое прямое, имена файлов хранятся в системной кодировке.
то, что они могут быть в разных кодировках мне известно.

TLemur пишет

Потому что если мы сохраняем файл в любой кодировке, а потом заменяем путь к папке на юникод, то всё работает без проблем.

то есть сохраняется верно, ага. не верно работает открытие, если путь не в юникоде. :rolleyes:

Отсутствует

 

№4126-01-2008 14:15:16

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

shutnik, имена файлов хранятся в ютф8


!

Отсутствует

 

№4226-01-2008 15:34:17

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 2.0
Веб-сайт

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

Dark-Demon
Может быть уже проверял, но на всякий случай - может быть дело в encodingFlags ? Кроме того, nsIWebBrowserPersist

... is implemented by the following components:

    * @mozilla.org/embedding/browser/nsWebBrowser;1
    * @mozilla.org/embedding/browser/nsWebBrowserPersist;1

и, возможно, стоит проверить методы реализаторов.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№4326-01-2008 17:28:27

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278
UA: Firefox 3.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

подходящего по описанию флага я не нашёл, включать все подряд - не пробовал.

насчёт замены nsIWebBrowserPersist на nsIWebBrowser - не думаю, что это решит проблему, скорее что-нибудь сломает...


!

Отсутствует

 

№4426-01-2008 22:35:46

vladmir
SeaMonkey - вот это браузер
 
Группа: Extensions
Откуда: НН
Зарегистрирован: 16-10-2004
Сообщений: 4630
UA: Seamonkey 1.1

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

Dark-Demon
Если уж взялся - перечитай баги, их десяток-два, там уже много что обмусолено.
Ссылки и здесь на форуме давались много раз и поиском можно по багзилле.

Отсутствует

 

№4526-01-2008 23:18:32

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278
UA: Firefox 3.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

больше мне делать нечего как читать два десятка обсуждений на буржуйском языке :)


!

Отсутствует

 

№4627-01-2008 20:21:38

Разгневaнный
 
Группа: Guest
UA: IE 7.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

RED

старого легендарного бага

Может расскажете за одно пару легенд, которыми оброс этот знаменательный баг, несущий тьму на всех и вся?
Бесят меня такие обороты, не в тему они совершенно. Какие нафиг легенды? Легендарная может быть битва, или воин, или.... ну уж никак не баг.

 

№4701-02-2008 16:05:59

Borr
Участник
 
Группа: Members
Зарегистрирован: 11-11-2004
Сообщений: 99
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

Dark-Demon пишет

ну всё, я спать.

короче в toolkit/content/global/contentAreaUtils.js нужно эту строку:

Выделить код

Код:

filesFolder.leafName = filesFolderLeafName;

заменить на эту:

Выделить код

Код:

filesFolder.leafName = encodeURI( filesFolderLeafName );

и чуть дальше по коду повесить срабатывание следующей функции:

Выделить код

Код:

filesFolder.moveTo( filesFolder.parent, filesFolderLeafName );

по окончанию загрузки. что-то у меня не получилось подцепить обработчик...

По моему вы не там роете, нужно рыть где открывает

Выделить код

Код:

<script src="%C6%EE%EF%EF%E0_files/__utm.htm" type="text/javascript"></script><script language="JavaScript1.5">_ujv='1.5';</script>
<script src="%C6%EE%EF%EF%E0_files/util.htm" type="text/javascript"></script>
 <script src="%C6%EE%EF%EF%E0_files/track.htm" type="text/javascript"></script>

Эта папка есть (%C6%EE%EF%EF%E0_files) тоько в win коджировке, просто при открытии ресурсов он не делает им декодировку из UTF что-то типа decodeURI есть?

Отсутствует

 

№4801-02-2008 16:50:23

TLemur
Забанен
 
Группа: Members
Зарегистрирован: 18-10-2004
Сообщений: 1764
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

Borr

Ага, а для кои-8ру делать свою таблицу перекодировки и т.д.?

Отсутствует

 

№4901-02-2008 21:21:41

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278
UA: Firefox 3.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

Borr, в том-то и дело, что не открывает. а не открывает потому, что неправильно сохраняет.


!

Отсутствует

 

№5002-02-2008 11:07:52

Borr
Участник
 
Группа: Members
Зарегистрирован: 11-11-2004
Сообщений: 99
UA: Firefox 2.0

Re: Новая ошибка добавлена в программу «Деньги за исправление багов»

Dark-Demon пишет

Borr, в том-то и дело, что не открывает. а не открывает потому, что неправильно сохраняет.

Dark-Demon, я не ориентируюсь в структуре, но думаю в C++ лезть не нужно. В contentAreaUtils.js есть saveDocument значит где-то должен быть LoadDocument и этот LoadDocument не правильно работает, как мне кажеться. А сохраняет он все правильно.

Отредактировано Borr (02-02-2008 11:09:09)

Отсутствует

 
  • Форумы
  •  » Новости
  •  » Новая ошибка добавлена в программу «Деньги за исправление багов»

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]