[url] Properly treat '#' as marking the start of the fragment in data URIs

This CL aligns Chromium with the URL spec, such that we consider '#' to
mark the end of the content and the start of the fragment section only.
GURL::GetContent was updated to reflect this, with a special case for
javascript URLs specifically (as their spec mentions including '#' in
the URL content).

This is a reland of I49c6f4d739a2dd42eecc9947f8e75071b84e9be7. Recent data
shows that kDataUriHasOctothorpe is now rare on WebView, and the Chrome
side data has also shifted to be a long tail of smaller users. Plan is to
land this change again and see if anything breaks.

TBR=rdevlin.cronin@chromium.org,mlamouri@chromium.org,pfeldman@chromium.org,boliu@chromium.org

Bug: 123004
Change-Id: Ib72b8eef4bd61db4f2488e522d3d4cfcfa8a1a14
Reviewed-on: https://chromium-review.googlesource.com/c/1297172
Commit-Queue: Stephen McGruer <smcgruer@chromium.org>
Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: David Benjamin <davidben@chromium.org>
Reviewed-by: Eugene But <eugenebut@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604399}
31 files changed