| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/ui_devtools/string_util.h" |
| |
| #include "base/strings/string_util.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "components/ui_devtools/Protocol.h" |
| |
| namespace ui_devtools { |
| namespace protocol { |
| |
| // static |
| std::unique_ptr<Value> StringUtil::parseJSON(const String& string) { |
| DCHECK(base::IsStringUTF8(string)); |
| // TODO(mhashmi): 16-bit strings need to be handled |
| return parseJSONCharacters(reinterpret_cast<const uint8_t*>(&string[0]), |
| string.length()); |
| }; |
| |
| // static |
| void StringUtil::builderAppendQuotedString(StringBuilder& builder, |
| const String& str) { |
| builder.append('"'); |
| base::string16 str16 = base::UTF8ToUTF16(str); |
| escapeWideStringForJSON(reinterpret_cast<const uint16_t*>(&str16[0]), |
| str16.length(), &builder); |
| builder.append('"'); |
| } |
| |
| } // namespace protocol |
| } // namespace ui_devtools |