mozilla / django-browserid

Django application for adding BrowserID support.
Mozilla Public License 2.0
179 stars 80 forks source link

Internet Explorer 11 specific error: "Relay frame could not be found " #286

Closed wiser1 closed 9 years ago

wiser1 commented 9 years ago

Using IE version 11.0.9600.16384 running under Windows 8.1, upon clicking the login button, a Persona window always appears:


https://login.persona.org/sign_in

Error

Please close this window and try again.

Action: Establishing Relay Now: Mon, 27 Apr 2015 19:50:14 GMT Relay frame could not be found


This error does not happen when using Chrome (on Windows or Android) and login happens normally as expected.

I've tried adding:

to the login page, and made sure that IE 11 is not running in compatibility mode, without success.

I used the simple code from https://github.com/pedmiston/ssl_error with Django 1.7.6 and Python 2.7.6 running on Ubuntu 14.04 to reproduce this error using the current django-browserid code installed today with:

pip install -e git+https://github.com/mozilla/django-browserid.git#egg=django-browserid

Can anyone else reproduce this problem (or at least comment that IE 11 works fine for you with django-browserid via HTTP)? Thanks.

Osmose commented 9 years ago

Thanks for the report!

This sounds like a Persona issue rather than a django-browserid issue, but that's not for certain.

I don't have a Windows machine handy to test on, and the IE testing VMs are taking forever for me to download for some reason, so I emailed dev-webdev@lists.mozilla.org to ask if anyone else can help reproduce this problem.

Can you reproduce this issue on https://input.mozilla.org/? They're using the latest released version of django-browserid.

wiser1 commented 9 years ago

Unfortunately no, https://input.mozilla.org/ works fine for me using the same IE 11 setup, so I can't reproduce the issue there.

I should have mentioned that I'm testing django-browserid with http locally on my dev machine(s), whereas input.mozilla.org is using https of course.

My guess is that the combination of http (django-browserid) -> https (Persona popup window) reveals the (IE 11 only) issue?

Thanks for the quick response!

willkg commented 9 years ago

pyvideo uses http and also has an up-to-date django-browserid. You could test it there, too:

http://pyvideo.org/

Osmose commented 9 years ago

I was able to get my hands on an IE11/Windows 8 setup to test on and can't replicate in on either input or pyvideo.

Some helpful people on the mailing list are pointing out that they get that error message when navigating directly to the sign-in page. @wiser1, are you getting the Persona sign-in page in a popup, or is it opening up in the same tab as your site? If it's the latter, it might indicate that somehow instead of calling navigator.id.request to trigger Persona login your site is navigating directly to the sign-in page.

wiser1 commented 9 years ago

@Osmose, I get the Persona sign-in page in a popup.

And, I've since found that I can only replicate the problem when the django-browserid app I'm testing has an IP address like 192.168.0.21. Everything works fine if I give the app a public IP address. I haven't found an easy workaround, so for now I'll just rarely test with IE, and will remember that no good deed goes unpunished by IE ;-). Not sure if it's worthwhile to investigate any further.

Thanks to all who responded and helped me get a handle on this!

Osmose commented 9 years ago

Weeeeeiiiiiiiiiirrrrrrrrdddddd. I'm glad you were able to isolate it so well though.

I agree with the sentiment of "too obscure to worry about". Thanks for the report!