![]() |
|
Модераторы: MetalFan |
![]()
|
|
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 12 Всего: 57 |
Greetings All!
Суть проблемы: существуют страницы, которые наглухо завешивают TWebBrowser, вместе с приложением-хостом. У этого явления есть два очень мерзких сопутствующих фактора: 1. Нативного осла, а также Оперу или Рыжую Лису, такие странички (назовём их "ж-страницы") не завешивают. Некоторые также вешают и чистого осла. 2. После какого-то момента управление в свой код не возвращается. Где-то внутри COM-объекта происходит что-то, напоминающее бесконечную рекурсию (хотя дополнительная память не пожирается даже на длительном промежутке времени). Таким образом, как только ж-страница проявила себя, культурными методами проиложение уже не спасти. Вот пример, который демонстрирует, как может работать ж-страница.
Это минимизированный вариант, он вешает даже нативного осла. Только не думайте, что это я такое чудо изобрёл... С этой проблемой столкнулся на реальном сайте, в оригинале ж-страница работает с простым ослом нормально. Для того, чтобы проверить, как оно всё не работает, создайте минимальное приложение с TWebBrowser (или TEmbeddedWB) на форме и прикажите ему Navigate на страницу с вышеприведённым контентом, после чего оно прикажет долго жить. Maxthon тоже на этом сыпется... Короче, вот так можно срубить любую бродилку на базе WebBrowser ActiveX от всеми любимых мелких и мягких. В чём вопрос: 1. Главное - как можно отдетектить зависание и культурно прибить заглючивший TWebBrowser? Может, запустить какой-то дополнительный поток, который следит за всеми TWebBrowser и давит мёртвых? Тогда как опрашивать компонент? Как его придушить из другого потока? 2. Вторичное - как можно такое предотвратить? Сейчас я просто знаю, где такая гадость происходит, мониторю OnProgressChange и убиваю onresize, но это не универсальное решение |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 6 Всего: 112 |
У меня работает... Может это только для определенных версий осла ? У меня 6.0.2800.1106 (Win2k) Это сообщение отредактировал(а) p0s0l - 1.2.2006, 10:26 -------------------- С уважением, г-н Посол. |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 12 Всего: 57 |
p0s0l
У меня тоже 6.0.2800.1106 под Win2k... Может, настройки какие-то левые... Разве у тебя нет 100%-ной загрузки проца и зависания приложения? Сделай одолжение, попробуй открыть twebbrowser'ом хтмлку из прилагаемого архива... Присоединённый файл ( Кол-во скачиваний: 5 )
Tmp.rar 10,26 Kb |
|||
|
||||
| December |
|
||||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 12 Всего: 57 |
Проверил ещё, вот в таком варианте работает, потому что не может достучаться до testsite.com (спасибо аутпосту)
зато вот в таком варианте - уже нет.
На XP тоже валится... |
||||
|
|||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 12 Всего: 57 |
Кому не страшно, и кто юзает осла или осёл-based бродилки - попробуйте зайти вот сюда и расскажите свои ощущения
Тока предупреждаю сразу - лучше закройте все остальные табы и сохраните важную информацию! http://dcmbr.net/iesucks.php |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: нет Всего: 76 |
Win2k SP4 IE 6.0.2600.0000 виснет, цп 100%
-------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| p0s0l |
|
||||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 6 Всего: 112 |
Насчет настроек - понизил уровень безопасности в ИЕ до минимума...
-------------------- С уважением, г-н Посол. |
||||||
|
|||||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 12 Всего: 57 |
просто машину свою выключил, попробуй плиз ещё раз...
|
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 12 Всего: 57 |
Переместил ж-страничку на постоянное место:
http://dcmbr.net/iesucks.php Можете посылать своих знакомых на этот урл, если хотите поиздеваться |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 6 Всего: 112 |
Добавлено @ 16:59 А как проблему решил ? (Если решил) -------------------- С уважением, г-н Посол. |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 12 Всего: 57 |
Путём откладывания на неопределённый срок... это при тех же минимальных настройках безопасности? |
|||
|
||||
![]()
|
| Правила форума "Delphi: ActiveX/СОМ/CORBA" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |