Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1775)

Unified Diff: base/json/json_writer.h

Issue 8505033: Allow JSONWriter and JSONValueSerializer to omit binary values when instructed to do so. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix chrome\browser\policy\configuration_policy_handler_chromeos.cc Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/json/json_value_serializer.cc ('k') | base/json/json_writer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/json/json_writer.h
diff --git a/base/json/json_writer.h b/base/json/json_writer.h
index 1eeecb913ac8d0c283bffc172acdf606b9cbefe2..88c7d58101bf5ca69b5c53a4c233564d828d97ac 100644
--- a/base/json/json_writer.h
+++ b/base/json/json_writer.h
@@ -17,6 +17,17 @@ class Value;
class BASE_EXPORT JSONWriter {
public:
+ enum Options {
+ // Do not escape the string, preserving its UTF8 characters. It is useful
+ // if you can pass the resulting string to the JSON parser in binary form
+ // (as UTF8).
+ OPTIONS_DO_NOT_ESCAPE = 1 << 0,
+
+ // For values of binary type, the value (and key if within a dictionary)
+ // will be omitted from the output.
+ OPTIONS_OMIT_BINARY_VALUES = 1 << 1
+ };
+
// Given a root node, generates a JSON string and puts it into |json|.
// If |pretty_print| is true, return a slightly nicer formated json string
// (pads with whitespace to help readability). If |pretty_print| is false,
@@ -27,13 +38,10 @@ class BASE_EXPORT JSONWriter {
static void Write(const Value* const node, bool pretty_print,
std::string* json);
- // Same as above, but has an option to not escape the string, preserving its
- // UTF8 characters. It is useful if you can pass resulting string to the
- // JSON parser in binary form (as UTF8).
- static void WriteWithOptionalEscape(const Value* const node,
- bool pretty_print,
- bool escape,
- std::string* json);
+ // Same as above but with |options| which is a bunch of JSONWriter::Options
+ // bitwise ORed together.
+ static void WriteWithOptions(const Value* const node, bool pretty_print,
+ int options, std::string* json);
// A static, constant JSON string representing an empty array. Useful
// for empty JSON argument passing.
@@ -44,7 +52,8 @@ class BASE_EXPORT JSONWriter {
// Called recursively to build the JSON string. Whe completed, value is
// json_string_ will contain the JSON.
- void BuildJSONString(const Value* const node, int depth, bool escape);
+ void BuildJSONString(const Value* const node, int depth, bool escape,
+ bool ignore_binary_values);
// Appends a quoted, escaped, version of (UTF-8) str to json_string_.
void AppendQuotedString(const std::string& str);
« no previous file with comments | « base/json/json_value_serializer.cc ('k') | base/json/json_writer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698