Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broken on firefox 45+ #548

Closed
GuillaumeLeclerc opened this issue Apr 6, 2016 · 33 comments
Closed

Broken on firefox 45+ #548

GuillaumeLeclerc opened this issue Apr 6, 2016 · 33 comments

Comments

@GuillaumeLeclerc
Copy link

Hello,

The demo website is broken under Firefox 45.

The arrows make you move in the desired direction but not following the "path" of the presentation. I mean we are able to freely able to "move the camera". Zooms are also not working.

This was tested under two different Linux distributions with the same behavior.

@FagnerMartinsBrack
Copy link
Member

This is probably a bug in the browser because it always worked and we didn't changed anything recently, can you post the bugzilla ticket here so we can track it? If there is no issue reported in Firefox, can you please report one?

Similar issues already happened in the past on different intervals, see #324 (comment) and #443 (comment)

@GuillaumeLeclerc
Copy link
Author

What should I put in the mozilla bug report ? I think it's actually better to find what's buggy before no ?

I will try to find is the problem is specific to Linux. Testing on windows right now

@FagnerMartinsBrack
Copy link
Member

@GuillaumeLeclerc I just tested the demo http://impress.github.io/impress.js in Firefox 45.0.1 on Mac and everything is working. Can you please show a gif using LICECap that shows the issue?

@GuillaumeLeclerc
Copy link
Author

Of course. Doing it right now

@GuillaumeLeclerc
Copy link
Author

http://i.giphy.com/3o85fZaABkPYRDzsOY.gif

Tested under :

  • ArchLinux
  • Ubuntu 14.04 LTS

@FagnerMartinsBrack
Copy link
Member

@GuillaumeLeclerc I can't see your mouse pointer, are you dragging everything with it in those platforms? Have you tried Firefox in another platform than the ones that are showing the problem?

@bartaz
Copy link
Member

bartaz commented Apr 8, 2016

@GuillaumeLeclerc @FagnerMartinsBrack this could be platform specific issue, may be even related to hardware differences. I checked in my Ubuntu 14.04 LTS, Firefox 45.0 and it seems fine.

So it's hard to say if the bug is in firefox, specific distribution of firefox, or more some hardware/platform configuration causes this.

@GuillaumeLeclerc
Copy link
Author

@FagnerMartinsBrack My mouse is only moving when I click on the "finish screen capture" icon. So no I'm not dragging anything.

I tested on two laptop Asus they were running on Intel HD "GPU's"

I also tested on a Mac book air and it was working

@FagnerMartinsBrack
Copy link
Member

My mouse is only moving when I click on the "finish screen capture" icon. So no I'm not dragging anything.

There is no "finish screen capture" icon in the demo, are you referring to the tool you are using to record the screen? What does that have to do with the problem?

As @bartaz said above, this could be a specific issue on a specific platform. Without being able to reproduce, it is impossible to provide a fix for the problem.

@GuillaumeLeclerc The only thing you can do here is to create a simple and valid CSS 3D example that proves it is failing in Firefox on your machine and post that in Mozilla Bug tracker so that they can fix there. You can also post here so we can take a look and try to guess what could be the problem, but we make no promises because all evidences so far suggests this is a problem either with something in your environment, or a browser specific issue that should be handled by Mozilla.

@GuillaumeLeclerc
Copy link
Author

@FagnerMartinsBrack Sorry I misunderstood your sentence I thought you were saying you saw my mouse moving therefore I might be dragging something.

I don't know any internals of Impress.js do you have any hints what I should be testing ? It does not seem to be related to the 3d though. It seems to me that it's just not following the "trail" of the presentation (as if the camera was in spectator mode).

What do you think ?, Do you have any information on how it's implemented in Impress.js ?

@FagnerMartinsBrack
Copy link
Member

@GuillaumeLeclerc

I don't know any internals of Impress.js do you have any hints what I should be testing ?

You don't need actual deep knowledge of the internals. Did you see the link I posted? http://sscce.org/ is a technique that you can use to reduce the problem by removing code that is not relevant. In the end you will end-up with a small piece of code that will show exactly where the root cause of the problem is.

It does not seem to be related to the 3d though. It seems to me that it's just not following the "trail" of the presentation (as if the camera was in spectator mode).

It's ok, I just used CSS 3D as an example in case the problem is, in fact, with CSS 3D. Ideally if you use SSCCE you will know exactly where the problem lies with some effort.

In this case unfortunately we need a simplified example that we can look into, otherwise all we can do is speculate, and it is too hard to find an objective answer through speculation.

@GuillaumeLeclerc
Copy link
Author

Thank you! . I will try this as soon as I have a little time (Wednesday I think).

@FagnerMartinsBrack
Copy link
Member

Ping @GuillaumeLeclerc

@GuillaumeLeclerc
Copy link
Author

Sorry I've been working a lot lately. I'll try tomorrow. Thank you for pinging

@FagnerMartinsBrack
Copy link
Member

Ping @GuillaumeLeclerc again :)

@GuillaumeLeclerc
Copy link
Author

All new information I have is that it's still broken on firefox 46 :/

@GuillaumeLeclerc
Copy link
Author

I tried and it is reproducible with a docker image. I think you could find the problem easily if you can run it yourself.

Dockerfile

FROM ubuntu:14.04

RUN apt-get update && apt-get install -y firefox

# Replace 1000 with your user / group id
RUN export uid=1000 gid=1000 && \
    mkdir -p /home/developer && \
    echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd && \
    echo "developer:x:${uid}:" >> /etc/group && \
    echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer && \
    chmod 0440 /etc/sudoers.d/developer && \
    chown ${uid}:${gid} -R /home/developer

USER developer
ENV HOME /home/developer
CMD /usr/bin/firefox

build the image
docker build -t firefox .

start the image (assuming you have linux, I don't know how to do it on other platforms)

docker run -ti --rm \
       -e DISPLAY=$DISPLAY \
       -v /tmp/.X11-unix:/tmp/.X11-unix \
       firefox

The advantage with docker is if you can't reproduce it then we are sure it's hardware related.

@FagnerMartinsBrack
Copy link
Member

Well, if there is no simple example that fails and we can reproduce, then there is nothing we can do.
I really recommend opening an issue in Firefox bugzilla and posting it here so we can track.

I will close this for now but can reopen once there is some action to make. Thanks!

@FagnerMartinsBrack
Copy link
Member

FagnerMartinsBrack commented May 14, 2016

Sorry, posted the comment seconds after yours so it didn't updated for me :O.

@FagnerMartinsBrack
Copy link
Member

FagnerMartinsBrack commented May 14, 2016

@GuillaumeLeclerc I am not used to docker and have no time to debug right now, can you please do this test in another computer and reduce the problem in a simple snippet? Thanks!

@GuillaumeLeclerc GuillaumeLeclerc changed the title Broken on firefox 45 Broken on firefox 45+ May 14, 2016
@GuillaumeLeclerc
Copy link
Author

I already tried on three computer but they are all laptops from the same brand. The simple snippet that is not working is the demo of imperss.js on it's website (http://impress.github.io/impress.js/#/bored)

Since @bartaz is running linux and could not reproduce it. It might be a good thing if he could try the docker image. If he don't see it then it might be (brand, grpahic card related)

@FagnerMartinsBrack
Copy link
Member

The simple snippet that is not working is the demo of imperss.js on it's website

That is not a simple snippet. Saying the demo doesn't work doesn't help. What we need is a simple code using css 3D that reproduces the issue so that we can confirm this is not some extension or whatever that is causing the issue.

It might be a good thing if he could try the docker image. If he don't see it then it might be (brand, grpahic card related)

Ok. Can you post a step by step of how to run your image in Mac? I will run it here.

Here are my other tests using the demo page:

  • I have just tested this in a Windows 7 Desktop using Firefox 43. In that version there are some artifacts on the screen between each transition.
  • I have also upgraded the browser and tested in the same machine using Firefox 44.0.2. In that version the artifacts are gone and the demo works as expected.

All evidence so far points out for a Firefox bug in the brand you are using. I will run the docker image just to be sure it is a Firefox bug, but I need a step by step of how to run it because I have no idea how Docker works. Thanks!

@GuillaumeLeclerc
Copy link
Author

I'm really sorry but I don't know how to do it on mac. Since docker only works on Linux (you need to emulate a linux distribution to make it work on mac).

For the code snippet. I really don't think it's 3D transform that is the problem. The problem seems to be related to input handling. The problem is by pressing arrows I'm able to move in the direction I want as if it was using a "free camera" I could control with my arrow. You can take a look at the GIF I posted

@FagnerMartinsBrack
Copy link
Member

FagnerMartinsBrack commented May 14, 2016

Docker doesn't work only in Linux. I can make it work on mac and have it installed. It is just that I need a step by step on how to run everything so that I don't get stuck on it. Can you do a step by step on linux so that I can try it out on mac? Thanks!

@GuillaumeLeclerc
Copy link
Author

As far as I know when you install it on Mac it uses virtual box under the hood to run the Linux distribution boot2docker. But here is the procedure.

  • Create a file named Dockerscript. And paste the content I gave in my previous post.
  • run docker build -t firefox .
  • run the command I gave before to start the image.

I think the last step will not work out of the box because it assume you have a server X and give the X socket to the container. It seems it is possible to make it work using this moby/moby#8710

@FagnerMartinsBrack
Copy link
Member

FagnerMartinsBrack commented May 14, 2016

The docker build -t firefox . command did't work with ~/Downloads/Dockerfile having the following content:

FROM ubuntu:14.04

RUN apt-get update && apt-get install -y firefox

# Replace 1000 with your user / group id
RUN export uid=1000 gid=1000 && \
    mkdir -p /home/developer && \
    echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd && \
    echo "developer:x:${uid}:" >> /etc/group && \
    echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer && \
    chmod 0440 /etc/sudoers.d/developer && \
    chown ${uid}:${gid} -R /home/developer

USER developer
ENV HOME /home/developer
CMD /usr/bin/firefox

The error:

➜ Downloads docker build -t firefox .
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /Users/fagnerbrack/Downloads/Dockerfile: no such file or directory

Can you please provide a single zip file that contains everything that is necessary to work in linux with a single command instead of having to rely in copy/paste? This way we can make sure the invariants stay the same when running the example.

@GuillaumeLeclerc
Copy link
Author

GuillaumeLeclerc commented May 14, 2016

Sure. Doing it right now.

To be easier I'm even building the image and put it on docker hub. This way you will only have to run it.

@GuillaumeLeclerc
Copy link
Author

Ok I built the image and I remarked it's working on it. I thought it was not because I already had Firefox running and it was using my own Firefox. If I close my local Firefox and only use the one in docker it is working perfectly.

So the bug is not present on a fresh Ubuntu 14.04. The bug is even weirder than I thought.

I will try to use other distributions, and see if I can reproduce it.

If I can't reproduce it maybe we can close this and wait for more people to report the bug. (We are only 2 who can reproduce it)

@FagnerMartinsBrack
Copy link
Member

I will try to use other distributions, and see if I can reproduce it.

👍

This could be some software that is conflicting in your installation.

@GuillaumeLeclerc
Copy link
Author

I tried Ubuntu 12.04, FF 46, and it is still working fine. I agree with you, it must be a library me and my coworker we hae installed that mess up with Firefox.

I think it's not related to impressjs itself. Maybe we can close this ?

@FagnerMartinsBrack
Copy link
Member

FagnerMartinsBrack commented May 14, 2016

I think it's not related to impressjs itself. Maybe we can close this ?

Ok then. If you manage to find a problem with impress.js, let us know. Thanks.

@MichaelHuelsen
Copy link

Hey guys,
I had the same behaviour in FF 45.5.1 and FF 50+ that @GuillaumeLeclerc described.
"Moving the camera" around to view the canvas with the arrow keys was possible, but the smooth presentation mode didn't kick in since the arrow-clicking/spacebar-clicking was not captured correctly.

In my case, I figured out that there was another plugin competing with impress.js to capture the keyboard inputs. I am using "vimperator" to operate Firefox mouse-free.

Disabling that plugin and restarting Firefox makes impress.js "work" again, it never stopped working I guess. So make sure that there are no other plugins installed that may interfere with impress.js.

Regards

@GuillaumeLeclerc
Copy link
Author

@MichaelHuelsen I also have vimperator. So we are sure this is the problem :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants