API канала Google App Engine и расширения Chrome - PullRequest
1 голос
/ 10 февраля 2011

На Рождество я реализовал некоторый код, чтобы открыть канал для своего приложения App Engine, используя API канала, и он работал нормально.

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

Я сделал снимок кода, возвращенного / _ah / channel / jsapi 21 декабря, и сравниваю его с сегодняшним кодом.

Когда старая версия пыталась получить talkgadget.google.com/talkgadget/d?token=[my-token], она была жестко запрограммирована на использование http. Вполне разумно, что код был позже изменен, чтобы проверить протокол страницы в document.location и адаптироваться к случаям, когда используется https. Теперь проблема в том, что при работе в расширении Chrome он захватывает расширение Chrome: как протокол и, естественно, канал не открывается в расширении.

Установка базы фоновой страницы для моего appspot URL не меняет document.location, хотя у меня было смутное представление, что так и должно быть. (Не уверен, что говорят стандарты.)

Есть ли обходной путь для этого? Одна мысль состояла в том, чтобы создать мой собственный iframe, загруженный с моего сайта, но тогда он будет вкладывать реальный канал iframe, усложняя вещи.

Интересно, может ли Мойше или кто-то еще из команды App Engine это прокомментировать? Похоже, что это ошибка, и код должен принимать расширения chrome либо путем тестирования протокола и поиска базового тега в качестве альтернативы, либо с помощью какого-либо способа настроить это через объект javascript.

1 Ответ

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

Да, это ошибка. Исправление отправлено, и оно находится в процессе развертывания; вероятно, он выйдет примерно через неделю.

Тем временем ваша идея встроенного в расширение iframe должна работать.

...