Chrome popup stops launching if transition is "slideup" #5094

Closed
maiku2000 opened this Issue Sep 27, 2012 · 7 comments

Projects

None yet

5 participants

@maiku2000

Tested Versions: jquery.mobile 1.2.0 beta and jquery.mobile 1.2.0 rc2

I am not sure what other possible combinations may cause this problem but let me describe my exact situation:

I have a popup that is launched by a button in the footer of the page and I use jinja to include that footer in every html pagge. (To get around id conflicts, I assigned a hash at first but then moved to using a class that I called the popup on programmatically, the problem happens in both situations). This popup contains an accordion which contains links to the other pages and the popup is displayed with a "slideup" transition.

In desktop Chrome only (latest I tested on was 22.0.1229.79 and it seems to work in Android 3.0's Chrome and on desktop FireFox 12), the popup stops launching if you do the following:

  • Launch the popup
  • Use the link to navigate to another page
  • Launch the popup on this page
  • Use the link to navigate back to the first page

After a lot of console.log debugging I was able to find that the $mobile.popup.active mutex gets set in open and is supposed to be released in _closePrereqDone. The problem is that the after or during(?) the transition, the popup may not execute _closePrereqDone and so the mutex is never released and thus the popup cannot launch a 2nd time.

My workaround at the moment is unfortunately to set transition to "none".

@jaspermdegroot
Member

@maiku2000

Thanks for reporting the issue.

We really need a test page to be able to look into this. See our Contributing Guidelines for our JS Bin template.
Just try to reproduce the issue with a minimum of code and leaving out Jinja.

Did you test on OS X, Linux or Windows?
Does the same transition work when you test it with this page: http://jquerymobile.com/test/docs/pages/page-transitions.html ?

@mwidman
mwidman commented Sep 27, 2012

Hello,

Sorry, I did not see the guideline. To recap:

a. Test Page: http://jsbin.com/uzaret/7

b. Steps to Reproduce:

  1. Click the menu in the footer and select "New Page"
  2. Click the menu in the footer and select "Old Page"

c. Expected Outcome: The popup should appear no matter how many times you go back and forth

d. Actual Outcome: After navigating back to the first page, the popup no longer pops up.

e. Platform/Browser: Windows 7 Chrome 22.0.1229.79 (fails), Windows 7 Firefox 15 (works normally)

f. jQuery Mobile: 1.2.0 RC2, jQuery: 1.8.2

The transitions work on the page you provided but it did not have an example of popups which I believe this problem is specific to (having debugged far enough to find that it is the $.mobile.popup.active mutex that is preventing the popup from appearing again).

Thanks.

@jaspermdegroot
Member

hi @mwidman

Thanks for the test page and additional information. I can confirm the issue. You said your work-around is setting transition "none", but I still see the issue when I do that. [update: Correction. I didn't set the transition to none on both pages. I now see that the issue indeed doesn't occur without the transition.] We are going to look into this.

I changed the test page a little bit to make it easier to test and to avoid non-unique ID's in the DOM (#navPopup): http://jsbin.com/uzaret/20

@gabrielschulhof
Contributor

I can't reproduce this on Google Chrome Version 23.0.1271.6 dev ...

@gabrielschulhof
Contributor

OK, I downgraded to Google Chrome Version 22.0.1229.79 and I still can't reproduce this problem. Running on Fedora 15 (Linux).

@chee
chee commented Oct 2, 2012

I can confirm it on Chrome Version 24.0.1283.0 on OS X

@jaspermdegroot
Member

@gabrielschulhof - The test page I posted in my previous comment was still using transition "none" (my bad). I updated it. Can you test again?

@gabrielschulhof gabrielschulhof added a commit that referenced this issue Oct 16, 2012
@gabrielschulhof gabrielschulhof [popup] Re-introduce interruptible transitions -- Fixes #5094
Conflicts:

	js/widgets/popup.js
e09195f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment