whitmer / canvabadges

MIT License
29 stars 14 forks source link

Canvabadges doesn't seem to work with IE #4

Closed Kulgar closed 11 years ago

Kulgar commented 11 years ago

Hi again! :)

I have tried to access a badge within my Canvas application using IE9 as a student and I got the error:

"Launch parameters lost"

I investigated a little bit and it seemed that the session variable wasn't readable at all by the application. Indeed, this error occurs because those tests fail:

# canvabadges/lib/auth.rb line 84
if !session['domain_id'] || !session['user_id'] || !session['launch_badge_config_id'] || !session['source_id']
return error("Launch parameters lost")
end

By doing a little bit more investigations, I have found that this is closely related to the way IE handles cookies created in iframes. It purely rejects them if we don't send any P3P headers.

So... I have found a very small trick here: https://coderwall.com/p/h-rjsq and implemented it in my own canvabadges application. And now, I do can access badges from IE in my canvas application.

Are you interested in solving this problem? I could add a commit to my pull request to solve it if you want.

Regards! Kulgar, aka Regis.

whitmer commented 11 years ago

Yep, feel free to issue the pull request and I'll test. I honestly haven't done any IE testing yet, so thanks for doing my QA work for me :-P.

Kulgar commented 11 years ago

No problem! I hope my poor English doesn't bother you too much... because... I think I will have more and more fixes / enhancements to offer while I am discovering and using Canvas LMS and Canvabadges... and so you will have to suffer more and more my English... haha :D

whitmer commented 11 years ago

Heh, I didn't even notice. Thought you were a native speaker :-). Mostly I'm just glad to have some help!

Kulgar commented 11 years ago

Solved it. As in the article I pointed to, I've only added the rack-iframe gem. :)

Kulgar commented 11 years ago

Also @whitmer I'd like to add a wiki page to explain how to deploy canvabadges using Passenger + Apache. How may I create such a wiki page? Would you like me to add this wiki page on my fork and then copy/paste to your repository?

I've never added a wiki page to a project before, so... I don't know how it works. Thanks!