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);
}