NaCl должен быть включен по умолчанию в распакованных расширениях, но я не могу использовать его с одного - PullRequest
2 голосов
/ 28 февраля 2012

«В настоящее время NaCl включен по умолчанию только для приложений / расширений из интернет-магазина Chrome или распакованных расширений для целей разработки».- Интернет

Пока что я не могу использовать NaCl из распакованного расширения.(Я не пробовал Интернет-магазин.)

У меня действительно простое тестовое расширение, в фоновом режиме которого содержится следующее:

function clicked() {
    var testNaclElement = document.createElement("embed");
    testNaclElement.setAttribute("type","application/x-nacl");
    testNaclElement.setAttribute("width",0);
    testNaclElement.setAttribute("height",0);
    document.body.appendChild(testNaclElement);
    alert(testNaclElement.postMessage?true:false);
    document.body.removeChild(testNaclElement);
}

chrome.browserAction.onClicked.addListener(updateIcon);
updateIcon();

Это расширение сообщает значение true, когда NaClвключен в chrome: // flags, но когда NaCl отключен в chrome: // flags (по умолчанию), он сообщает об ошибке.

Я ожидал, что он сообщит об истине.

Что такоеЯ пропал?

Обновление:

Кажется, что изобретать мой собственный код обнаружения в конце концов не очень хорошая идея.Если я создаю и устанавливаю распакованное веб-приложение Chrome, которое указывает на URL X, тогда NaCl будет работать на этой странице, но этот код обнаружения будет по-прежнему сообщать о ложном значении, тогда как тот же самый код сообщает об истине, когда на обычной веб-странице с включенным NaCl в Chrome://flags.

НО, если создать расширение (не веб-приложение Chrome), которое использует NaCl в iFrame, который указывает на URL X, то NaCl не будет работать в нем.

НО, если ясоздайте веб-приложение, которое указывает на URL-адрес X и расширение, которое использует URL-адрес X в iFrame, тогда оба будут работать, если они установлены одновременно.

Update2: Если я на самом деле включаю NMFи nexe в расширении, тогда оно работает.

Update3: nexe не нужно включать в расширение.

Ответы [ 2 ]

0 голосов
/ 02 марта 2012

Chrome требует, чтобы местоположение nmf принадлежало расширению. Пустой атрибут nmf не имеет этого свойства.

0 голосов
/ 29 февраля 2012

Лучший способ определить, загружен ли модуль NaCl, - использовать события прогресса.см. https://developers.google.com/native-client/pepper16/devguide/coding/progress-events для перечисления событий и примера.

о URL X - я не думаю, что события распространяются, проходят iframes, если URL-адрес iframe и доменные URL-адреса контейнера различаются - илюбое включение NaCl в интернет-магазине или распакованных расширениях соответствует URL-адресу (возможно, со специальной прототипом; я не знаю деталей), что может объяснить различные комбинации, которые вы видите.вероятно, это также зависит от того, как вы указали URL-адрес, заданный в манифесте веб-приложения.

в коде testNaclElement отсутствует пара src = атрибут / значение.Прошло много времени с тех пор, как я посмотрел код плагина NaCl, но это также может вызвать проблемы.

...