On tapping cancel button web page navigates back to previous page |
||||
Issue descriptionApp Version: 71.0.3578.54 beta iOS Version: 11.3.1 , 11.4.1, 12.0.1, 12.1 Device: iPhone 5S, iPhone 7, iPhoneXR (iPhone Only) URL: Steps to reproduce: 1. Launch Chrome > navigate to flipkart.com 2. Add something in cart > tap on cart option 3. tap on enter pincode > tap on cancel 4. Repeat step 3 >> observe Observed results: On tapping cancel button web page navigates back to previous page Expected results: On tapping cancel button web page should not navigate back to previous page Number of times you were able to reproduce: 5/5 Bug reproducible after clean install: Yes Bug reproducible after clearing cache and cookies: Yes Bug reproducible on Chrome Mobile on Android: No Bug reproducible on Safari/Firefox: Firefox: No Safari: No Bug reproducible on current stable build (App Version, iOS Version): Yes on 70.0.3538.75, iOS Version-11.3.1 Bug reproducible on the current beta channel build (App Version, iOS Version): Yes on-71.0.3578.54, iOS Version- 11.3.1 Videos: Chrome : https://drive.google.com/file/d/1erffl5s4ZYvM1tEHLo8MUVK_QUHkUb_S/view?usp=sharing Safari : https://drive.google.com/file/d/1Nq0n2er1FZLC0xE3X-xenk7WndsRJmme/view?usp=sharing Firfox: https://drive.google.com/file/d/181YYAEDgolFZFQ8UVuKTMYZpiPa6XiVE/view?usp=sharing
,
Nov 23
,
Nov 23
This is caused by LegacyNavigationManager's async handling of history.go, history.pushState and history.replaceState. I verified that it's fixed when slim nav (--enable-features=SlimNavigationManager). This website uses replaceState/pushState to create states in the history, instead of loading new URLs. This may be a common pattern for all Single Page Apps. When opening the pincode popup, the webpage executes these two steps: - replaceState(stateObj, '', '#dialogOpen') - pushState(stateObj, '', '#dialogOpen') I think because the pushState URL is a hash change, legacy navigation code failed to realize that a new navigation item is needed. When the popup is dismissed, the webpage calls history.back(), expecting to go back to the cart page, but instead, Bling intercepts history.back() and calls NavigationManager->GoBack(). This has the effect of going back to the flipkart home page. When this process is repeated, again no new history entry is created when user taps on "add" for pincode. When user taps on "cancel", Bling calls NavigationManager->GoBack() again, this time actually going back to NTP.
,
Nov 26
|
||||
►
Sign in to add a comment |
||||
Comment 1 by vbarigela@google.com
, Nov 20