For PLATFORM(IOS), 32-bit apps launch 64-bit Web processes.
alignof(TransformationMatrix) = 8 in the 64-bit Web process, but it's 4 in the app.
TransformationMatrix is encoded using SimpleArgumentCoder.
SimpleArgumentCoder respects alignment when copying into the IPC message buffer (Sam says this is important but I don't really understand; Sam or Anders, if you want to clarify that would be cool!).
This means that the message decode fails, and the UI process kills the Web process, whenever you have a TransformationMatrix in a message, which happens a lot with UI-Side Compositing.
Various potential fixes:
1. Don't use a SimpleArgumentCoder here; manually encode/decode the 16 doubles.
2. Force the alignment of TransformationMatrix to be the same everywhere (we already force it to 16 byte alignment on some platforms).
3. Don't copy into the message buffer respecting alignment (it sounds like this is a nonstarter).
Going to post a patch for #1, but we can discuss alternatives.
Also going to check if AffineTransform is also affected.
Created attachment 237475 [details]
Comment on attachment 237475 [details]