Плагин Firefox падает в Chrome - PullRequest
       17

Плагин Firefox падает в Chrome

1 голос
/ 19 ноября 2008

Насколько я понимаю, Google Chrome может запускать плагины браузера, написанные с использованием NPAPI .

Я написал один, который отлично работает в Firefox, но заставляет Chrome аварийно завершать работу, как только вы вставляете его на страницу. Мне даже не нужно вызывать ни один из моих методов, встраивания достаточно, чтобы вызвать сбой.

Как мне отладить это? Я попытался подключить отладчик к Chrome, но следы стека, которые я получаю, находятся глубоко в самом Chrome, и, как я уже сказал, ни один из «моего» фактического кода не выполняется, а предположительно просто код инициализации NPAPI.

Буду признателен за некоторые указатели.

Ответы [ 3 ]

4 голосов
/ 03 февраля 2009

В документации разработчика Chromium описаны некоторые приемы подключения Visual Studio к процессам Chrome: Документация разработчика Chromium> Отладка Chromium .

Некоторые проблемы, с которыми вы можете столкнуться с плагином NPAPI в Chrome:

  • Ваш плагин будет запущен отдельно от интерфейса Chrome. (Вы, наверное, уже знаете это:)
  • Если загружено несколько экземпляров вашего плагина (на одной HTML-странице или на разных вкладках Chrome), ваши экземпляры плагина будут работать в одном и том же процессе вместе. Если у вас есть глобальные переменные, ваши экземпляры плагинов могут давить друг на друга.
  • Chrome использует DEP (защиту от выполнения данных), а Firefox - нет. Если вы используете ATL или другие трюки с JIT-кодом, DEP может вызвать сбой вашего плагина.
2 голосов
/ 04 февраля 2009

Как оказалось, часть кода инициализации из старого примера плагина NPAPI, который я использовал, вызвала сбой. К сожалению, я решил это довольно давно и, похоже, не могу найти конкретные изменения, которые я сделал, чтобы исправить это в истории управления версиями. В любом случае, моя проблема исправлена ​​и была вызвана тем, что я тупой и слепо доверял коду примера.

2 голосов
/ 02 февраля 2009

Chrome с открытым исходным кодом ... вы пытались загрузить исходный код и собрать его? Таким образом, вы, по крайней мере, можете указать IDE на дерево исходного кода и автоматически подключить его при сбое, что может дать вам немного больше информации о том, что произошло.

Конечно, это не решит вашу ошибку, но может помочь сообщить об этом команде Chrome. Как вы очень хорошо знаете, API плагинов является довольно новым для Chrome, и вполне возможно, что это ошибка, а не ваша.

...