-
Notifications
You must be signed in to change notification settings - Fork 43
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
Bounds-check CoreGraphics paths because Facebook sucks #453
Comments
45.4 changepack: |
Changes between them (all other changesets match and are identical): 312309 -> 312353 new files in 45.5 |
The three differences relate to differing landings for the MP3 fix in that version. Everything else is the same, so this is not the cause. |
312362: mostly MP3, but has a change to warmups and JS JIT inline depth Unfortunately this is most likely the latter. definitely unrelated: |
Stack traces taken from failing processes at various times:
No change by disabling antialiasing or other options. The thought is that somehow Facebook violated an internal constraint on a native-endian float array and then used it as int to construct a bad path which causes CoreGraphics to bug out. Switching canvas to Cairo doesn't crash, though the images still don't display. |
Backing out the compiler changes in 312362 didn't change anything, and the 2D code in |
This does affect Leopard WebKit as well - so I'm quite sure it's not related to IonPower-LE. |
I wonder if the cause for those high values passed to CoreGraphics has to do with little endian typed arrays... |
I guess that would be a way to prevent a malicious (or in this case batty) script from hanging up the browser, though it's annoying to have to check that every time. My theory is since TenFourFox doesn't byteswap floats and doubles for performance reasons, Facebook may have stored something there and then accessed the same tract of memory as an int, which is byteswapped (yielding an endian failure). But I thought LWK does byteswap floats and doubles as well? |
Leopard WebKit doesn't byteswap floating point values anymore since I didn't see any sense in doing so. |
By the way, CGPathGetBoundingBox is quite fast in execution, since it simply walks the path elements considering any points, including virtual control points, for the total size. |
It depends, it might give NaN or some absurd value. I imagine it would only take one redonkulous coordinate to cause this hang. I think you're right, since even an innocent error could hang up the browser, and the hang does not occur when Cairo is the canvas backend, so this is just something that will have to be done. I'll put it in the next beta just in case this regresses something unexpected. The workaround will be for affected users to turn on Cairo canvas. |
The hang no longer occurs. |
I don't know if this should go in a new bug or if it's covered by the "Like" button fix in FPR6. The problem is on the Activity Log page, see screenshot at https://tinyurl.com/y78vt3nz Clicking the blue "Review x item(s)" button or simply hovering over it will lock up the browser reliably even if canvas.azure backends is set to Cairo. There is no animation coming up with this button except it gets a little darker when you hover over it or click it. Hovering or clicking any of the items in the Filters menu to the left also locks up the browser in the same way. Tested fresh profile, disabled ion, baseline, set content.azure backends to Cairo as well, etc., no relation. The regression window, again, is 45.4.0 --- 45.5.0b1. So this looks like the same problem, but it's not fixed by switching to Canvas. |
I'm not sure how to test it exactly as you did since I don't get a "Review # Item(s)" button, but I can click the items in the Filters menu in FPR6 and they don't hang either. So I'm going to assume the same fix covers it. I'll reopen if it does not, though I'll need some additional STRs in that case. |
Tenny Fox now has something in their account that needs to be reviewed. Problem is that this account doesn't have the bug on the Activity page (yet). I've seen this in my private account only so far. (They don't roll out changes to all accounts at once.) I'll test it as soon as FPR6 is available. |
Still seems OK here. Perhaps it hasn't rolled out to this account, as you say.
|
Both "like button" and "activity log" are fixed for my FB profile in FPR6b1. |
Both "like button" and "activity log" are fixed for my FB profile in FPR6b1.
Excellent! (I assume you already turned Cairo off)
|
Of course I turned Cairo off :) |
Of course I turned Cairo off :)
Just checking :-D
|
Uplifted and regression window confirmed from https://tenfourfox.tenderapp.com/discussions/problems/8490-facebook-like-causes-lockup
The text was updated successfully, but these errors were encountered: