WebSocket: stop removing an iframe in onerror from crashing

There was an issue that if the iframe owning a WebSocket was
synchronously removed in the onerror handler then it would crash the
render process. This was caused by unconditionally calling Close()
without checking the current state.

Fix it.

Also add a web platform test.

Bug: 974667
Change-Id: Iaeb8f96cf600a2c052f06b5b59f4444b02615e83
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1663681
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Adam Rice <ricea@chromium.org>
Cr-Commit-Position: refs/heads/master@{#670061}
2 files changed