They don't really belong in PeerConnection because the state at that level can change when a transport channel is removed. That makes almost any state transition possible. The asserts are now in P2PTransportChannel (the equivalent to IceTransport in the spec). Currently it has a reduced set of states, that don't even take into account writability, but I plan to change that soon. BUG=webrtc:4757 R=pthatcher@webrtc.org Review URL: https://codereview.webrtc.org/2005573002 . Cr-Commit-Position: refs/heads/master@{#12937}