Страницы: 1
Всем привет.
Прошу помощи со следующей ситуацией, у меня проблемы с xulrunner-ом.
Если в методе идёт объявление переменную типа nsString или nsCString то во рантайме при выходе из метода происходит ошибка "Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted."
NS_IMETHODIMP Demo::Func1(PRInt32 inP,PRInt32 *outP,PRInt32 *_retval) { nsString a; return NS_OK; }
Проблема именно с xulrunner-ом. Если использовать "старый" СДК то всё ок.
Пробовал собирать проект под 2005 студией, 2008, експрессе.
Пробовал под разными версиями фаерфокса 2, 3, 3.5
Данный метод взят из мозиловского примера, который xpcom-test https://developer.mozilla.org/samples/x … m-test.zip.
Сами не местные помогите кто чем сможет Ж) Ибо уже не знаю что и делать. Пример компилится и линкуется на ура, но блин в рантайме. Как только уберу объявление стринга всё ок.
Заранее спасибо.
…Всем привет.
На руках имеется XPCOM компонент который модифицирует DOM. XPCOM модифицирует DOM а также добавляет javascript посредством создания тега script и установки src.
Скрипт загружен. Далее по некому событию необходимо обратиться к моему XPCOM компоненте и дёрнуть метод.
Так как скрипты загружены с веба то секурити не даст создать экземпляр компоненты.
EnablePrivilege("UniversalXPConnect") не поможет. Надо ручками включить signed.applets.codebase_principal_support(кажется) что конечно же не вариант.
Существует ли путь при котором можно как-то вызвать XPCOM компоненту?
Может быть исходя из того что XPCOM может модифицировать DOM то можно было бы что-то создать, например ивент, который можно было бы дёрнуть на стороне жабаскрипта?
Вроде как есть возможность подписать скрипт загруженный с сервера но не уверен что это может помочь. Хотя...
Вообщем прощу помощи Ж) Подскажите куда копнуть.
помимо WeakRefernce надо зарегистрироваться в xpcom-startup
типа такого. собственно говоря подобный код есть в примерах веблока
[code]
static NS_METHOD UrlCatcherFFRegistration(
nsIComponentManager *aCompMgr,
nsIFile *aPath,
const char *registryLocation,
const char *componentType,
const nsModuleComponentInfo *info)
{
nsresult rv;
nsCOMPtr<nsIServiceManager> servman = do_QueryInterface((nsISupports*)aCompMgr, &rv);
if (NS_FAILED(rv))
return rv;
nsCOMPtr<nsICategoryManager> catman;
rv = servman->GetServiceByContractID(
NS_CATEGORYMANAGER_CONTRACTID,
NS_GET_IID(nsICategoryManager),
getter_AddRefs(catman));
if (NS_FAILED(rv))
return rv;
char* previous = nsnull;
rv = catman->AddCategoryEntry(
NS_XPCOM_STARTUP_CATEGORY,
URLCATCHERFF_CLASSNAME,
URLCATCHERFF_CONTRACTID,
PR_TRUE,
PR_TRUE,
&previous);
if (previous)
nsMemory::Free
Да, видел такой. Но к сожалению данного интерфейса нету в версии 1.8
PS Вообще задача не просто прочитать HTML, а ещё и модифицировать...
В ИЕ в этом смысле проще, взял и дёрнул get_body/put_body у IHTMLElement-а.
Всем привет,
Как в версии 1.8 получить доступ к innerHTML-ю?
У меня на руках в обработчике OnStateChange есть aWebProgress, от туда я могу добраться к nsIDOMHTMLDocument. А дальше?
Спасибо.
Страницы: 1