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

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

Cr-Commit-Position: refs/heads/master@{#343895}
19 files changed