Pull to refresh
78
0

Пользователь

Send message
Примеры без употребления canvas теперь работают на IE 8 (хотя и без центрирования таблицы).
Добавлена строчки кода с пояснением:

    if(!/^file:/.test(tFileURL)) {
        xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE;
        xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal)
                                            .forceAllowThirdPartyCookie = true;
    }



Чтобы заставить Firefox отсылать куки с XHR даже тогда, когда пользователь запретил куки со сторонних сайтов, устанавливаем флаг принудительной отсылки (без этого куки не принимаются и не отсылаются). Конечно, флаги принудительной отсылки кук и обхода кеша нужны только для сетевых протоколов, поэтому в случае протокола локальных файлов мы их не устанавливаем.
Добавлена строчка кода с пояснением:

   xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannelInternal)
                                        .forceAllowThirdPartyCookie = true;


Чтобы заставить Firefox отсылать куки с XHR даже тогда, когда пользователь запретил куки со сторонних сайтов, устанавливаем флаг принудительной отсылки (без этого куки не принимаются и не отсылаются).
Ещё реализована поддержка Mutation observers.

Введение.

Спецификация.
Можно ещё воспользоваться BEncode Editor. Мне кажется, это удобнее и безопаснее (зачем вам посылать куда-то в сеть торрент-файлы со своим пасскеем? впрочем, может, вы только с открытыми трекерами имеете дело, тогда не имеет значения). Вот только, насколько я понимаю, безболезненно можно менять только те параметры, который не входят в узел info.
Возможно, потому, что во время разработки протокола JSON ещё не был стандартом. Они, кажется, приблизительно в одно время разрабатывались. Надеюсь, вам ответят более информированные люди.
Сегодня официально пофиксили, но когда патч распространится на все ветки разработки, я не знаю.
С DOMPaser это был баг, причём критический, затрагивающий безопасность. Вчера пофиксили для ночных сборок, но когда патч доберётся до авроры/беты/релиза, я не знаю.
Чуть выше уточнил причину. Да и на MDN уже дополнили информацию.
Как оказалось, сбой на Firfox 13 из-за того, что mozBackgroundRequest нужно определять до open() (на последующих версиях это сбоя не вызывает, однако и поведения не изменяет в нужную сторону). Подправил код, теперь и 13-версии должно работать без сбоев (однако с таймаутами).
Меня поправили в теме Custom Buttons на forum.mozilla-russia.org: заворачивать код в (function() {… })(); необязательно – код и так запускается через new Function(). Упростил код и подправил пояснения.
Если он есть, конечно, проще) Вдобавок, даже если он есть, он не всю нужную информацию может охватывать. Напрмер, рутрекер предоставляет rss новых раздач, но не оповещает о личных сообщениях и не даёт подписаться на комментарии в теме. Да и rss, если я правильно помню, работает с там задержкой в час.
Сомневаюсь, что проблема на таком низком уровне, ведь код без парсинга получается без проблем, вина именно на стороне браузера.

Без этой строчки та же проблема, я тестировал и так, и так. Просто без неё почему-то в отдельных случаях браузер выводит кракозабры (то ли сервер забывает включать charset в код, то ли забывает отсылать его в заголовках).

На багзилле выложили временно пропатченный вариант бинарника, в нём нет никаких таймаутов. Насколько я понял, патч заключался в более последовательном запрете на исполнение скриптов при парсинге, которые по идее и так не должны были исполнятся в подобном случае, но выходил какой-то сбой в этой области. Так что скорее всего в этом дело. Жаль только, что даже в случае одобрения патч скорее всего войдёт лишь в 16-й релиз.
К сожалению, автора патча надеется только на 16-ю версию, как можно понять из его комментария. Ну что ж, если и так, ждать не очень долго)
Надо же, на тестовом бинарнике никаких зависаний! Насколько я понял из списка различий, изменения касались в основном более надёжного запрета на исполнение скриптов, хотя я плохо разбираюсь в том коде.

Остаётся лишь надеяться, что патч применят ко всем версиям начиная с 13-й.
Спасибо за объяснения. Там появилась ссылка на тестовые бинарники, попробую протестировать. Я обновляюсь на ночной сборке каждую ночь автоматически (браузер сам обновляется), просто не уверен что такие дежурные тестовые фиксы тоже вносятся в эти обновления.

Фича вряд ли экспериментальная, она ведь в спецификации XHR внесена. И по идее должна работать с любыми страницами. Жаль только что, похоже, никто баг не может подтвердить на багзилле. Боюсь, уж не явилась ли моя ситуация фатальным стечением неповторимых обстоятельств, которых я так и не распутаю.
Я именно про DOMPaser. Я не думаю, что он их выполняет. Однако расширения, мониторящие HTTP активность, показывают, что он загружает почему-то эти ресурсы, тогда как при чистом XMLHttpRequest никаких дополнительных запросов не происходит.

В ночной сборке тоже работает. Можно страховаться: если XHR с парсингом выдаёт таймаут, можно запрашивать повторно код и парсить при помощи DOMPaser. Но это ведь всё лишний код и лишние запросы.

Интересно, механизмы у DOMPaser и парсера XHR одни и те же или нет? Почему же такая разница…
Спасибо большое. А в каком случае и как скоро подобные патчи входят в бинарные ночные сборки?
Спасибо, он и правда работает. Но ведь при этом грузит изображения и остальные ресурсы (css и т. д.). При этом у него неудобная обработка ошибок. Вот только что тестировал, на одном из сайтов с редиректом он мало того что обрывается с сообщением об ошибке в консоль, он ещё и алерт непрошенный выдаёт с ответом сервера о редиректе. Как запасное средство подойдёт, но всё же хорошо бы доработали XMLHttpRequest.
хабрапарсер заменил

"СОБАКАmozilla.org/consoleservice;1"


на

"<hh user=mozilla>.org/consoleservice;1"

Information

Rating
Does not participate
Date of birth
Registered
Activity