| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > EmbeddedWB, как не загружать с другого домена |
| Автор: lollollollol 21.3.2013, 20:51 |
| Снова всех приветствую. Добился стабильной работы от EmbeddedWB, избавился от утечки памяти, и похоже осталась финальная загвоздка. Сайт, который загружается в EmbeddedWB подгружает какие-то картинки и js с другого домена, но тот домен по неизвестным причинам не работает. Результат - долго пытается загрузить страничку. Я хочу сделать так, чтобы EmbeddedWB не загружал никаких файлов со сторонних доменов. Например я открываю сайт http://vasya.com/ На этом сайте выполняется загрузка картинок,js,css не только с домена http://vasya.com/, но и с http://blabla.com/ Нужно сделать чтобы загрузка скриптов и картинок выполнялась только с домена http://vasya.com/. Посмотрел все свойства компонента, ничего не нашел. Подскажите в каком направлении копать, я что-то даже в юнитах компонента не нашел кода загрузки скриптов и картинок, хотел прям там условие прописать. Прошу помощи, кто чем может |
| Автор: lollollollol 21.3.2013, 22:15 |
| Ничего в голову не приходит... Можно конечно создать socks на 127.0.0.1:Любой порт, настроить работу через прокси, и уже на уровне прокси фильтровать куда пускать запрос, но я считаю это уже изврат высшей степени. Должна быть другая возможность решить проблему |
| Автор: lollollollol 22.3.2013, 19:29 |
| Ещё думал может изменить html таким оразом, чтобы там небыло ссылок на другие домены, но ведь браузер вначале всё загружает |
| Автор: lollollollol 23.3.2013, 06:30 |
| Я вот подумал, может быть можно достучаться до функций которые выполняют парсинг ссылок перед тем как браузер начнёт грузить необходимые файлы, прописаные в html? Не удаётся найти, есть ли смысл копать этом направлении, или за это ядро IE отвечает? |
| Автор: lollollollol 25.3.2013, 20:01 |
| Эт как перехватить? Я ради интереса делал подобное год назад, но я там свою функцию перехватывал: Менял адрес вызова функции, и выполнял свою функцию Сейчас попробую так сделать. Или существуют стандартные методы перехвата, чтото типа дополнительного uses? |
| Автор: Чучмек 25.3.2013, 20:10 | ||
Можешь пока воспользоваться моим.
|
| Автор: lollollollol 25.3.2013, 20:49 |
| Спасибо, завтра отпишу что получилось |
| Автор: lollollollol 26.3.2013, 08:09 |
| Спасибо большое! Как появилось время сразу решил сделать, и всё получилось. Правда мне удобнее было перехватывать функцию getaddrinfo, сделал по Вашему примеру, всё сразу заработало так как и ожидалось! Ещё раз большое спасибо! |
| Автор: Чучмек 26.3.2013, 09:14 |
IE6 использует gethostbyname. Для совместимости необходимо перехватывать и эту функцию. |
| Автор: lollollollol 26.3.2013, 16:06 |
| у меня ие8, getaddrinfo работает, если я сделаю gethostbyname, на ие 8 тоже будет работать? |
| Автор: Чучмек 26.3.2013, 16:39 |
| если только getaddrinfo - нет. Необходимо перехватывать обе функции. Добавлено через 2 минуты и 28 секунд Какой алгоритм используешь? |
| Автор: lollollollol 26.3.2013, 16:46 | ||||
| Поясни принцип работы, а то чтото торможу. Вот есть 3 функции,
Что происходит когда они вызываются? Строка db '000000000000000000000000000000000000000000000000'; за что отвечает? |
| Автор: Чучмек 26.3.2013, 17:04 | ||
Резервирует место Добавлено через 6 минут и 14 секунд По адресу перехватываемой функции записывается переход на my_function По адресу old_function переносится часть кода из перехватываемой, которая затирается переходом, и переход на оставшийся код. |
| Автор: lollollollol 26.3.2013, 17:26 | ||
Да, сам алгоритм я понял, меня смутило то что во всех случаях одна строка кода выполняется |