Allow url::SchemeHostPort to hold non-file scheme without port

WebSockets use url::Origin to pass origin info between renderer and
browser. Currently, it cannot hold an origin with non-file scheme and
no port. Chrome extensions have been using such origins, so we need
to keep the channel to convey origin info work for such origins.

BUG=516971
R=sleevi,brettw

Committed: https://crrev.com/1ac9ec7bccd1b5178b18338b10149f36292f5fb6
Cr-Commit-Position: refs/heads/master@{#343895}

Review URL: https://codereview.chromium.org/1272113002

Cr-Commit-Position: refs/heads/master@{#344181}
20 files changed