Я переглядав документацію Facebook, читаючи про програми для полотна, і натрапив на приклад програми: http://developers.facebook.com/docs/samples/canvas . Однак, читаючи їх приклад, я дуже заплутався щодо використання ними файлів cookie у програмі iframe.
Трохи попередньої історії ...
Я вже погрався з використанням фреймів для вбудованих віджетів (не пов'язаних з Facebook), і виявив, що деякі браузери (Chrome, Safari тощо) мають жорстку політику щодо файлів cookie і не дозволяють встановлювати міждоменні файли cookie у фреймах (Firefox, з іншого боку, дозволяє iframes встановлювати міждоменні файли cookie в iframes). Наприклад, якщо foo.com має iframe із src="http://bar.com/widget"
віджетом iframe, він не зможе встановити файли cookie для bar.com і, отже, матиме проблеми зі збереженням стану в iframe: bar.com буде інтерпретувати кожен запит (включаючи запити ajax) від віджет як новий запит без встановленого сеансу. Я боровся і знайшов спосіб обійти це, використовуючи JSONP і javascript, щоб замість цього встановити файли cookie для foo.com ...
... і так?
Ну, я розглядав приклад програми canvas iframe Facebook і помітив, що їх додаток (розміщений на runwithfriends.appspot.com) може встановити файл cookie u
з поточним ідентифікатором користувача разом із кількома іншими параметрами для runwithfriends. домен appspot.com. Він надсилає цей файл cookie з кожним запитом ... і він працює як у Chrome, так і у Firefox! WTF? Як Facebook обходить обмеження міждоменних файлів cookie в Chrome?
(Я вже знаю відповідь, але я вважав, що це може бути корисно для тих, хто намагається зрозуміти те саме - відповідь я розміщу нижче).