Surface synchronization: Fix missing surfaces

Prior to this CL, when an OOPIF crashed, we kept the fallback surface
around. This caused a massive stream of missing surfaces to be reported
when the primary surface was set on ScreenInfo change or FrameRects change.

This CL addresses the problem in multiple ways:

1. We clear the fallback_surface_id_ in ChildFrameCompositingHelper when
   we report ChildFrameGone. This ensures that ChildFrameCompositingHelper
   does not re-embed the fallback surface that is now gone.
2. We track the crashed state of a child frame, and prevent updating
   the primary surface ID in ChildFrameCompositingHelper.
3. Instead (this is a tweak), we position the sad page icon as a function
   frame size and device scale factor.

Note, neither RenderFrameProxy nor ChildFrameCompositingHelper have unit
tests at the moment so no unit test is included yet. I'm going to try to
write a unit test for this change.

Change-Id: I1f25ed5e446612a7015c2717e6d2005241241942
Bug: 802809, 672962
Reviewed-on: https://chromium-review.googlesource.com/881831
Reviewed-by: Antoine Labour <[email protected]>
Reviewed-by: Saman Sami <[email protected]>
Commit-Queue: Fady Samuel <[email protected]>
Cr-Commit-Position: refs/heads/master@{#534925}
10 files changed