Как получить прокси браузера от плагина NPAPI, не используя xpcomglue? - PullRequest
0 голосов
/ 09 февраля 2011

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

Сейчас он работает с использованием nsIProtocolProxyService .Однако функция NewURI (необходимая для создания объекта URI, используемого nsIProtocolProxyService :: resol () ) принимает константную ссылку на nsACString .И похоже, что для любой конкретной его реализации мне нужно связать с xpcomglue , что я не могу сделать (Если я правильно понимаю, я не должен связываться динамически по техническим причинам; и я не могу связать статическис xpcomglue_s по юридическим причинам).

Итак, как я могу получить прокси браузера без связи с xpcomglue ?

Ответы [ 2 ]

2 голосов
/ 09 февраля 2011

Это определенно сложный вопрос. Действительно, лучший способ (когда это возможно) - использовать функции NPAPI в стиле NPN_GetURL / NPN_PostURL, когда это возможно. Если это невозможно, то вы более или менее нуждаетесь в ручье, если не можете положиться на последнюю версию браузера.

Если вы можете предположить, что Firefox / gecko API последней версии (я почти уверен, что Firefox 3.6 поддерживает это, но не уверен, что началось; документы говорят, Gecko SDK 1.9, но я не думаю, что это было там в тот момент ) затем вы можете использовать NPN_GetValueForURL с NPNURLVProxy, чтобы получить информацию о прокси для данного URL.

Опять же, имейте в виду, что это будет работать только в новых браузерах, и у меня еще не было возможности составить матрицу совместимости для того, что поддерживает ее; У меня есть планы добавить это к FireBreath , но он не попал в 1.4, поэтому может пройти еще месяц, прежде чем я доберусь до него.

В качестве варианта отработки отказа наиболее распространенным решением, если оно недоступно, является просто получить конфигурацию прокси для WinInet (Internet Explorer) и поверить, что она будет такой же.

Это (IMO) существенная проблема без действительно хорошего решения. Это причина того, что Flash, как известно, непостоянен и с сетевым доступом через прокси.

0 голосов
/ 09 февраля 2011

Вы не должны разрабатывать плагины NPAPI, использующие XPCOM;см. Документы Mozilla .Возможно, вы могли бы использовать расширение Firefox по крайней мере для части того, что вы пытаетесь сделать, и обмениваться данными между этим и вашим плагином, используя привязки JS.

...