Use ASCII case conversion and fewer copies in GetWindowFeaturesFromString.

All valid inputs are ASCII, and ASCII case conversion is currently done on
both the key and value after the Unicode case conversion. While here, use
StringView to just access into the ASCII-lowered buffer without copying out
substrings for each key and value, since they're only read.

Bug: 627682
Change-Id: Ibe11bd111205c286efb12273e006837f57254e19
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1575125
Reviewed-by: Hayato Ito <hayato@chromium.org>
Commit-Queue: Jeremy Roman <jbroman@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#652672}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f60a2b021addf6f60887d7517dc6ecb5c86f0a83
1 file changed
tree: f225e3b85dbe05eff84fc040c73bc37192177147
  1. abseil-cpp/
  2. accessibility-audit/
  3. accessibility_test_framework/
  4. adobe/
  5. afl/
  6. android_build_tools/
  7. android_crazy_linker/
  8. android_data_chart/
  9. android_deps/
  10. android_media/
  11. android_opengl/
  12. android_platform/
  13. android_protobuf/
  14. android_sdk/
  15. android_support_test_runner/
  16. android_swipe_refresh/
  17. android_system_sdk/
  18. apache-mac/
  19. apache-portable-runtime/
  20. apache-win32/
  21. apk-patch-size-estimator/
  22. apple_apsl/
  23. arcore-android-sdk/
  24. ashmem/
  25. auto/
  26. axe-core/
  27. bazel/
  28. binutils/
  29. blanketjs/
  30. blink/
  31. boringssl/
  32. bouncycastle/
  33. breakpad/
  34. brotli/
  35. bspatch/
  36. byte_buddy/
  37. cacheinvalidation/
  38. cct_dynamic_module/
  39. ced/
  40. chaijs/
  41. checkstyle/
  42. chromevox/
  43. cld_3/
  44. closure_compiler/
  45. colorama/
  46. crashpad/
  47. crc32c/
  48. custom_tabs_client/
  49. d3/
  50. dav1d/
  51. decklink/
  52. devscripts/
  53. dom_distiller_js/
  54. emoji-segmenter/
  55. errorprone/
  56. espresso/
  57. expat/
  58. feed/
  59. flatbuffers/
  60. flot/
  61. fontconfig/
  62. freetype/
  63. fuchsia-sdk/
  64. gestures/
  65. gif_player/
  66. glfw/
  67. glslang/
  68. google-truth/
  69. google_android_play_core/
  70. google_appengine_cloudstorage/
  71. google_input_tools/
  72. google_toolbox_for_mac/
  73. googletest/
  74. gradle_wrapper/
  75. grpc/
  76. gson/
  77. guava/
  78. gvr-android-keyboard/
  79. gvr-android-sdk/
  80. hamcrest/
  81. harfbuzz-ng/
  82. hunspell/
  83. iaccessible2/
  84. iccjpeg/
  85. icu4j/
  86. ijar/
  87. ink/
  88. inspector_protocol/
  89. instrumented_libraries/
  90. intellij/
  91. isimpledom/
  92. jacoco/
  93. jinja2/
  94. jsoncpp/
  95. jsr-305/
  96. jstemplate/
  97. junit/
  98. khronos/
  99. lcov/
  100. leveldatabase/
  101. libaddressinput/
  102. libaom/
  103. libcxx-pretty-printers/
  104. libdrm/
  105. libevdev/
  106. libFuzzer/
  107. libjingle_xmpp/
  108. libjpeg/
  109. liblouis/
  110. libovr/
  111. libphonenumber/
  112. libpng/
  113. libprotobuf-mutator/
  114. libsecret/
  115. libsync/
  116. libudev/
  117. libusb/
  118. libvpx/
  119. libwebm/
  120. libwebp/
  121. libxml/
  122. libXNVCtrl/
  123. libxslt/
  124. logilab/
  125. lzma_sdk/
  126. mach_override/
  127. markdown/
  128. markupsafe/
  129. material_design_icons/
  130. mesa_headers/
  131. metrics_proto/
  132. microsoft_webauthn/
  133. minigbm/
  134. minizip/
  135. mocha/
  136. mockito/
  137. modp_b64/
  138. motemplate/
  139. mozilla/
  140. netty-tcnative/
  141. netty4/
  142. node/
  143. nvml/
  144. objenesis/
  145. ocmock/
  146. openh264/
  147. openscreen/
  148. openvr/
  149. opus/
  150. ots/
  151. ow2_asm/
  152. pexpect/
  153. pffft/
  154. ply/
  155. polymer/
  156. proguard/
  157. protobuf/
  158. protoc_javalite/
  159. pycoverage/
  160. pyftpdlib/
  161. pyjson5/
  162. pylint/
  163. pymock/
  164. pystache/
  165. Python-Markdown/
  166. pywebsocket/
  167. qcms/
  168. quic_trace/
  169. qunit/
  170. r8/
  171. re2/
  172. requests/
  173. rnnoise/
  174. robolectric/
  175. s2cellid/
  176. sfntly/
  177. shaderc/
  178. simplejson/
  179. sinonjs/
  180. smhasher/
  181. snappy/
  182. speech-dispatcher/
  183. spirv-cross/
  184. spirv-headers/
  185. SPIRV-Tools/
  186. sqlite/
  187. sqlite4java/
  188. sudden_motion_sensor/
  189. tcmalloc/
  190. test_fonts/
  191. tlslite/
  192. ub-uiautomator/
  193. unrar/
  194. usb_ids/
  195. usrsctp/
  196. v4l-utils/
  197. vulkan/
  198. wayland/
  199. wayland-protocols/
  200. wds/
  201. web-animations-js/
  202. webdriver/
  203. webgl/
  204. webrtc_overrides/
  205. webxr_test_pages/
  206. widevine/
  207. win_build_output/
  208. woff2/
  209. wtl/
  210. xstream/
  211. yasm/
  212. zlib/
  213. .gitignore
  214. BUILD.gn
  215. DEPS
  216. libjpeg.gni
  217. OWNERS
  218. PRESUBMIT.py
  219. README.chromium
  220. README.chromium.template