-
Notifications
You must be signed in to change notification settings - Fork 25.2k
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
Multi data providers do not work correctly on safari 15.5 #46660
Comments
@KostyaTretyak, @atscott most likely was referring to the missing reproduction and You can read here why this is needed. A good way to make a minimal repro is to create a new app via |
But reproduction and |
I tried to reproduction, but it looks like for this issue need a real backend, not a module that simulates a backend. |
You shouldn't be needing the backend for a minimal repro, you can easily mock/simulate an HTTP operations. import { of } from 'rxjs';
import { delay, first } from 'rxjs/operators';
of({/*response mock */}).pipe(
delay(1000),
first(),
); |
Ok. This reproduction works correctly for you on Safari 15.5? If you click to |
For some reason, the example at https://stackblitz.com/ stopped working. Now I will try to create a repository with reproduction. |
I created a repository with the issue. Please run this app locally in Safari 15.5. (On stackblitz.com for some reason this example still not working) |
@KostyaTretyak, I am unable to replicate this locally. |
The problem can be viewed so far on this page from real life. If you open it in Safari and see that only one HTTP request is sent to the server, and when you open it in Chrome and see that two HTTP requests are sent, then the problem still exists. Maybe this issue can't be reproduction with a fake response from the backend like I did in the repository you just checked. Maybe a problem in the interaction of Please help to solve this problem. Unfortunately, I don't have access to Safari to verify what I'm talking about, but five different people have already reported this problem. It exists objectively, because the same Angular application page should not work differently in two different browsers. |
I am the one of 5 people mentioned. This page shows only JSON in the main part of the post in Safari (without the plugins or the extensions) Desktop 15.5 (17613.2.7.1.8). |
@KostyaTretyak and @lsap, I do understand that there might be an issue. But unfortunately without a minimal reproduction that showcases the problem this is not actionable from our end. Providing a URL of a live application for us to debug, will definitely not going to work out for a number of reasons;
Hence to why a minimal reproduction is paramount. |
Ok, I'll try to figure out how to run this example with a real backend. |
I can reproduce using Safari 15.4, but I'm still unclear on where the culprit is. It's not multi resolvers, that's working as expected. The issue is timing sensitive, as putting a breakpoint in the resolver avoids the issue (so the HTTP requests are further apart), but when the issue does occur you'll observe the following: Concretely, the response body of the first request is reused wholesale for the second request. This seems like a Safari bug, in particular because the URLs are the same and only the It's extremely hard to debug the live site as it's optimized code and a minimum reproduction would be best. I do believe that One thing you could try is to vary the URLs of both endpoints (introduce a second endpoint that you use for the HTML rich content); if that solves the issue then it becomes more likely that this is a race condition in Safari's resource cache (although disabling the resource cache didn't seem to matter) |
After I added the second endpoint, the problem seems to have disappeared. In this case, it is probably possible to close the issue, or not yet? |
The best thing would be to create a minimum repro (ideally without Angular to keep it small) that simulates the same scenario (using |
@JoostK, Thank you very much for your help and patience. |
As for Angular I'm going to close this, as there's no indication that this is an Angular bug. |
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
Which @angular/* package(s) are the source of the bug?
router
Is this a regression?
I don't know that.
Description
On my website Angular calls two data providers like this:
In Google Chrome this code works correctly and in console you can see this two requests, but in Safari 15.5, Angular 13.3.8 calls only
ApiPostLeadResolver
and incorrectly set the result tothis.activatedRoute.snapshot.data.result2
.Please provide a link to a minimal reproduction of the bug
I can't provide link to a minimal reproduction because here need use backend. But if you open website with DevTools in Chrome and in Safari you can see different during running HTTP requests to resolve the data providers.
Please provide the exception or error you saw
Please provide the environment you discovered this bug in (run
ng version
)Anything else?
This issue is actually reopened from this. @atscott closed it without explaining what information is missing.
The text was updated successfully, but these errors were encountered: