Skip base::string16 if not necessary for WebString <-> ASCII conversion

One common way to get ASCII string from WebString is to do
base::UTF16ToASCII(webString)

but this always goes through string16 even when webString only
contains ASCII and is already a 8-bit string (which is expected).

This patch adds following WebString methods to help optimizing
WebString <-> ASCII conversions:

- WebString::ascii() ... returns ascii std::string, which skips string16 conversion
  for 8-bit cases. Internally DCHECKs if it contains non-ascii chars
- WebString::containsOnlyASCII() ... should be more efficient than calling
  base::IsStringASCII() on WebString (which incurs string16 conversion)
- WebString::fromASCII() ... does same as fromLatin1() but with DCHECK

Split from https://codereview.chromium.org/2444873002/

BUG=661895

Review-Url: https://codereview.chromium.org/2469353003
Cr-Commit-Position: refs/heads/master@{#429834}
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index da60867b..14af02a1 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -1331,7 +1331,7 @@
 
 void RenderThreadImpl::RegisterSchemes() {
   // chrome:
-  WebString chrome_scheme(base::ASCIIToUTF16(kChromeUIScheme));
+  WebString chrome_scheme(WebString::fromASCII(kChromeUIScheme));
   WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(chrome_scheme);
   WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs(
       chrome_scheme);
@@ -1339,11 +1339,11 @@
   WebSecurityPolicy::registerURLSchemeAsCORSEnabled(chrome_scheme);
 
   // chrome-devtools:
-  WebString devtools_scheme(base::ASCIIToUTF16(kChromeDevToolsScheme));
+  WebString devtools_scheme(WebString::fromASCII(kChromeDevToolsScheme));
   WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(devtools_scheme);
 
   // view-source:
-  WebString view_source_scheme(base::ASCIIToUTF16(kViewSourceScheme));
+  WebString view_source_scheme(WebString::fromASCII(kViewSourceScheme));
   WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(view_source_scheme);
 }